OpenSuse root 命令错误

OpenSuse root 命令错误

有人能解释一下为什么这些命令不起作用吗

me@suse:~> ifconfig
Absolute path to 'ifconfig' is '/sbin/ifconfig', so running it may require superuser privileges (eg. root).

me@suse:~> sudo ifconfig
root's password:
sudo: ifconfig: command not found

为什么这些有效

me@suse:~> sudo /sbin/ifconfig

suse:/home/me # ifconfig

我知道这与 root 用户有关,但我想要更好的解释。

答案1

通常,UID 为 0 的用户(即 root)具有修改后的$PATH集合,其中包括/sbin和等目录/usr/sbin,而“普通”用户则没有(因为这些目录中的许多程序都需要超级用户权限,而且对于普通用户来说,它们用处不大)。因此,如果普通用户想要调用其目录中缺少的任何内容$PATH,则必须指定程序的完整路径,而“root”无需此操作即可调用它们。

调用sudo <program>也不起作用,因为它从调用进程(没有特权,因此缺少)sudo继承了它的环境(因此继承了) 。$PATH/sbin

echo $PATH您可以通过在用户 shell 中调用一次并在 root shell 中调用一次(不是用)来尝试这一点sudo

相关内容