Bash:不使用 sudo 返回错误

Bash:不使用 sudo 返回错误

我正在运行 Kali Linux Live,并且我以 root 用户身份使用该系统很长一段时间,然后我在网上看到一篇文章,告诉你不要使用 root 作为默认帐户,而应该创建一个低权限的帐户用户。我最终就是这样做的,一切都很好,直到我尝试运行ifconfig,我收到了错误:bash: ifconfig: command not found

我尝试运行sudo apt-get install ifconfig,但它返回ifconfig已经是最新版本。我有点困惑,所以我尝试了sudo ifconfig,因为我必须使用sudorun 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 用户身份运行ifconfigapt-get,但除非您是 root 用户,否则您将无法更改任何配置或安装软件包。

相关内容