Phoronix 报道称,"为 Fedora 40 提交的最新变更提案之一是统一其 /usr/bin 和 /usr/sbin 位置"。"这是一项针对 Fedora Linux 的变更建议......"Fedora 项目维基页面上强调。"作为变更流程的一部分,建议将公开发布,以接收社区反馈。只有获得 Fedora 工程指导委员会的批准,该提议才会实施。"
修改建议解释说:
"/usr/sbin目录成为bin的符号链接意味着/usr/bin/foo和/usr/sbin/foo等路径指向同一个地方。/bin 和 /sbin 已经是 /usr/bin 和 /usr/sbin 的符号链接,因此 /bin/foo 和 /sbin/foo 实际上也指向同一个地方。/usr/sbin 将从默认的 $PATH 中移除"。
多年前,Fedora 合并了 /bin 和 /usr/bin,作为最后一步,他们希望统一 /usr/bin 和 /usr/sbin。
修改提案认为,通过这一修改,"Fedora 将与其他发行版更加兼容"。
- 我们有 /sbin/ip,而 Debian 有 /bin/ip
- 我们有 /bin/chmem 和 /bin/isosize,而 Debian 有 /sbin/chmem 和 /sbin/isosize
- 我们还有 /sbin/{addpart,delpart,lnstat,nstat,partx,ping,rdma,resizeepart,ss,udevadm,update-alternatives},而 Debian 则将其放在 /bin 等下。
- Fedora 与几年前进行合并的 Arch 更加兼容。
Fedora 项目维基上的提案提供了以下摘要:
/bin 和 /sbin 之间的分割并无用处,而且也未被使用。最初的拆分是为了将"重要"的二进制文件静态链接到 /sbin,以便用于紧急救援操作。显然,我们现在已经不做静态链接了。后来,拆分的目的改为隔离只有管理员才能使用的"重要"二进制文件。虽然这在理论上似乎很有吸引力,但实际上很难对程序进行这样的分类,普通用户经常会从 /sbin 中调用程序。大多数需要 root 权限才能进行某些操作的程序,在无权限的情况下也能使用。即使需要权限,通常也是动态获取的,例如使用 polkit。多年以来,用户的默认 $PATH 设置都包含这两个目录。随着 systemd 的出现,这种做法变得更加系统化:systemd 会为所有用户和服务设置包含这两个目录的 $PATH。因此,一般来说,所有用户和程序都能找到这两套二进制文件。
一般来说,所有用户会话和服务的 $PATH 都有两个目录,因此这种分割实际上没有任何作用。它的主要作用是,当人们需要使用绝对路径而又猜错了目录时,就会产生混乱。其他发行版会把一些二进制文件放在另一个目录中,因此绝对路径通常无法移植。此外,用户很容易在 $PATH 中把 /sbin 放在 /bin 之前,而管理员也很容易在 $PATH 中把 /bin 放在 /sbin 之前,从而造成混乱。如果放弃这一功能,系统就会变得简单一些,这对于不了解分割历史的新用户来说尤其有用。