
私はManjaro(Arch Linuxベース)を使い始めましたが、面白いことが起こりました。
$ sudo env | grep HOME
HOME=/root
$ sudo -H env | grep HOME
HOME=/root
マニュアルページを見て、sudo
私のホームディレクトリが実際にあることを確認しました/etc/passwd
。私が理解したように、上記の2番目のコマンドの出力は次のようになります。しなければならないはい/home/laurence
。私は何を見逃していますか?
答え1
マニュアルページは次のようにsudo
書きます。
-H, --set-home
セキュリティー・ポリシーが、HOME
環境変数をターゲット・ユーザーのパスワード・データベース項目で指定されたホーム・ディレクトリーに設定するように要求します。ポリシーによっては、これがデフォルトの動作である可能性があります。
ここで鍵は-H
設定することです。ターゲットユーザーメインディレクトリ。呼び出すと、sudo env
ターゲットユーザーが推測されますroot
。 (同様のものを使用するとsudo -u john -H env
ホームディレクトリを取得しますjohn
。)