Today's hot take: /usr/sbin and /sbin were a mistake. Yes, there are things in /usr/sbin that only root can run. But there's plenty in /usr/sbin (and always has been) that could usefully be run as a non-root user, even routinely, and as a result everyone has it on their $PATH in addition to /usr/bin. So all you get is confusion about where a program binary 'belongs'.
Conversation
Notices
-
Embed this notice
Chris Siebenmann (cks@mastodon.social)'s status on Thursday, 10-Oct-2024 08:43:03 JST Chris Siebenmann - Haelwenn /элвэн/ :triskell: and Another Linux Walt Alt like this.
-
Embed this notice
Haelwenn /элвэн/ :triskell: (lanodan@queer.hacktivis.me)'s status on Thursday, 10-Oct-2024 08:54:04 JST Haelwenn /элвэн/ :triskell: @cks Yeah on my Gentoo machines all executables just go in /usr/bin, I tried /usr -> . at first as /usr is just legacy from AT&T machine running out of space but that causes a whole bunch of issues with existing packages.
Meanwhile I remember often having to add sbin in the PATH just so I could run fairly standard commands like ping.Maybe if sbin was actually special like only accessible by root:wheel okay maybe it would make some sense but that's just not what it is.
-
Embed this notice
anna (navi@social.vlhl.dev)'s status on Thursday, 10-Oct-2024 15:59:10 JST anna @lanodan @cks i would've loved if usr-merge was about merging usr into / instead of merging (some parts of ) / into /usr
/usr doesn't make much sense to exist now a days, but somehow the choice wasn't to remove it but to... put more stuff into itHaelwenn /элвэн/ :triskell: likes this. -
Embed this notice
Haelwenn /элвэн/ :triskell: (lanodan@queer.hacktivis.me)'s status on Thursday, 10-Oct-2024 16:04:03 JST Haelwenn /элвэн/ :triskell: @Yuki @cks Yeah for remote filesystems it's kind of obsolete and I'd rather use an initrd as a sort of rescue to be sure I have what I need rather than rely on packagers putting software in the right prefix. -
Embed this notice
Yuki 膤 ❄️ 🏳️⚧️ (yuki@groupe-tazor.com)'s status on Thursday, 10-Oct-2024 16:04:04 JST Yuki 膤 ❄️ 🏳️⚧️ @lanodan@queer.hacktivis.me @cks@mastodon.social This made sense in the case /usr was on a remote filesystem, so a sysadmin could install and update the OS once across many systems: /bin contained just enough to bring up /usr and recover in case it doesn't work
Of course on Linux you can put the whole of / on a network and it kinds of assume /usr and evertthing else is on the same partition as / so it's not useful anymore
A lot of distros symlinks /usr/bin to /bin and /usr/lib to /lib but there's a few stuff in /usr that doesn't have an equivalent in / so I guess this is where it breaks if the distro isn't aware of it because otherwise /usr would be a symlink since a while -
Embed this notice
Chris Siebenmann (cks@mastodon.social)'s status on Thursday, 10-Oct-2024 16:04:30 JST Chris Siebenmann @yuki @lanodan In practice I don't think people expected to run with mismatched / and /usr, but they definitely did want a minimal per-system / and a shared /usr. This was one of the motivations of the /var split (originally everything in /var was in /usr).
(Updating your Unix in the old days was ... complicated. Package updates were not so much a thing, although commercial Unix vendors did work out ways of shipping small updates that could be incrementally applied.)
Haelwenn /элвэн/ :triskell: likes this. -
Embed this notice
Haelwenn /элвэн/ :triskell: (lanodan@queer.hacktivis.me)'s status on Thursday, 10-Oct-2024 16:14:15 JST Haelwenn /элвэн/ :triskell: @Yuki @cks Plus I these days I'd be a bit surprised if anyone, even for embeddeds, couldn't put a whole base system (possibly even including X11) in the / filesystem.
Meanwhile different filesystem for ports could make sense, specially as it's release management is usually a bit different and could warrant some hardening like passing nosuid,nodev to mount.