答案1
如果 /sbin 是系统(根)目录,为什么普通用户(没有超级用户权限)能够执行 ifconfig 命令?
只有 ifconfig 命令所在的操作系统的创建者才能完全回答上述问题。但让我们分享一下,有些工具需要执行通常只有 root 用户才能执行的任务,但每个普通用户都应该能够执行这些任务,因为每个用户都需要这些任务。一个例子就是这个passwd
工具,它位于我系统的/usr/bin/
目录中,但用户通常需要运行sudo
才能使用该位置的任何工具,但在这里我只能使用它passwd
来更改我的密码,而且只能更改我的密码。因此,该工具设计为供任何人使用,但在运行时,它以所谓的 root 权限运行effective user
。
这就是此类工具背后的理论,哪些工具可以以这种方式设计取决于 Ubuntu 或任何其他 Linux 操作系统的创建者,任何工具都可以像这样运行,在这种情况下ifconfig
就属于这一类。
简单来说,我不需要root
使用 passwd 来更改自己的密码,但必须更改系统其他每个用户的密码。因此,Ubuntu 开发人员稍后可以决定您需要 root 身份才能使用 ifconfig,这将改变其使用或访问方式。
它位于该位置仅意味着它是系统需要访问的工具,并且这是此类工具的正常位置。
答案2
您知道 /sbin 是什么,因为您在帖子中发布了定义。查看 ifconfig 是什么,您就会明白为什么它位于 /sbin 而不是 /bin。
关联:https://manpages.ubuntu.com/manpages/trusty/man8/ifconfig.8.html
阅读说明,它的用途是在启动时执行,这需要特殊权限,即 root 权限(我可能错了,但这是我的假设。我是一名程序员,但我不从事操作系统工作,所以我不知道完整的功能或背后的原因)。