
sudoコマンドで正常に完了しましたusermod
。
sudo usermod -aG some_group some_user
しかし、su経由で実行するとエラーが発生します。
su
...I enter root password...
usermod -aG some_group some_user
bash: usermod: command not found
なぜこれが起こるのですか?
システムをどのように構成しますか?
実際、変更できないスクリプトがあります。このスクリプトは su で usermod コマンドを使用します。
答え1
必要な$PATH
設定ですroot
。これはsudo
それ自体があるため問題ではありません$PATH
。
su
デフォルトでは変更されません$PATH
。ログインシェルを起動する必要があります。
su -
ただではなく
su
su
通話を変更できない場合は、$PATH
通話前に変更してください。usermod
見つかった場合は、/usr/sbin/usermod
次の操作を行います。
PATH=/usr/sbin:$PATH
su
答え2
su
シェル変数を変更できる/etc/profileから設定ファイルをロードします$PATH
。
man su
説明する
-m, -p, --preserve-environment
Preserve the entire environment, i.e., it does not set HOME,
SHELL, USER nor LOGNAME. This option is ignored if the option
--login is specified.
したがって、フラグを使用して既存のシェルから--preserve-environment
ロードします。$PATH
su --preserve-environment
または、
PATH変数を手動でエクスポートします。
su
export PATH=$PATH:/path/of/usermod/dir