为什么“usermod”在超级用户下不起作用?

Ale*_*aev 1 su sudo usermod

usermod通过 sudo 命令成功。

sudo usermod -aG some_group some_user
Run Code Online (Sandbox Code Playgroud)

但是如果通过su来执行的话,就会出现错误。

su
...I enter root password...
usermod -aG some_group some_user
bash: usermod: command not found
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况?

如何配置我的系统?

事实上,我有一个无法更改的脚本。该脚本使用 su 下的 usermod 命令。

Hau*_*ing 5

您需要$PATH的设置root。这没有问题,sudo因为它有自己的$PATH.

su默认情况下不更改$PATH。你必须让它启动一个登录 shell:

su -
Run Code Online (Sandbox Code Playgroud)

而不是仅仅

su
Run Code Online (Sandbox Code Playgroud)

如果您无法更改su通话,请$PATH在通话前进行更改。如果usermod位于/usr/sbin/usermod则执行以下操作:

PATH=/usr/sbin:$PATH
su
Run Code Online (Sandbox Code Playgroud)