为什么 ifconfig 在 /sbin 目录中?

为什么 ifconfig 在 /sbin 目录中?

我有点担心目录ifconfig中命令的存在/sbin在此处输入图片描述

我不太明白/sbin目录的主要目的以及该目录中那些命令缺少 root 权限。

例如,

xxxx@Jacks:~$ l -l /sbin/ | grep shut
lrwxrwxrwx 1 root root        14 Feb  6 19:00 shutdown -> /bin/systemctl*

shutdown命令/实用程序显示为/bin目录的链接,这似乎很正常。

如果是/sbin系统(根)目录,为什么普通用户(没有超级用户权限)能够执行ifconfig命令?

答案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 权限(我可能错了,但这是我的假设。我是一名程序员,但我不从事操作系统工作,所以我不知道完整的功能或背后的原因)。

相关内容