通过 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
。你必须让它启动一个登录 shell:
su -
而不是仅仅
su
如果您无法更改su
通话,请$PATH
在通话前进行更改。如果usermod
位于/usr/sbin/usermod
则执行以下操作:
PATH=/usr/sbin:$PATH
su
答案2
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.
因此,使用标志从现有 shell--preserve-environment
加载$PATH
su --preserve-environment
或者
手动导出 PATH 变量
su
export PATH=$PATH:/path/of/usermod/dir