OpenSuse root命令错误


1

有人可以解释为什么这些命令不起作用

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用户有关,但我想要更好的解释。

Answers:


3

通常UID为0的用户(即root用户)有一个修改过的$PATH集合,其中包含像/sbin和这样的目录/usr/sbin,而“普通”用户没有这样的目录(因为这些目录中的许多程序都需要超级用户权限,并且对那些目录不太有用)无论如何正常用户)。因此,如果普通用户想要调用其中缺少的那些目录中的任何内容$PATH,则必须指定程序的完整路径,而“root”可以在没有此需要的情况下调用它们。

调用sudo <program>也不起作用,因为sudo$PATH从调用进程(无特权并因此丢失/sbin)继承其环境(因此)。

您可以通过echo $PATH在用户的shell中调用一个并在root-shell(而不是sudo)中调用一个来尝试此操作。


我刚刚将/ usr / sbin添加到PATH,现在它正在工作。谢谢你的解释。
Alexandre Vicenzi 2014年

我想知道:suse如何知道不在$ PATH中的文件的绝对路径?
彼得2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.