In the beginning there were root (/bin) and /usr programs

See UNIX Programmer's Manual (Thompson, Ritchie, November
1971). [http://cm.bell-labs.com/cm/cs/who/dmr/manintro.pdf]

/usr programs were "not considered part of the UNIX system"
[bottom of page ii].

Root (/) contained all the system files and configuration;
/usr all the user's files.

In the UNIX V7 manuals hosted here:
http://plan9.bell-labs.com/7thEdMan/bswv7.html
Dennis Rtichie suggests moving binary files from root (/bin)
to /usr/bin because it might speed up systems:
See page 152 of UNIX Version 7, Volume 2B
UNIX Programmers Manual.

Hence, he suggests leaving only maintenance binary files in
root (see para. 3 under Disk Layout, Pg. 152).

The most important remark comes in paragraph 2 of the disk
layout page:

"There are two considerations in deciding how to adjust the
arrangement of things on your disks: the most important is
making sure there is adequate space for what is required;
secondarily, throughput should be maximised."



For me the argument is about what gets mounted in which way.
I want to be able to ensure filesystems are mounted to prevent
potential privilege escalation.
Consequently, I have split my Gentoo system with the following
settings.

At boot /usr is present in / (on same partition)
/tmp is mounted nosuid from a separate partition
/var is mounted nosuid from a separate partition
/home is mounted nosuid from a separate partition

/bin and /sbin programs that do not require root authority
are all marked nosuid.

None of the executables/configuration files in / or /usr are
user-writable.

umasks are 077.

On my backup server, /home is mounted noexec, nosuid.

Personally I like the split between /bin and /usr/bin and /sbin
and /usr/sbin - provided ports maintainers stick to an
understanding that /bin is for maintenance files and /usr/bin
is for user application files (i.e. applications used by users).

/sbin and /usr/sbin should segregate root's/system maintenance
executables and root's/system application executables.


Although I am not sure at all that executables have been so
split by recent developers/maintainers (a lot of time has passed)...

It would be nice if a sensible structure could be proposed and
agreed by ALL Linux distributions (coordinated with BSD).

For me, it is a credit to Ken and Dennis' vision that they foresaw
the benefit of file permissions, including suid and sgid and the
EXCEPTIONALLY BRILLIANT idea of the sticky bit for /tmp.

It is incredible that they came up with much of this structure in
1969 - 1978.

"Progress, far from consisting in change, depends on retentiveness.
When change is absolute there remains no being to improve and
no direction is set for possible improvement: and when experience
is not retained, as among savages, infancy is perpetual.
Those who cannot remember the past are condemned to repeat it."
SATAYANA

Those querying a separate /usr partition or otherwise might like to
peruse UNIX Version 7 UNIX Programmers manual, Volume 2A:
UNIX for Beginners (Brian W. Kernighan)
Page 46 of this PDF: http://plan9.bell-labs.com/7thEdMan/v7vol2a.pdf

I LIKE THE IDEA of a separate /usr partition - but that is from a
mounting file-systems perspective rather than relying on the history
of UNIX...

Live free or die - UNIX.

Mike




On 18/07/12 18:35, Canek Peláez Valdés wrote:
As William pointed out, this is just another silly rationalization
done after the fact. But, just for argument's sake, lets suppose that
"usr" was named like that because it was the acronym for "UNIX System
Resources".

*Who cares about that now?* It was 43 years ago. My cellphone is
thousands of times faster than the PDP-7 Unix was originally developed
for, and it has millions of times more storage. The length
restrictions imposed on system directories are completely superfluous
now.

All the arguments for keeping /bin, /sbin, /usr/bin, and /usr/sbin
separated are really instances of the Chewbacca defense [1]. They just
don't make any sense.



Reply via email to