Why is /usr/local/ owned by root?

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?


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"


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?).