我正在运行 Kali Linux Live,并且我以 root 用户身份使用该系统很长一段时间,然后我在网上看到一篇文章,告诉你不要使用 root 作为默认帐户,而应该创建一个低权限的帐户用户。我最终就是这样做的,一切都很好,直到我尝试运行ifconfig
,我收到了错误:bash: ifconfig: command not found
。
我尝试运行sudo apt-get install ifconfig
,但它返回ifconfig
已经是最新版本。我有点困惑,所以我尝试了sudo ifconfig
,因为我必须使用sudo
run apt-get
。果然,sudo ifconfig
有效,并且我需要运行的任何其他命令都会返回类似的错误sudo
。
所以我的问题是,当我使用 来安装它们时,我需要运行的程序存储(我推测)在根系统中sudo apt-get install
,因此非根用户无法访问?我不确定这是否正确。阅读 的手册sudo
,我知道它以 root(或一般的其他用户)身份运行命令,但这是否意味着在 root 系统中“执行输出”?如果是这样,除了授予他们管理员权限之外,我还能做什么以低权限用户身份运行命令?
感谢您的所有支持!
答案1
他们在/sbin
和/usr/sbin
任何人都可以运行它们。然而,这样做可能有用,也可能没有用。如果您不具备这些功能,那么大多数命令都起不了多大作用。传统上,用户root
拥有所有能力。和/sbin
和/usr/sbin
通常不在普通用户执行搜索路径中。
ifconfig
对于普通用户来说很有用,但您无法获得所有功能。例如,/sbin/ifconfig
不带参数,将列出所有网络接口。
答案2
作为非 root 用户找不到这些命令的原因是它们可能不在您的 PATH 中。运行 anecho $PATH
查看 shell 会在哪些目录中查找您输入的命令。
系统程序和管理实用程序通常驻留在/sbin
和中/usr/sbin
。这些程序和实用程序可以由任何用户执行(如果他们设置了适当的文件系统权限),但通常不会更改系统上的任何内容,除非以 root 身份执行。
您可以使用以下命令将新目录添加到您的 PATH 中:
export PATH=$PATH:/path/to/directory
如果需要,您可以以非 root 用户身份运行ifconfig
和apt-get
,但除非您是 root 用户,否则您将无法更改任何配置或安装软件包。