View a markdown version of this page

/usr (system resources) - Amazon Linux 2027
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

/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.