View a markdown version of this page

/usr (system resources) - Amazon Linux 2027

/usr (system resources)

The /usr hierarchy is for vendor-supplied operating system resources. Except for the /usr/local hierarchy, nothing should modify anything under /usr except the OS package manager.

Software must assume that /usr can be read-only, and must not use it for volatile data. Software installed outside of the OS package manager belongs in /usr/local, not elsewhere in /usr, so that it cannot interfere with package operations.

Unified /usr/bin and /usr/sbin

In AL2027, /usr/sbin is a symbolic link to /usr/bin. The executables that AL2023 shipped in /usr/sbin, such as useradd, sysctl, and ip, now live in /usr/bin. This follows the same change in Unify bin and sbin on the Fedora Project wiki.

Existing paths keep working: because /sbin and /usr/sbin both resolve to /usr/bin, a script that calls, for example, /usr/sbin/ip or /sbin/ldconfig runs unchanged. Commands formerly restricted to administrator search paths now also appear in every user's $PATH; the commands themselves still require the same privileges to do their work.

/usr/bin (executables)

Executable files that appear in the standard search $PATH and are useful to invoke from a shell. Daemons and executables not useful from a shell live in /usr/lib or /usr/libexec.

/usr/include (C/C++ headers)

C and C++ header files, usually installed by packages with the -devel suffix.

/usr/lib and /usr/lib64 (shared libraries)

The /usr/lib64 path holds 64-bit shared libraries and architecture-dependent package data. AL2027 does not ship 32-bit (i686) packages, so all shared libraries are 64-bit. The /usr/lib path is for static, architecture-independent package data, and might include executables not usually invoked from a shell, which might also be found in /usr/libexec.

/usr/local (administrator-installed software)

The /usr/local hierarchy is reserved for the system administrator to install software that is not owned by the OS. The OS does not touch it. Its layout mirrors the / hierarchy.

/usr/share (shared resources)

Architecture-independent shared resources such as documentation, fonts, and time zone data. Package documentation is installed under /usr/share/doc.