sudo
ダウン時にもsudo -u $user
まだルート環境を使用しているようです。sudo
ユーザーエクスペリエンスを活用するには?特に注目すべき点は、この機能を使用するすべてのユーザーがログインシェルを持っているわけではないということです。
答え1
努力するsudo -i -u $user
gerald@book:~$ env |grep HOME
HOME=/home/gerald
gerald@book:~$ sudo -u ubuntu env |grep HOME
HOME=/home/gerald
gerald@book:~$ sudo -i -u ubuntu env |grep HOME
HOME=/home/ubuntu
答え2
man sudoers
Debian ではもう一つの可能性が言及されています。どのような方法が欲しいのかわかりませんが、あなたの質問は選択したいと思われますenv_reset
。/etc/sudoers
その逆は基本的にenv_keep
リストです。正しいオプションを設定するには、このオプションを直接使用するか、から再HOME
利用できます。-H
sudo
sudoers
always_set_home
または、以下をenv_file
指定できます。精密合格したい環境。しかし、すべてを制御できるので、オプションを見てみるのがenv_*
最善だと思います。man sudoers
/etc/sudoers
env_reset
これはファイルで使用されているコンテキストの一部ですsudoers
。
Defaults !lecture
Defaults env_reset
Defaults syslog=auth
Defaults log_year
答え3
いつSudo環境変数は保持されません。
私の場合ここのドキュメント。
my_script.sh
あなたの行動をHEREドキュメントに入れてください:
su -u some_user <<EOF
./my_script.sh
EOF
変数は現在のユーザーによって解釈されるため、ここに直接入力しないでください。
su -u some_user <<EOF
./my_script.sh $MY_VAR
EOF
スクリプトを実行しているユーザーに対して設定されていない場合は$MY_VAR
設定されません。
変数はスクリプト内で呼び出されるか使用する必要があります\
。
例えば。
su -u some_user <<EOF
./my_script.sh \$MY_VAR
EOF
これには状況に合った価値$MY_VAR
がありますsome_user
。