Phoronix reports that "one of the latest change proposals submitted for Fedora 40 is to unify its /usr/bin and /usr/sbin locations." "This is a proposed change for FedoraLinux..." emphasized on the Fedora project wiki page. "As part of the change process, the proposal will be released publicly to receive community feedback. The proposal will only be implemented if approved by the Fedora Engineering Steering Committee."
The suggested changes explain:
"The /usr/sbin directory becoming a symbolic link to bin means that paths such as /usr/bin/foo and /usr/sbin/foo point to the same place. /bin and /sbin are already symbolic links to /usr/bin and /usr/sbin, so /bin/foo and /sbin/foo actually point to the same place. /usr/sbin will be removed from the default $PATH."
Years ago, Fedora merged /bin and /usr/bin, and as a final step, they wanted to unify /usr/bin and /usr/sbin.
The proposed change states that with this change, "Fedora will be more compatible with other distributions."
-We have /sbin/ip and Debian has /bin/ip
-We have /bin/chmem and /bin/isosize and Debian has /sbin/chmem and /sbin/isosize
- We also have /sbin/{addpart,delpart,lnstat,nstat,partx,ping,rdma,resizeepart,ss,udevadm,update-alternatives} while Debian puts it under /bin etc.
-Fedora is more compatible with Arch which was merged a few years ago.
The proposal on the Fedora project wiki provides the following summary:
The split between /bin and /sbin is useless and unused. The original split was to statically link "important" binaries to /sbin for emergency rescue operations. Obviously, we no longer do static linking. Later, the purpose of the split was changed to isolating "important" binaries that only administrators could use. While this may seem attractive in theory, in practice it is difficult to classify programs like this, and regular users will often call programs from /sbin. Most programs that require root permissions to perform certain operations can be used without permission. Even if permissions are required, they are usually obtained dynamically, such as using polkit. For many years, users' default $PATH settings included these two directories. With the advent of systemd, this approach has become more systematic: systemd will set a $PATH containing these two directories for all users and services. Therefore, in general, both sets of binaries will be found by all users and programs.
Generally speaking, the $PATH for all user sessions and services has two directories, so this split doesn't really do anything. Its main purpose is to create confusion when people need to use an absolute path and guess the wrong directory. Other distributions will put some binaries in another directory, so absolute paths are often not portable. In addition, it is easy for users to put /sbin before /bin in $PATH, and for administrators to put /bin before /sbin in $PATH, causing confusion. If you give up this feature, the system will become simpler, which is especially useful for new users who do not understand the history of partitioning.