Sudo
為什麼“usermod”在超級使用者下不起作用?
該
usermod
命令通過 sudo 成功。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。
su
從 /etc/profile 載入配置文件,這可能會修改 shell$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
您需要
$PATH
設置root
. 這沒問題,sudo
因為它有自己的$PATH
.
su
預設情況下不會更改$PATH
。你必須讓它啟動一個登錄shell:su -
而不僅僅是
su
如果您無法更改
su
通話,請$PATH
在通話前更改。如果usermod
位於/usr/sbin/usermod
然後執行此操作:PATH=/usr/sbin:$PATH su