【Linux】sudo コマンド

日常業務でよく利用している「sudo」コマンドです。

普段は「sudo su -」コマンドで root になるために使用するばかりですが、それ以外でも sudo コマンドの使い方を調べます。

 

 

sudo -H

以下のコメントが出力されて「sudo -H」とはどういう意味なのか調べ始めました。

ubuntu@AWS_TEST ~] sudo pip3.6 install mecab-python3
The directory '/home/ubuntu/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/ubuntu/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting mecab-python3
Installing collected packages: mecab-python3
Successfully installed mecab-python3-0.7
ubuntu@AWS_TEST ~]

 

黄色の文字の部分を翻訳しました。

ディレクトリ '/home/ubuntu/cache/pip/http'またはその親ディレクトリは現在のユーザーが所有していないため、キャッシュは無効になっています。

そのディレクトリの権限と所有者を確認してください。

sudoでpipを実行している場合、sudoの-Hフラグが必要な場合があります。
ディレクトリ '/home/ubuntu/cache/pip'またはその親ディレクトリは現在のユーザが所有していないため、キャッシングホイールは無効になっています。

そのディレクトリの権限と所有者を確認してください。

sudoでpipを実行している場合、sudoの-Hフラグが必要な場合があります。

 

 

man sudo コマンドを実行した結果

       -H          -H (HOME) オプションを指定すると、 セキュリティ・ポリシーは、環境変数 HOME
                   を、パスワード・データベースで変身対象ユーザ (デフォルトでは root)
                   のホームディレクトリとして指定されているディレクトリに設定することになる。
                   ポリシーによっては、それがデフォルトの動作になっていることもある。

 

説明を読んだだけでは全く理解できません。。

 

【参考サイト】

http://kazmax.zpp.jp/cmd/s/sudo.8.html

 

上記サイトで以下の説明があります。

-H (HOME) オプションが指定されると、環境変数 HOME が passwd(5) で指定された対象ユーザ (デフォルトでは root) のホームディレクトリに設定される。デフォルトでは、sudo は HOME を変更しない。」

要するに「-H」オプションを付けると root ユーザーのホームディレクトリ上からコマンドを実行することになるということでしょうか。

 

 

Posted by 100%レンタルサーバーを使いこなすサイト管理人