Why is /usr/local/ owned by root?

12,917

Solution 1

There is nothing that stops you from installing and running applications locally, without sudo privileges. Locally, meaning: in your own home directory. That is how it is supposed to be.

You shouldn't have the same permissions on directories you are sharing with possible other users on your system.

About /usr

The explanation on what usr literally stands for varies from unix system resources, to user system resources. The latter however should not be interpreted as owned by users, but as serving users, opposite to serving the system. Here we read about /usr:

Secondary hierarchy for read-only user data; contains the majority of (multi-)user utilities and applications.

The bottom line is that all (modern) explanations mention that it is about "shareabble, read- only data", and: "should not be written to"

Solution 2

The directory name "usr" already implies that (normal) user based programs are supposed to be there.

Not since the Dark Ages of Unix history, if it ever was. What do the abbreviations "etc" and "usr" mean?

Now, the /usr directory is for the administrator to handle. However, almost all content in /usr is handled by packages, and /usr/local is where the administrator can install local software, outside of the package management system. Let's consult the Filesystem Hierarchy Standard:

/usr/local : Local hierarchy

Purpose

The /usr/local hierarchy is for use by the system administrator when installing software locally. It needs to be safe from being overwritten when the system software is updated. It may be used for programs and data that are shareable amongst a group of hosts, but not found in /usr.

Locally installed software must be placed within /usr/local rather than /usr unless it is being installed to replace or upgrade software in /usr.

For both /usr and /usr/local in a modern Linux system, normal users shouldn't have write permissions. On a single-user system, sure, you could give write access to /usr/local, but you have sudo privileges anyway (how often do you have to write to these directories?).

Share:
12,917

Related videos on Youtube

null
Author by

null

Student

Updated on September 18, 2022

Comments

  • null
    null over 1 year

    I am wondering why directories such as /usr and /usr/local/ are owned and created by root. Usually I am logged in as a normal user and I want to store programs that I personally use in these dirs. For example the Android Studio are stored there. Whenever, I need to make an update or to make any kind of change, permission are not granted because I am not logged in as root.

    The directory name "usr" already implies that (normal) user based programs are supposed to be there.

    Didn't I get the concept behind this directory?

    • Admin
      Admin about 8 years
      usr = unix system resources... nothing to do with user :)
    • Admin
      Admin about 8 years
      @JacobVlijm thats actually a backronym, it seems, look at pages 13,14 (paginated as 8,9) of bitsavers.trailing-edge.com/pdf/bellLabs/unix/…, they used /user.
    • Admin
      Admin about 8 years
      @guntbert WOW, looking around, there are many different explanations to what /usr literally stands for. The bottom line is that all (modern) explanations mention that it is about "shareabble, read- only data", and: "should not be written to".
  • Rinzwind
    Rinzwind about 3 years
    No never put files in /usr/bin/ and aways use the "/ocal" version (all bin directories also have a local/bin version). The 1st will delete what is there when you install software that uses your version, and /local never is changed by the system itself
  • Zanna
    Zanna about 3 years
    how would having the file owned by you and not root restrict access?