Chapter 1.
File System Structure
1.1. Why Share a Common Structure?
The file system structure is the most basic level of organization in an operating system. Almost all of
the ways an operating system interacts with its users, applications, and security model are dependent
upon the way it organizes files on storage devices. Providing a common file system structure ensures
users and programs are able to access and write files.
File systems break files down into two logical categories:
• Shareable vs. unshareable files
• Variable vs. static files
Shareable files are those that can be accessed locally and by remote hosts; unshareable files are only
available locally. Variable files, such as documents, can be changed at any time; static files, such as
binaries, do not change without an action from the system administrator.
The reason for looking at files in this manner is to help correlate the function of the file with the
permissions assigned to the directories which hold them. The way in which the operating system and
its users interact with a given file determines the directory in which it is placed, whether that directory
is mounted with read-only or read/write permissions, and the level of access each user has to that file.
The top level of this organization is crucial. Access to the underlying directories can be restricted or
security problems could manifest themselves if, from the top level down, it does not adhere to a rigid
structure.
1.2. Overview of File System Hierarchy Standard (FHS)
Red Hat Enterprise Linux uses the Filesystem Hierarchy Standard (FHS) file system structure, which
defines the names, locations, and permissions for many file types and directories.
The FHS document is the authoritative reference to any FHS-compliant file system, but the standard
leaves many areas undefined or extensible. This section is an overview of the standard and a
description of the parts of the file system not covered by the standard.
Compliance with the standard means many things, but the two most important are compatibility with
other compliant systems and the ability to mount a /usr/ partition as read-only. This second point is
important because the directory contains common executables and should not be changed by users.
Also, since the /usr/ directory is mounted as read-only, it can be mounted from the CD-ROM or from
another machine via a read-only NFS mount.
1.2.1. FHS Organization
The directories and files noted here are a small subset of those specified by the FHS document. Refer
to the latest FHS document for the most complete information.
1
http://www.pathname.com/fhs/
The complete standard is available online at
.
1
http://www.pathname.com/fhs
3