1 <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN">
4 ><script>function PrivoxyWindowOpen(){return(null);}</script><TITLE
5 >Filesystem Hierarchy Standard
</TITLE
8 CONTENT=
"Modular DocBook HTML Stylesheet Version 1.7"></HEAD
22 >Filesystem Hierarchy Standard
</A
26 >Filesystem Hierarchy Standard Group
</H3
41 >Copyright
© 1994-
2004 Daniel Quinlan
</P
44 >Copyright
© 2001-
2004 Paul 'Rusty' Russell
</P
47 >Copyright
© 2003-
2004 Christopher Yeoh
</P
57 >This standard consists of a set of requirements and guidelines for file
58 and directory placement under UNIX-like operating systems. The
59 guidelines are intended to support interoperability of applications,
60 system administration tools, development tools, and scripts as well as
61 greater uniformity of documentation for these systems.
</P
74 >All trademarks and copyrights are owned by their owners, unless
75 specifically noted otherwise. Use of a term in this document should not
76 be regarded as affecting the validity of any trademark or service
79 >Permission is granted to make and distribute verbatim copies of
80 this standard provided the copyright and this permission notice are
81 preserved on all copies.
</P
83 >Permission is granted to copy and distribute modified versions of this
84 standard under the conditions for verbatim copying, provided also that
85 the title page is labeled as modified including a reference to the
86 original standard, provided that information on retrieving the original
87 standard is included, and provided that the entire resulting derived
88 work is distributed under the terms of a permission notice identical to
91 >Permission is granted to copy and distribute translations of this
92 standard into another language, under the above conditions for modified
93 versions, except that this permission notice may be stated in a
94 translation approved by the copyright holder.
</P
104 >Table of Contents
</B
127 HREF=
"#THEFILESYSTEM"
132 HREF=
"#THEROOTFILESYSTEM"
133 >The Root Filesystem
</A
149 HREF=
"#SPECIFICOPTIONS"
154 HREF=
"#BINESSENTIALUSERCOMMANDBINARIES"
155 >/bin : Essential user command binaries (for use by all users)
</A
166 HREF=
"#REQUIREMENTS2"
171 HREF=
"#SPECIFICOPTIONS2"
178 HREF=
"#BOOTSTATICFILESOFTHEBOOTLOADER"
179 >/boot : Static files of the boot loader
</A
190 HREF=
"#SPECIFICOPTIONS3"
197 HREF=
"#DEVDEVICEFILES"
198 >/dev : Device files
</A
209 HREF=
"#SPECIFICOPTIONS4"
216 HREF=
"#ETCHOSTSPECIFICSYSTEMCONFIGURATION"
217 >/etc : Host-specific system configuration
</A
228 HREF=
"#REQUIREMENTS3"
233 HREF=
"#SPECIFICOPTIONS5"
238 HREF=
"#ETCOPTCONFIGURATIONFILESFOROPT"
239 >/etc/opt : Configuration files for /opt
</A
243 HREF=
"#ETCX11CONFIGURATIONFORTHEXWINDOWS"
244 >/etc/X11 : Configuration for the X Window System (optional)
</A
248 HREF=
"#ETCSGMLCONFIGURATIONFILESFORSGMLAN"
249 >/etc/sgml : Configuration files for SGML (optional)
</A
254 >/etc/xml : Configuration files for XML (optional)
</A
260 HREF=
"#HOMEUSERHOMEDIRECTORIES"
261 >/home : User home directories (optional)
</A
272 HREF=
"#REQUIREMENTS4A"
279 HREF=
"#LIBESSENTIALSHAREDLIBRARIESANDKERN"
280 >/lib : Essential shared libraries and kernel modules
</A
291 HREF=
"#REQUIREMENTS5"
296 HREF=
"#SPECIFICOPTIONS7"
303 HREF=
"#LIBLTQUALGTALTERNATEFORMATESSENTIAL"
304 >/lib
<qual
> : Alternate format essential shared libraries (optional)
</A
315 HREF=
"#REQUIREMENTS6"
322 HREF=
"#MEDIAMOUNTPOINT"
323 >/media : Mount point for removeable media
</A
329 HREF=
"#PURPOSEMEDIAMOUNTPOINT"
334 HREF=
"#SPECIFICOPTIONSMEDIAMOUNT"
341 HREF=
"#MNTMOUNTPOINTFORATEMPORARILYMOUNT"
342 >/mnt : Mount point for a temporarily mounted filesystem
</A
355 HREF=
"#OPTADDONAPPLICATIONSOFTWAREPACKAGES"
356 >/opt : Add-on application software packages
</A
367 HREF=
"#REQUIREMENTS7"
374 HREF=
"#ROOTHOMEDIRECTORYFORTHEROOTUSER"
375 >/root : Home directory for the root user (optional)
</A
388 HREF=
"#SBINSYSTEMBINARIES"
389 >/sbin : System binaries
</A
400 HREF=
"#REQUIREMENTS8"
405 HREF=
"#SPECIFICOPTIONS8"
412 HREF=
"#SRVDATAFORSERVICESPROVIDEDBYSYSTEM"
413 >/srv : Data for services provided by this system
</A
426 HREF=
"#TMPTEMPORARYFILES"
427 >/tmp : Temporary files
</A
442 HREF=
"#THEUSRHIERARCHY"
443 >The /usr Hierarchy
</A
454 HREF=
"#REQUIREMENTS9"
459 HREF=
"#SPECIFICOPTIONS9"
464 HREF=
"#USRX11R6XWINDOWSYSTEMVERSION11REL"
465 >/usr/X11R6 : X Window System, Version
11 Release
6 (optional)
</A
476 HREF=
"#SPECIFICOPTIONS10"
483 HREF=
"#USRBINMOSTUSERCOMMANDS"
484 >/usr/bin : Most user commands
</A
495 HREF=
"#SPECIFICOPTIONS11"
502 HREF=
"#USRINCLUDEDIRECTORYFORSTANDARDINCLU"
503 >/usr/include : Directory for standard include files.
</A
514 HREF=
"#SPECIFICOPTIONS12"
521 HREF=
"#USRLIBLIBRARIESFORPROGRAMMINGANDPA"
522 >/usr/lib : Libraries for programming and packages
</A
533 HREF=
"#SPECIFICOPTIONS13"
540 HREF=
"#USRLIBLTQUALGTALTERNATEFORMATLIBRARI"
541 >/usr/lib
<qual
> : Alternate format libraries (optional)
</A
552 HREF=
"#USRLOCALLOCALHIERARCHY"
553 >/usr/local : Local hierarchy
</A
559 HREF=
"#USRLOCALSHARE1"
564 HREF=
"#USRSBINNONESSENTIALSTANDARDSYSTEMBI"
565 >/usr/sbin : Non-essential standard system binaries
</A
578 HREF=
"#USRSHAREARCHITECTUREINDEPENDENTDATA"
579 >/usr/share : Architecture-independent data
</A
590 HREF=
"#REQUIREMENTS11"
595 HREF=
"#SPECIFICOPTIONS15"
600 HREF=
"#USRSHAREDICTWORDLISTS"
601 >/usr/share/dict : Word lists (optional)
</A
605 HREF=
"#USRSHAREMANMANUALPAGES"
606 >/usr/share/man : Manual pages
</A
610 HREF=
"#USRSHAREMISCMISCELLANEOUSARCHITECTURE"
611 >/usr/share/misc : Miscellaneous architecture-independent data
</A
615 HREF=
"#USRSHARESGMLSGMLANDXMLDATA"
616 >/usr/share/sgml : SGML data (optional)
</A
621 >/usr/share/xml : XML data (optional)
</A
627 HREF=
"#USRSRCSOURCECODE"
628 >/usr/src : Source code (optional)
</A
643 HREF=
"#THEVARHIERARCHY"
644 >The /var Hierarchy
</A
655 HREF=
"#REQUIREMENTS12"
660 HREF=
"#SPECIFICOPTIONS20"
665 HREF=
"#VARACCOUNTPROCESSACCOUNTINGLOGS"
666 >/var/account : Process accounting logs (optional)
</A
679 HREF=
"#VARCACHEAPPLICATIONCACHEDATA"
680 >/var/cache : Application cache data
</A
691 HREF=
"#SPECIFICOPTIONS21"
696 HREF=
"#VARCACHEFONTSLOCALLYGENERATEDFONTS"
697 >/var/cache/fonts : Locally-generated fonts (optional)
</A
701 HREF=
"#VARCACHEMANLOCALLYFORMATTEDMANUALPAG"
702 >/var/cache/man : Locally-formatted manual pages (optional)
</A
708 HREF=
"#VARCRASHSYSTEMCRASHDUMPS"
709 >/var/crash : System crash dumps (optional)
</A
722 HREF=
"#VARGAMESVARIABLEGAMEDATA"
723 >/var/games : Variable game data (optional)
</A
736 HREF=
"#VARLIBVARIABLESTATEINFORMATION"
737 >/var/lib : Variable state information
</A
748 HREF=
"#REQUIREMENTS13"
753 HREF=
"#SPECIFICOPTIONS23"
758 HREF=
"#VARLIBLTEDITORGTEDITORBACKUPFILESAN"
759 >/var/lib/
<editor
> : Editor backup files and state (optional)
</A
763 HREF=
"#VARLIBHWCLOCKSTATEDIRECTORYFORHWCLO"
764 >/var/lib/hwclock : State directory for hwclock (optional)
</A
768 HREF=
"#VARLIBMISCMISCELLANEOUSVARIABLEDATA"
769 >/var/lib/misc : Miscellaneous variable data
</A
775 HREF=
"#VARLOCKLOCKFILES"
776 >/var/lock : Lock files
</A
789 HREF=
"#VARLOGLOGFILESANDDIRECTORIES"
790 >/var/log : Log files and directories
</A
801 HREF=
"#SPECIFICOPTIONS24"
808 HREF=
"#VARMAILUSERMAILBOXFILES"
809 >/var/mail : User mailbox files (optional)
</A
822 HREF=
"#VAROPTVARIABLEDATAFOROPT"
823 >/var/opt : Variable data for /opt
</A
836 HREF=
"#VARRUNRUNTIMEVARIABLEDATA"
837 >/var/run : Run-time variable data
</A
848 HREF=
"#REQUIREMENTS14"
855 HREF=
"#VARSPOOLAPPLICATIONSPOOLDATA"
856 >/var/spool : Application spool data
</A
867 HREF=
"#SPECIFICOPTIONS25"
872 HREF=
"#VARSPOOLLPDLINEPRINTERDAEMONPRINTQU"
873 >/var/spool/lpd : Line-printer daemon print queues (optional)
</A
877 HREF=
"#VARSPOOLRWHORWHODFILES"
878 >/var/spool/rwho : Rwhod files (optional)
</A
884 HREF=
"#VARTMPTEMPORARYFILESPRESERVEDBETWEE"
885 >/var/tmp : Temporary files preserved between system reboots
</A
898 HREF=
"#VARYPNETWORKINFORMATIONSERVICE"
899 >/var/yp : Network Information Service (NIS) database files (optional)
</A
914 HREF=
"#OPERATINGSYSTEMSPECIFICANNEX"
915 >Operating System Specific Annex
</A
928 HREF=
"#ROOTDIRECTORY"
929 >/ : Root directory
</A
933 HREF=
"#BINESSENTIALUSERCOMMANDBINARIES2"
934 >/bin : Essential user command binaries (for use by all users)
</A
938 HREF=
"#DEVDEVICESANDSPECIALFILES"
939 >/dev : Devices and special files
</A
943 HREF=
"#ETCHOSTSPECIFICSYSTEMCONFIGURATION2"
944 >/etc : Host-specific system configuration
</A
949 >/lib64 and /lib32 :
64/
32-bit libraries (architecture dependent)
</A
953 HREF=
"#PROCKERNELANDPROCESSINFORMATIONVIR"
954 >/proc : Kernel and process information virtual filesystem
</A
958 HREF=
"#SBINESSENTIALSYSTEMBINARIES"
959 >/sbin : Essential system binaries
</A
963 HREF=
"#USRINCLUDEHEADERFILESINCLUDEDBYCP"
964 >/usr/include : Header files included by C programs
</A
968 HREF=
"#USRSRCSOURCECODE2"
969 >/usr/src : Source code
</A
973 HREF=
"#VARSPOOLCRONCRONANDATJOBS"
974 >/var/spool/cron : cron and at jobs
</A
989 HREF=
"#THEFHSMAILINGLIST"
990 >The FHS mailing list
</A
994 HREF=
"#BACKGROUNDOFTHEFHS"
995 >Background of the FHS
</A
999 HREF=
"#GENERALGUIDELINES"
1000 >General Guidelines
</A
1009 HREF=
"#ACKNOWLEDGMENTS"
1014 HREF=
"#CONTRIBUTORS"
1027 >Chapter
1. Introduction
</H1
1037 >This standard enables:
</P
1043 >Software to predict the location of installed files and
1048 >Users to predict the location of installed files and
1059 >Specifying guiding principles for each area of the filesystem,
</P
1063 >Specifying the minimum files and directories required,
</P
1067 >Enumerating exceptions to the principles, and
</P
1071 >Enumerating specific cases where there has been historical conflict.
</P
1075 >The FHS document is used by:
</P
1081 >Independent software suppliers to create applications which are FHS
1082 compliant, and work with distributions which are FHS complaint,
</P
1086 >OS creators to provide systems which are FHS compliant, and
</P
1090 >Users to understand and maintain the FHS compliance of a system.
</P
1094 >The FHS document has a limited scope:
</P
1100 >Local placement of local files is a local issue, so FHS does not
1101 attempt to usurp system administrators.
</P
1105 >FHS addresses issues where file placements need to be coordinated
1106 between multiple parties such as local sites, distributions,
1107 applications, documentation, etc.
</P
1120 >We recommend that you read a typeset version of this document rather
1121 than the plain text version. In the typeset version, the names of files
1122 and directories are displayed in a constant-width font.
</P
1124 >Components of filenames that vary are represented by a description
1125 of the contents enclosed in
"<SPAN
1138 >" characters,
<SPAN
1144 >. Electronic mail addresses are also
1145 enclosed in
"<" and
">" but are shown in the usual
1148 >Optional components of filenames are enclosed in
1161 >" characters and may
1162 be combined with the
"<SPAN
1175 >" convention. For example, if a filename is
1176 allowed to occur either with or without an extension, it might be
1182 ><filename
>[.
<extension
>]
</I
1186 >Variable substrings of directory names and filenames are indicated
1195 >The sections of the text marked as
1202 > are explanatory and are
1210 NAME=
"THEFILESYSTEM"
1212 >Chapter
2. The Filesystem
</H1
1214 >This standard assumes that the operating system underlying an
1215 FHS-compliant file system supports the same basic security features
1216 found in most UNIX filesystems.
</P
1218 >It is possible to define two independent distinctions among
1219 files: shareable vs. unshareable and variable vs. static. In general,
1220 files that differ in either of these respects should be located in
1221 different directories. This makes it easy to store files with
1222 different usage characteristics on different filesystems.
</P
1224 >"Shareable" files are those that can be stored on one host
1225 and used on others.
"Unshareable" files are those that are not
1226 shareable. For example, the files in user home directories are
1227 shareable whereas device lock files are not.
</P
1229 >"Static" files include binaries, libraries, documentation
1230 files and other files that do not change without system administrator
1231 intervention.
"Variable" files are files that are not static.
</P
1263 >Shareable files can be stored on one host and used on several
1264 others. Typically, however, not all files in the filesystem
1265 hierarchy are shareable and so each system has local storage
1266 containing at least its unshareable files. It is convenient if all
1267 the files a system requires that are stored on a foreign host can be
1268 made available by mounting one or a few directories from the foreign
1271 >Static and variable files should be segregated because static
1272 files, unlike variable files, can be stored on read-only media and
1273 do not need to be backed up on the same schedule as variable
1276 >Historical UNIX-like filesystem hierarchies contained both
1277 static and variable files under both
<TT
1284 >. In order to realize the advantages
1285 mentioned above, the
<TT
1289 created and all variable files were transferred from
1300 > can now be mounted read-only
1301 (if it is a separate filesystem). Variable files have been
1302 transferred from
<TT
1309 > over a longer period as technology has
1312 >Here is an example of a FHS-compliant system.
1313 (Other FHS-compliant layouts are possible.)
</P
1315 CLASS=
"INFORMALTABLE"
1325 ><COL><COL><COL><THEAD
1370 >/var/spool/news
</TD
1388 NAME=
"THEROOTFILESYSTEM"
1390 >Chapter
3. The Root Filesystem
</H1
1400 >The contents of the root filesystem must be adequate to boot,
1401 restore, recover, and/or repair the system.
</P
1406 STYLE=
"list-style-type: disc"
1408 >To boot a system, enough must be present on the root partition
1409 to mount other filesystems. This includes utilities, configuration,
1410 boot loader information, and other essential start-up data.
1421 > are designed such that they may be located
1422 on other partitions or filesystems.
</P
1425 STYLE=
"list-style-type: disc"
1427 >To enable recovery and/or repair of a system, those utilities
1428 needed by an experienced maintainer to diagnose and reconstruct a
1429 damaged system must be present on the root filesystem.
</P
1432 STYLE=
"list-style-type: disc"
1434 >To restore a system, those utilities needed to restore from
1435 system backups (on floppy, tape, etc.) must be present on the root
1470 >The primary concern used to balance these considerations, which
1471 favor placing many things on the root filesystem, is the goal of
1472 keeping root as small as reasonably possible. For several reasons, it
1473 is desirable to keep the root filesystem small:
</P
1479 >It is occasionally mounted from very small media.
</P
1483 >The root filesystem contains many system-specific configuration
1484 files. Possible examples include a kernel that is specific to the
1485 system, a specific hostname, etc. This means that the root filesystem
1486 isn't always shareable between networked systems. Keeping it small on
1487 servers in networked systems minimizes the amount of lost space for
1488 areas of unshareable files. It also allows workstations with smaller
1489 local hard drives.
</P
1493 >While you may have the root filesystem on a large partition, and
1494 may be able to fill it to your heart's content, there will be people
1495 with smaller partitions. If you have more files installed, you may
1496 find incompatibilities with other systems using root filesystems on
1497 smaller partitions. If you are a developer then you may be turning
1498 your assumption into a problem for a large number of users.
</P
1502 >Disk errors that corrupt data on the root filesystem are a
1503 greater problem than errors on any other partition. A small root
1504 filesystem is less prone to corruption as the result of a system
1513 >Applications must never create or require special files or
1514 subdirectories in the root directory. Other locations in the FHS
1515 hierarchy provide more than enough flexibility for any package.
</P
1547 >There are several reasons why creating a new subdirectory of
1548 the root filesystem is prohibited:
</P
1553 STYLE=
"list-style-type: disc"
1555 >It demands space on a root partition which the system
1556 administrator may want kept small and simple for either performance or
1557 security reasons.
</P
1560 STYLE=
"list-style-type: disc"
1562 >It evades whatever discipline the system administrator may have
1563 set up for distributing standard file hierarchies across mountable
1568 >Distributions should not create new directories in the root
1569 hierarchy without extremely careful consideration of the consequences
1570 including for application portability.
</P
1585 >The following directories, or symbolic links to directories, are
1591 CLASS=
"INFORMALTABLE"
1617 >Essential command binaries
</TD
1626 >Static files of the boot loader
</TD
1644 >Host-specific system configuration
</TD
1653 >Essential shared libraries and kernel modules
</TD
1662 >Mount point for removeable media
</TD
1671 >Mount point for mounting a filesystem temporarily
</TD
1680 >Add-on application software packages
</TD
1689 >Essential system binaries
</TD
1698 >Data for services provided by this system
</TD
1707 >Temporary files
</TD
1716 >Secondary hierarchy
</TD
1733 >Each directory listed above is specified in detail in separate
1734 subsections below.
<TT
1741 > each have a complete section in this
1742 document due to the complexity of those directories.
</P
1749 NAME=
"SPECIFICOPTIONS"
1750 >Specific Options
</A
1753 >The following directories, or symbolic links to directories,
1757 >, if the corresponding subsystem is
1760 CLASS=
"INFORMALTABLE"
1786 >User home directories (optional)
</TD
1792 >lib
<qual
></TT
1795 >Alternate format essential shared libraries (optional)
</TD
1804 >Home directory for the root user (optional)
</TD
1812 >Each directory listed above is specified in detail in separate
1813 subsections below.
</P
1820 NAME=
"BINESSENTIALUSERCOMMANDBINARIES"
1821 >/bin : Essential user command binaries (for use by all users)
</A
1835 > contains commands that may be used by
1836 both the system administrator and by users, but which are required
1837 when no other filesystems are mounted (e.g. in single user mode). It
1838 may also contain commands which are used indirectly by scripts.
1854 NAME=
"REQUIREMENTS2"
1858 >There must be no subdirectories in
1864 >The following commands, or symbolic links to commands, are
1870 CLASS=
"INFORMALTABLE"
1896 >Utility to concatenate files to standard output
</TD
1905 >Utility to change file group ownership
</TD
1914 >Utility to change file access permissions
</TD
1923 >Utility to change file owner and group
</TD
1932 >Utility to copy files and directories
</TD
1941 >Utility to print or set the system data and time
</TD
1950 >Utility to convert and copy a file
</TD
1959 >Utility to report filesystem disk space usage
</TD
1968 >Utility to print or control the kernel message buffer
</TD
1977 >Utility to display a line of text
</TD
1986 >Utility to do nothing, unsuccessfully
</TD
1995 >Utility to show or set the system's host name
</TD
2004 >Utility to send signals to processes
</TD
2013 >Utility to make links between files
</TD
2022 >Utility to begin a session on the system
</TD
2031 >Utility to list directory contents
</TD
2040 >Utility to make directories
</TD
2049 >Utility to make block or character special files
</TD
2058 >Utility to page through text
</TD
2067 >Utility to mount a filesystem
</TD
2076 >Utility to move/rename files
</TD
2085 >Utility to report process status
</TD
2094 >Utility to print name of current working directory
</TD
2103 >Utility to remove files or directories
</TD
2112 >Utility to remove empty directories
</TD
2121 >The `sed' stream editor
</TD
2130 >The Bourne command shell
</TD
2139 >Utility to change and print terminal line settings
</TD
2148 >Utility to change user ID
</TD
2157 >Utility to flush filesystem buffers
</TD
2166 >Utility to do nothing, successfully
</TD
2175 >Utility to unmount file systems
</TD
2184 >Utility to print system information
</TD
2195 > is not a true Bourne shell, it
2196 must be a hard or symbolic link to the real shell command.
</P
2205 commands must be placed together in either
<TT
2244 >For example bash behaves differently when called as
2252 symbolic link also allows users to easily see that
2256 > is not a true Bourne shell.
</P
2258 >The requirement for the
<B
2265 > commands to be included as binaries (even if
2266 implemented internally by the shell) is shared with the POSIX
.2
2278 NAME=
"SPECIFICOPTIONS2"
2279 >Specific Options
</A
2282 >The following programs, or symbolic links to programs, must be
2286 > if the corresponding subsystem is
2289 CLASS=
"INFORMALTABLE"
2315 >The C shell (optional)
</TD
2324 >The `ed' editor (optional)
</TD
2333 >The tar archiving utility (optional)
</TD
2342 >The cpio archiving utility (optional)
</TD
2351 >The GNU compression utility (optional)
</TD
2360 >The GNU uncompression utility (optional)
</TD
2369 >The GNU uncompression utility (optional)
</TD
2378 >The network statistics utility (optional)
</TD
2387 >The ICMP network test utility (optional)
</TD
2402 programs exist, they must be symbolic or hard links to
2406 > may be a symbolic link to
2446 >The tar, gzip and cpio commands have been added to make restoration of a
2447 system possible (provided that
<TT
2452 >Conversely, if no restoration from the root partition is ever
2453 expected, then these binaries might be omitted (e.g., a ROM chip root,
2457 > through NFS). If restoration of a
2458 system is planned through the network, then
<B
2465 > (along with everything necessary to get
2466 an ftp connection) must be available on the root partition.
</P
2478 NAME=
"BOOTSTATICFILESOFTHEBOOTLOADER"
2479 >/boot : Static files of the boot loader
</A
2490 >This directory contains everything required for the boot process
2491 except configuration files not needed at boot time and the map
2492 installer. Thus /boot stores data that is used before the kernel
2493 begins executing user-mode programs. This may include saved master
2494 boot sectors and sector map files.
2510 NAME=
"SPECIFICOPTIONS3"
2511 >Specific Options
</A
2514 >The operating system kernel must be located in either
2538 NAME=
"DEVDEVICEFILES"
2539 >/dev : Device files
</A
2553 > directory is the location of
2554 special or device files.
</P
2561 NAME=
"SPECIFICOPTIONS4"
2562 >Specific Options
</A
2565 >If it is possible that devices in
<TT
2569 need to be manually created,
<TT
2576 >, which can create devices
2577 as needed. It may also contain a
<TT
2581 for any local devices.
</P
2586 > must have provisions
2587 for creating any device that may be found on the system, not just
2588 those that a particular implementation installs.
</P
2596 NAME=
"ETCHOSTSPECIFICSYSTEMCONFIGURATION"
2597 >/etc : Host-specific system configuration
</A
2611 > hierarchy contains configuration
2612 files. A
"configuration file" is a local file used to control the
2613 operation of a program; it must be static and cannot be an executable
2630 NAME=
"REQUIREMENTS3"
2634 >No binaries may be located under
<TT
2648 >The following directories, or symbolic links to directories are
2654 CLASS=
"INFORMALTABLE"
2677 >Configuration for /opt
</TD
2683 >Configuration for the X Window system (optional)
</TD
2689 >Configuration for SGML (optional)
</TD
2695 >Configuration for XML (optional)
</TD
2708 NAME=
"SPECIFICOPTIONS5"
2709 >Specific Options
</A
2712 >The following directories, or symbolic links to directories must
2716 >, if the corresponding subsystem is
2719 CLASS=
"INFORMALTABLE"
2742 >Configuration for /opt
</TD
2750 >The following files, or symbolic links to files, must be in
2754 > if the corresponding subsystem is
2766 CLASS=
"INFORMALTABLE"
2792 >Systemwide initialization file for C shell logins (optional)
</TD
2801 >NFS filesystem access control list (optional)
</TD
2810 >Static information about filesystems (optional)
</TD
2819 >FTP daemon user access control list (optional)
</TD
2828 >File which lists gateways for routed (optional)
</TD
2837 >Speed and terminal settings used by getty (optional)
</TD
2846 >User group file (optional)
</TD
2855 >Resolver configuration file (optional)
</TD
2864 >Static information about host names (optional)
</TD
2873 >Host access file for TCP wrappers (optional)
</TD
2882 >Host access file for TCP wrappers (optional)
</TD
2891 >List of trusted hosts for rlogin, rsh, rcp (optional)
</TD
2900 >List of trusted hosts for lpd (optional)
</TD
2909 >Configuration file for inetd (optional)
</TD
2918 >Configuration file for init (optional)
</TD
2927 >Pre-login message and identification file (optional)
</TD
2936 >List of extra directories to search for shared libraries (optional)
</TD
2945 >Post-login message of the day file (optional)
</TD
2954 >Dynamic information about filesystems (optional)
</TD
2963 >Configuration file for mtools (optional)
</TD
2972 >Static information about network names (optional)
</TD
2981 >The password file (optional)
</TD
2990 >The lpd printer capability database (optional)
</TD
2999 >Systemwide initialization file for sh shell logins (optional)
</TD
3008 >IP protocol listing (optional)
</TD
3017 >Resolver configuration file (optional)
</TD
3026 >RPC protocol listing (optional)
</TD
3035 >TTY access control for root login (optional)
</TD
3044 >Port names for network services (optional)
</TD
3053 >Pathnames of valid login shells (optional)
</TD
3062 >Configuration file for syslogd (optional)
</TD
3073 > does not fit the static nature of
3077 >: it is excepted for historical reasons.
3093 NAME=
"ETCOPTCONFIGURATIONFILESFOROPT"
3094 >/etc/opt : Configuration files for /opt
</A
3105 >Host-specific configuration files for add-on application
3106 software packages must be installed within the directory
3109 >/etc/opt/
<subdir
></TT
3114 > is the name of the subtree in
3118 > where the static data from that package is
3126 NAME=
"REQUIREMENTS4"
3130 >No structure is imposed on the internal arrangement of
3133 >/etc/opt/
<subdir
></TT
3136 >If a configuration file must reside in a different location in
3137 order for the package or system to function properly, it may be placed
3138 in a location other than
3141 >/etc/opt/
<subdir
></TT
3174 >Refer to the rationale for
<TT
3189 NAME=
"ETCX11CONFIGURATIONFORTHEXWINDOWS"
3190 >/etc/X11 : Configuration for the X Window System (optional)
</A
3207 > is the location for all X11
3208 host-specific configuration. This directory is necessary to allow
3209 local control if
<SPAN
3223 NAME=
"SPECIFICOPTIONS6"
3224 >Specific Options
</A
3227 >The following files, or symbolic links to files, must be in
3231 > if the corresponding subsystem is
3234 CLASS=
"INFORMALTABLE"
3264 >The configuration file for early versions of XFree86 (optional)
</TD
3273 >The configuration file for XFree86 versions
3 and
4 (optional)
</TD
3282 >Global X11 keyboard modification file (optional)
</TD
3290 >Subdirectories of
<TT
3297 > and for any other programs (some
3298 window managers, for example) that need them.
3309 We recommend that window managers with only one configuration file
3310 which is a default
<TT
3317 > (unless there is a widely-accepted
3318 alternative name) and not use a subdirectory. Any window manager
3319 subdirectories must be identically named to the actual window manager
3328 NAME=
"ETCSGMLCONFIGURATIONFILESFORSGMLAN"
3329 >/etc/sgml : Configuration files for SGML (optional)
</A
3340 >Generic configuration files defining high-level parameters of
3341 the SGML systems are installed here. Files with names
3345 > indicate generic configuration files.
3349 > are the DTD-specific
3350 centralized catalogs, containing references to all other catalogs
3351 needed to use the given DTD. The super catalog file
3355 > references all the centralized
3365 >/etc/xml : Configuration files for XML (optional)
</A
3376 >Generic configuration files defining high-level parameters of
3377 the XML systems are installed here. Files with names
3381 > indicate generic configuration files.
3382 The super catalog file
3386 > references all the centralized
3396 NAME=
"HOMEUSERHOMEDIRECTORIES"
3397 >/home : User home directories (optional)
</A
3411 > is a fairly standard concept, but it
3412 is clearly a site-specific filesystem.
3423 The setup will differ from host to host. Therefore, no program should
3424 rely on this location.
3440 NAME=
"REQUIREMENTS4A"
3444 >User specific configuration files for applications are stored in the
3445 user's home directory in a file that starts with the '.' character (a
3446 "dot file"). If an application needs to create more than one dot file
3447 then they should be placed in a subdirectory with a name starting with
3448 a '.' character, (a
"dot directory"). In this case the configuration
3449 files should not start with the '.' character.
3465 NAME=
"LIBESSENTIALSHAREDLIBRARIESANDKERN"
3466 >/lib : Essential shared libraries and kernel modules
</A
3480 > directory contains those shared
3481 library images needed to boot the system and run the commands in the
3482 root filesystem, ie. by binaries in
<TT
3505 NAME=
"REQUIREMENTS5"
3509 >At least one of each of the following filename patterns are
3510 required (they may be files, or symbolic links):
</P
3512 CLASS=
"INFORMALTABLE"
3538 >The dynamically-linked C library (optional)
</TD
3547 >The execution time linker/loader (optional)
</TD
3555 >If a C preprocessor is installed,
<SPAN
3562 must be a reference to it, for historical reasons.
3578 NAME=
"SPECIFICOPTIONS7"
3579 >Specific Options
</A
3582 >The following directories, or symbolic links to directories,
3586 >, if the corresponding subsystem
3589 CLASS=
"INFORMALTABLE"
3615 >Loadable kernel modules (optional)
</TD
3629 NAME=
"LIBLTQUALGTALTERNATEFORMATESSENTIAL"
3630 >/lib
<qual
> : Alternate format essential shared libraries (optional)
</A
3641 >There may be one or more variants of the
3645 > directory on systems which support more than
3646 one binary format requiring separate libraries.
3662 NAME=
"REQUIREMENTS6"
3666 >If one or more of these directories exist, the requirements for
3667 their contents are the same as the normal
<TT
3671 directory, except that
<TT
3673 >/lib
<qual
>/cpp
</TT
3692 NAME=
"MEDIAMOUNTPOINT"
3693 >/media : Mount point for removeable media
</A
3700 NAME=
"PURPOSEMEDIAMOUNTPOINT"
3704 >This directory contains subdirectories which are used as mount
3705 points for removeable media such as floppy disks, cdroms and zip
3738 >Historically there have been a number of other different places
3739 used to mount removeable media such as
<TT
3750 the mount points for all removeable media directly in the root
3751 directory would potentially result in a large number of extra
3755 >. Although the use of
3756 subdirectories in
<TT
3759 > as a mount point has
3760 recently been common, it conflicts with a much older tradition of
3764 > directly as a temporary mount point.
</P
3775 NAME=
"SPECIFICOPTIONSMEDIAMOUNT"
3776 >Specific Options
</A
3779 >The following directories, or symbolic links to directories,
3783 >, if the corresponding subsystem
3786 CLASS=
"INFORMALTABLE"
3812 >Floppy drive (optional)
</TD
3821 >CD-ROM drive (optional)
</TD
3830 >CD writer (optional)
</TD
3839 >Zip drive (optional)
</TD
3847 >On systems where more than one device exists for mounting a
3848 certain type of media, mount directories can be created by appending a
3849 digit to the name of those available above starting with '
0', but the
3850 unqualified name must also exist.
3867 NAME=
"MNTMOUNTPOINTFORATEMPORARILYMOUNT"
3868 >/mnt : Mount point for a temporarily mounted filesystem
</A
3879 >This directory is provided so that the system administrator may
3880 temporarily mount a filesystem as needed. The content of this
3881 directory is a local issue and should not affect the manner in which
3882 any program is run.
</P
3884 >This directory must not be used by installation programs: a
3885 suitable temporary directory not in use by the system must be used
3894 NAME=
"OPTADDONAPPLICATIONSOFTWAREPACKAGES"
3895 >/opt : Add-on application software packages
</A
3909 > is reserved for the installation of
3910 add-on application software packages.
</P
3912 >A package to be installed in
<TT
3916 locate its static files in a separate
3919 >/opt/
<package
></TT
3923 >/opt/
<provider
></TT
3927 ><package
></TT
3929 describes the software package and
3932 ><provider
></TT
3933 > is the provider's LANANA
3941 NAME=
"REQUIREMENTS7"
3945 CLASS=
"INFORMALTABLE"
3966 ><package
></TD
3968 >Static package objects
</TD
3972 ><provider
></TD
3974 >LANANA registered provider name
</TD
3982 >The directories
<TT
4003 > are reserved for local system
4004 administrator use. Packages may provide
"front-end" files intended to
4005 be placed in (by linking or copying) these reserved directories by the
4006 local system administrator, but must function normally in the absence
4007 of these reserved directories.
</P
4009 >Programs to be invoked by users must be located in the directory
4012 >/opt/
<package
>/bin
</TT
4016 >/opt/
<provider
></TT
4017 > hierarchy. If the package
4018 includes UNIX manual pages, they must be located in
4021 >/opt/
<package
>/share/man
</TT
4025 >/opt/
<provider
></TT
4026 > hierarchy, and the same
4033 >Package files that are variable (change in normal operation)
4034 must be installed in
<TT
4041 > for more information.
</P
4043 >Host-specific configuration files must be installed in
4047 >. See the section on
4051 > for more information.
</P
4053 >No other package files may exist outside the
4064 > hierarchies except for those package
4065 files that must reside in specific locations within the filesystem
4066 tree in order to function properly. For example, device lock files
4067 must be placed in
<TT
4070 > and devices must be
4076 >Distributions may install software in
<TT
4080 but must not modify or delete software installed by the local system
4081 administrator without the assent of the local system
4117 > for add-on software is a
4118 well-established practice in the UNIX community. The System V
4119 Application Binary Interface [AT
&T
1990], based on the System V
4120 Interface Definition (Third Edition), provides for an
4124 > structure very similar to the one defined
4127 >The Intel Binary Compatibility Standard v.
2 (iBCS2) also
4128 provides a similar structure for
<TT
4133 >Generally, all data required to support a package on a system
4134 must be present within
<TT
4136 >/opt/
<package
></TT
4138 including files intended to be copied into
4141 >/etc/opt/
<package
></TT
4145 >/var/opt/
<package
></TT
4146 > as well as reserved
4152 >The minor restrictions on distributions using
4156 > are necessary because conflicts are possible
4157 between distribution-installed and locally-installed software,
4158 especially in the case of fixed pathnames found in some binary
4161 >The structure of the directories below
4164 >/opt/
<provider
></TT
4165 > is left up to the packager
4166 of the software, though it is recommended that packages are installed
4169 >/opt/
<provider
>/
<package
></TT
4171 follow a similar structure to the guidelines for
4175 >. A valid reason for diverging from
4176 this structure is for support packages which may have files installed
4179 >/opt/
<provider
>/lib
</TT
4183 >/opt/
<provider
>/bin
</TT
4196 NAME=
"ROOTHOMEDIRECTORYFORTHEROOTUSER"
4197 >/root : Home directory for the root user (optional)
</A
4208 >The root account's home directory may be determined by developer
4209 or local preference, but this is the recommended default
4227 NAME=
"SBINSYSTEMBINARIES"
4228 >/sbin : System binaries
</A
4239 >Utilities used for system administration (and other root-only
4240 commands) are stored in
<TT
4250 >/usr/local/sbin
</TT
4255 contains binaries essential for booting, restoring, recovering, and/or
4256 repairing the system in addition to the binaries in
4269 > Programs executed after
4273 > is known to be mounted (when there are no
4274 problems) are generally placed into
<TT
4278 Locally-installed system administration programs should be placed into
4281 >/usr/local/sbin
</TT
4298 NAME=
"REQUIREMENTS8"
4302 >The following commands, or symbolic links to commands, are
4308 CLASS=
"INFORMALTABLE"
4334 >Command to bring the system down.
</TD
4347 NAME=
"SPECIFICOPTIONS8"
4348 >Specific Options
</A
4351 >The following files, or symbolic links to files, must be in
4355 > if the corresponding subsystem is
4358 CLASS=
"INFORMALTABLE"
4388 >Reboot the system without checking the disks (optional)
</TD
4397 >Stop the system without checking the disks (optional)
</TD
4406 >Partition table manipulator (optional)
</TD
4415 >File system check and repair utility (optional)
</TD
4424 >File system check and repair utility for a specific filesystem (optional)
</TD
4433 >The getty program (optional)
</TD
4442 >Command to stop the system (optional)
</TD
4451 >Configure a network interface (optional)
</TD
4460 >Initial process (optional)
</TD
4469 >Command to build a filesystem (optional)
</TD
4478 >Command to build a specific filesystem (optional)
</TD
4487 >Command to set up a swap area (optional)
</TD
4496 >Command to reboot the system (optional)
</TD
4505 >IP routing table utility (optional)
</TD
4514 >Enable paging and swapping (optional)
</TD
4523 >Disable paging and swapping (optional)
</TD
4532 >Daemon to periodically flush filesystem buffers (optional)
</TD
4546 NAME=
"SRVDATAFORSERVICESPROVIDEDBYSYSTEM"
4547 >/srv : Data for services provided by this system
</A
4561 > contains site-specific data which is
4562 served by this system.
4595 >This main purpose of specifying this is so that users may find the
4596 location of the data files for particular service, and so that
4597 services which require a single tree for readonly data, writable data
4598 and scripts (such as cgi scripts) can be reasonably placed. Data that
4599 is only of interest to a specific user should go in that users' home
4602 >The methodology used to name subdirectories of
4606 > is unspecified as there is currently no
4607 consensus on how this should be done. One method for structuring data
4626 systems it can be useful to structure
<TT
4630 administrative context, such as
<TT
4632 >/srv/physics/www
</TT
4636 >/srv/compsci/cvs
</TT
4637 >, etc. This setup will differ
4638 from host to host. Therefore, no program should rely on a specific
4639 subdirectory structure of
<TT
4643 necessarily being stored in
<TT
4650 > should always exist on FHS compliant systems
4651 and should be used as the default location for such data.
</P
4653 >Distributions must take care not to remove locally placed files in
4654 these directories without administrator permission.
4675 NAME=
"TMPTEMPORARYFILES"
4676 >/tmp : Temporary files
</A
4690 > directory must be made available
4691 for programs that require temporary files.
</P
4693 >Programs must not assume that any files or directories in
4697 > are preserved between invocations of the
4730 >IEEE standard P1003.2 (POSIX, part
2) makes requirements that
4731 are similar to the above section.
</P
4733 >Although data stored in
<TT
4737 in a site-specific manner, it is recommended that files and
4738 directories located in
<TT
4741 > be deleted whenever
4742 the system is booted.
</P
4744 >FHS added this recommendation on the basis of historical
4745 precedent and common practice, but did not make it a requirement
4746 because system administration is not within the scope of this
4759 NAME=
"THEUSRHIERARCHY"
4761 >Chapter
4. The /usr Hierarchy
</H1
4774 > is the second major section of the
4778 > is shareable, read-only data.
4782 > should be shareable between
4783 various FHS-compliant hosts and must not be written to. Any
4784 information that is host-specific or varies with time is stored
4787 >Large software packages must not use a direct subdirectory under
4798 NAME=
"REQUIREMENTS9"
4802 >The following directories, or symbolic links to directories, are
4808 CLASS=
"INFORMALTABLE"
4834 >Most user commands
</TD
4843 >Header files included by C programs
</TD
4861 >Local hierarchy (empty after main installation)
</TD
4870 >Non-vital system binaries
</TD
4879 >Architecture-independent data
</TD
4892 NAME=
"SPECIFICOPTIONS9"
4893 >Specific Options
</A
4896 CLASS=
"INFORMALTABLE"
4922 >XWindow System, version
11 release
6 (optional)
</TD
4931 >Games and educational binaries (optional)
</TD
4937 >lib
<qual
></TT
4940 >Alternate Format Libraries (optional)
</TD
4949 >Source code (optional)
</TD
4957 >An exception is made for the X Window System because of
4958 considerable precedent and widely-accepted practice.
</P
4960 >The following symbolic links to directories may be present. This
4961 possibility is based on the need to preserve compatibility with older
4962 systems until all implementations can be assumed to use the
4975 > /usr/spool -
> /var/spool
4976 /usr/tmp -
> /var/tmp
4977 /usr/spool/locks -
> /var/lock
</PRE
4982 >Once a system no longer requires any one of the above symbolic links,
4983 the link may be removed, if desired.
</P
4990 NAME=
"USRX11R6XWINDOWSYSTEMVERSION11REL"
4991 >/usr/X11R6 : X Window System, Version
11 Release
6 (optional)
</A
5002 >This hierarchy is reserved for the X Window System, version
11
5003 release
6, and related files.
</P
5005 >To simplify matters and make XFree86 more compatible with the X
5006 Window System on other systems, the following symbolic links must be
5019 > /usr/bin/X11 -
> /usr/X11R6/bin
5020 /usr/lib/X11 -
> /usr/X11R6/lib/X11
5021 /usr/include/X11 -
> /usr/X11R6/include/X11
</PRE
5026 >In general, software must not be installed or managed via the above
5027 symbolic links. They are intended for utilization by users only. The
5028 difficulty is related to the release version of the X Window System
—
5029 in transitional periods, it is impossible to know what release of X11 is
5037 NAME=
"SPECIFICOPTIONS10"
5038 >Specific Options
</A
5041 >Host-specific data in
<TT
5043 >/usr/X11R6/lib/X11
</TT
5044 > should be interpreted
5045 as a demonstration file. Applications requiring information about the
5046 current host must reference a configuration file in
<TT
5050 which may be linked to a file in
<TT
5070 NAME=
"USRBINMOSTUSERCOMMANDS"
5071 >/usr/bin : Most user commands
</A
5082 >This is the primary directory of executable commands on the
5090 NAME=
"SPECIFICOPTIONS11"
5091 >Specific Options
</A
5094 >The following directories, or symbolic links to directories,
5098 >, if the corresponding
5099 subsystem is installed:
</P
5101 CLASS=
"INFORMALTABLE"
5127 >Commands for the MH mail handling system (optional)
</TD
5138 > must be a symlink to
5142 > if the latter exists.
</P
5144 >The following files, or symbolic links to files, must be in
5148 >, if the corresponding subsystem is
5151 CLASS=
"INFORMALTABLE"
5177 >The Practical Extraction and Report Language (optional)
</TD
5186 >The Python interpreted language (optional)
</TD
5195 >Simple shell containing Tcl interpreter (optional)
</TD
5204 >Simple Tcl/Tk windowing shell (optional)
</TD
5213 >Program for interactive dialog (optional)
</TD
5251 >Because shell script interpreters (invoked with
5255 > on the first line of a shell
5256 script) cannot rely on a path, it is advantageous to standardize their
5257 locations. The Bourne shell and C-shell interpreters are already
5261 >, but Perl, Python, and Tcl are
5262 often found in many different places. They may be symlinks to the
5263 physical location of the shell interpreters.
</P
5275 NAME=
"USRINCLUDEDIRECTORYFORSTANDARDINCLU"
5276 >/usr/include : Directory for standard include files.
</A
5287 >This is where all of the system's general-use include files for the C
5288 programming language should be placed.
</P
5295 NAME=
"SPECIFICOPTIONS12"
5296 >Specific Options
</A
5299 >The following directories, or symbolic links to directories,
5303 >, if the corresponding
5304 subsystem is installed:
</P
5306 CLASS=
"INFORMALTABLE"
5329 >BSD compatibility include files (optional)
</TD
5337 >The symbolic link
<TT
5339 >/usr/include/X11
</TT
5343 >/usr/X11R6/include/X11
</TT
5353 NAME=
"USRLIBLIBRARIESFORPROGRAMMINGANDPA"
5354 >/usr/lib : Libraries for programming and packages
</A
5368 > includes object files, libraries,
5369 and internal binaries that are not intended to be executed directly by
5370 users or shell scripts.
5380 >Applications may use a single subdirectory under
5384 >. If an application uses a subdirectory,
5385 all architecture-dependent data exclusively used by the application
5386 must be placed within that subdirectory.
5402 NAME=
"SPECIFICOPTIONS13"
5403 >Specific Options
</A
5406 >For historical reasons,
<B
5408 >/usr/lib/sendmail
</B
5410 must be a symbolic link to
<B
5412 >/usr/sbin/sendmail
</B
5432 > must be a symbolic link to
5440 > is a symbolic link to.
5457 NAME=
"USRLIBLTQUALGTALTERNATEFORMATLIBRARI"
5458 >/usr/lib
<qual
> : Alternate format libraries (optional)
</A
5471 >/usr/lib
<qual
></TT
5472 > performs the same role as
<TT
5476 alternate binary format, except that the symbolic links
5479 >/usr/lib
<qual
>/sendmail
</TT
5482 >/usr/lib
<qual
>/X11
</TT
5499 NAME=
"USRLOCALLOCALHIERARCHY"
5500 >/usr/local : Local hierarchy
</A
5514 > hierarchy is for use by the
5515 system administrator when installing software locally. It needs to be
5516 safe from being overwritten when the system software is updated. It
5517 may be used for programs and data that are shareable amongst a group
5518 of hosts, but not found in
<TT
5523 >Locally installed software must be placed within
5531 unless it is being installed to replace or upgrade software in
5551 NAME=
"REQUIREMENTS10"
5555 >The following directories, or symbolic links to directories,
5561 CLASS=
"INFORMALTABLE"
5596 >Host-specific system configuration for local binaries
</TD
5605 >Local game binaries
</TD
5614 >Local C header files
</TD
5623 >Local libraries
</TD
5632 >Local online manuals
</TD
5641 >Local system binaries
</TD
5650 >Local architecture-independent hierarchy
</TD
5659 >Local source code
</TD
5667 >No other directories, except those listed below, may be in
5671 > after first installing a FHS-compliant
5679 NAME=
"SPECIFICOPTIONS14"
5680 >Specific Options
</A
5685 >/lib
<qual
></TT
5689 >/usr/lib
<qual
></TT
5690 > exist, the equivalent
5691 directories must also exist in
<TT
5699 > may be a symbolic link to
5735 >The consistency of
<TT
5739 beneficial to installers, and is already used in other systems. As
5743 > needs to be backed up to
5744 reproduce a system, it introduces no additional maintenance overhead,
5745 but a symlink to
<TT
5749 systems want alltheir configuration under one hierarchy.
</P
5754 > is still not allowed: programs
5758 > should place configuration files in
5775 NAME=
"USRLOCALSHARE1"
5776 >/usr/local/share
</A
5779 >The requirements for the contents of this directory are the same
5783 >. The only additional constraint is
5786 >/usr/local/share/man
</TT
5791 > directories must be synonomous
5792 (usually this means that one of them must be a symbolic link).
5808 NAME=
"USRSBINNONESSENTIALSTANDARDSYSTEMBI"
5809 >/usr/sbin : Non-essential standard system binaries
</A
5820 >This directory contains any non-essential binaries used
5821 exclusively by the system administrator. System administration
5822 programs that are required for system repair, system recovery,
5826 >, or other essential functions must
5847 NAME=
"USRSHAREARCHITECTUREINDEPENDENTDATA"
5848 >/usr/share : Architecture-independent data
</A
5862 > hierarchy is for all
5863 read-only architecture independent data files.
5874 >This hierarchy is intended to be shareable among all
5875 architecture platforms of a given OS; thus, for example, a site with
5876 i386, Alpha, and PPC platforms might maintain a single
5880 > directory that is centrally-mounted.
5881 Note, however, that
<TT
5885 intended to be shared by different OSes or by different releases of
5888 >Any program or package which contains or requires data that
5889 doesn't need to be modified should store that data in
5896 >/usr/local/share
</TT
5897 >, if installed locally). It is
5898 recommended that a subdirectory be used in
5902 > for this purpose.
</P
5904 >Game data stored in
<TT
5906 >/usr/share/games
</TT
5908 be purely static data. Any modifiable files, such as score files,
5909 game play logs, and so forth, should be placed in
5920 NAME=
"REQUIREMENTS11"
5924 >The following directories, or symbolic links to directories,
5930 CLASS=
"INFORMALTABLE"
5965 >Miscellaneous architecture-independent data
</TD
5978 NAME=
"SPECIFICOPTIONS15"
5979 >Specific Options
</A
5982 >The following directories, or symbolic links to directories, must be in
<TT
5985 >, if the corresponding
5986 subsystem is installed:
</P
5988 CLASS=
"INFORMALTABLE"
6014 >Word lists (optional)
</TD
6023 >Miscellaneous documentation (optional)
</TD
6032 >Static data files for /usr/games (optional)
</TD
6041 >GNU Info system s primary directory (optional)
</TD
6050 >Locale information (optional)
</TD
6059 >Message catalogs for Native language support (optional)
</TD
6068 >SGML data (optional)
</TD
6077 >Directories for terminfo database (optional)
</TD
6086 >troff macros not distributed with groff (optional)
</TD
6095 >XML data (optional)
</TD
6104 >Timezone information and configuration (optional)
</TD
6112 >It is recommended that application-specific,
6113 architecture-independent directories be placed here. Such directories
6135 (BSD). They may, however, be placed in
<TT
6139 for backwards compatibility, at the distributor's discretion.
6143 > hierarchy may be used
6144 in addition to the
<TT
6146 >/usr/share/games
</TT
6148 the distributor wishes to place some game data there.
</P
6155 NAME=
"USRSHAREDICTWORDLISTS"
6156 >/usr/share/dict : Word lists (optional)
</A
6167 >This directory is the home for word lists on the system;
6168 Traditionally this directory contains only the English
6172 > file, which is used by
6176 > and various spelling programs.
6180 > may use either American or British
6213 >The reason that only word lists are located here is that they
6214 are the only files common to all spell checkers.
</P
6225 NAME=
"SPECIFICOPTIONS16"
6226 >Specific Options
</A
6229 >The following files, or symbolic links to files, must be in
6232 >/usr/share/dict
</TT
6233 >, if the corresponding subsystem
6236 CLASS=
"INFORMALTABLE"
6265 >List of English words (optional)
</TD
6273 >Sites that require both American and British spelling may link
6280 >­/usr/share/dict/american-english
</TT
6284 >­/usr/share/dict/british-english
</TT
6287 >Word lists for other languages may be added using the English
6288 name for that language, e.g.,
6291 >/usr/share/dict/french
</TT
6295 >/usr/share/dict/danish
</TT
6296 >, etc. These should, if
6297 possible, use an ISO
8859 character set which is appropriate for the
6298 language in question; if possible the Latin1 (ISO
8859-
1) character
6299 set should be used (this is often not possible).
</P
6301 >Other word lists must be included here, if present.
</P
6309 NAME=
"USRSHAREMANMANUALPAGES"
6310 >/usr/share/man : Manual pages
</A
6321 >This section details the organization for manual pages
6322 throughout the system, including
<TT
6326 Also refer to the section on
6343 > contains manual information for
6344 commands and data under the
<TT
6362 >Manual pages are stored in
6365 ><mandir
>/
<locale
>/man
<section
>/
<arch
></TT
6367 An explanation of
<TT
6377 ><section
></TT
6382 > is given below.
</P
6384 >A description of each section follows:
</P
6389 STYLE=
"list-style-type: disc"
6395 Manual pages that describe publicly accessible commands are contained in
6396 this chapter. Most program documentation that a user will need to use
6400 STYLE=
"list-style-type: disc"
6406 This section describes all of the system calls (requests for the
6407 kernel to perform operations).
</P
6410 STYLE=
"list-style-type: disc"
6415 >: Library functions and subroutines
6416 Section
3 describes program library routines that are not direct calls
6417 to kernel services. This and chapter
2 are only really of interest to
6421 STYLE=
"list-style-type: disc"
6427 Section
4 describes the special files, related driver functions, and
6428 networking support available in the system. Typically, this includes
6429 the device files found in
<TT
6432 > and the kernel interface to
6433 networking protocol support.
</P
6436 STYLE=
"list-style-type: disc"
6442 The formats for many data files are documented in the
6443 section
5. This includes various include files, program output files,
6444 and system files.
</P
6447 STYLE=
"list-style-type: disc"
6453 This chapter documents games, demos, and generally trivial programs.
6454 Different people have various notions about how essential this is.
</P
6457 STYLE=
"list-style-type: disc"
6463 Manual pages that are difficult to classify are designated as being
6464 section
7. The troff and other text processing macro packages are found
6468 STYLE=
"list-style-type: disc"
6473 >: System administration
6474 Programs used by system administrators for system operation and
6475 maintenance are documented here. Some of these programs are also
6476 occasionally useful for normal users.
</P
6485 NAME=
"SPECIFICOPTIONS17"
6486 >Specific Options
</A
6489 >The following directories, or symbolic links to directories,
6493 >/usr/share/
<mandir
>/
<locale
></TT
6506 CLASS=
"INFORMALTABLE"
6532 >User programs (optional)
</TD
6541 >System calls (optional)
</TD
6550 >Library calls (optional)
</TD
6559 >Special files (optional)
</TD
6568 >File formats (optional)
</TD
6577 >Games (optional)
</TD
6586 >Miscellaneous (optional)
</TD
6595 >System administration (optional)
</TD
6605 ><section
></TT
6609 >Provisions must be made in the structure of
6613 > to support manual pages which are
6614 written in different (or multiple) languages. These provisions must
6615 take into account the storage and reference of these manual pages.
6616 Relevant factors include language (including geographical-based
6617 differences), and character code set.
</P
6619 >This naming of language subdirectories of
6623 > is based on Appendix E of the
6624 POSIX
1003.1 standard which describes the locale identification string
6625 — the most well-accepted method to describe a cultural
6626 environment. The
<TT
6634 ><language
>[_
<territory
>][.
<character-set
>][,
<version
>]
</TT
6639 ><language
></TT
6640 > field must be taken
6641 from ISO
639 (a code for the representation of names of languages).
6642 It must be two characters wide and specified with lowercase letters
6647 ><territory
></TT
6649 two-letter code of ISO
3166 (a specification of representations of
6650 countries), if possible. (Most people are familiar with the
6651 two-letter codes used for the country codes in email addresses.) It
6652 must be two characters wide and specified with uppercase letters
6665 ><character-set
></TT
6667 represent the standard describing the character set. If the
6670 >­<character-set
></TT
6672 numeric specification, the number represents the number of the
6673 international standard describing the character set. It is
6674 recommended that this be a numeric representation if possible (ISO
6675 standards, especially), not include additional punctuation symbols,
6676 and that any letters be in lowercase.
</P
6678 >A parameter specifying a
<TT
6680 ><version
></TT
6682 the profile may be placed after the
6685 >­<character-set
></TT
6686 > field, delimited by a
6687 comma. This may be used to discriminate between different cultural
6688 needs; for instance, dictionary order versus a more systems-oriented
6689 collating order. This standard recommends not using the
6692 ><version
></TT
6693 > field, unless it is
6696 >Systems which use a unique language and code set for all manual
6697 pages may omit the
<TT
6701 store all manual pages in
<TT
6705 example, systems which only have English manual pages coded with
6706 ASCII, may store manual pages (the
6709 >man
<section
></TT
6710 > directories) directly in
6714 >. (That is the traditional
6715 circumstance and arrangement, in fact.)
</P
6717 >Countries for which there is a well-accepted standard character
6718 code set may omit the
<TT
6720 >­<character-set
></TT
6722 field, but it is strongly recommended that it be included, especially
6723 for countries with several competing standards.
</P
6725 >Various examples:
</P
6727 CLASS=
"INFORMALTABLE"
6774 >/usr/share/man/en
</TD
6788 >/usr/share/man/en_GB
</TD
6802 >/usr/share/man/en_US
</TD
6816 >/usr/share/man/fr_CA
</TD
6830 >/usr/share/man/fr_FR
</TD
6844 >/usr/share/man/de_DE
.646</TD
6858 >/usr/share/man/de_DE
.6937</TD
6872 >/usr/share/man/de_DE
.88591</TD
6886 >/usr/share/man/de_CH
.646</TD
6900 >/usr/share/man/ja_JP.jis
</TD
6914 >/usr/share/man/ja_JP.sjis
</TD
6925 >UJIS (or EUC-J)
</TD
6928 >/usr/share/man/ja_JP.ujis
</TD
6936 >Similarly, provision must be made for manual pages which are
6937 architecture-dependent, such as documentation on device-drivers or
6938 low-level system administration commands. These must be placed under
6942 > directory in the appropriate
6945 >man
<section
></TT
6946 > directory; for example, a man
6947 page for the i386 ctrlaltdel(
8) command might be placed in
6950 >/usr/share/man/
<locale
>/man8/i386/ctrlaltdel
.8</TT
6953 >Manual pages for commands and data under
6961 >. Manual pages for X11R6 are
6965 >. It follows that all
6966 manual page hierarchies in the system must have the same structure as
6972 >The cat page sections (
<TT
6974 >cat
<section
></TT
6976 containing formatted manual page entries are also found within
6977 subdirectories of
<TT
6979 ><mandir
>/
<locale
></TT
6981 but are not required nor may they be distributed in lieu of nroff
6982 source manual pages.
</P
6984 >The numbered sections
"1" through
"8" are traditionally defined.
6985 In general, the file name for manual pages located within a particular
6986 section end with
<TT
6988 >.
<section
></TT
6991 >In addition, some large sets of application-specific manual
6992 pages have an additional suffix appended to the manual page filename.
6993 For example, the MH mail handling system manual pages must have
6997 > appended to all MH manuals. All X Window
6998 System manual pages must have an
<TT
7004 >The practice of placing various language manual pages in
7005 appropriate subdirectories of
<TT
7009 applies to the other manual page hierarchies, such as
7017 >. (This portion of the standard
7018 also applies later in the section on the optional
7030 NAME=
"USRSHAREMISCMISCELLANEOUSARCHITECTURE"
7031 >/usr/share/misc : Miscellaneous architecture-independent data
</A
7034 >This directory contains miscellaneous architecture-independent
7035 files which don't require a separate subdirectory under
7045 NAME=
"SPECIFICOPTIONS18"
7046 >Specific Options
</A
7049 >The following files, or symbolic links to files, must be in
7052 >/usr/share/misc
</TT
7053 >, if the corresponding subsystem
7056 CLASS=
"INFORMALTABLE"
7086 >ASCII character set table (optional)
</TD
7095 >Default list of magic numbers for the file command (optional)
</TD
7104 >Terminal capability database (optional)
</TD
7113 >Terminal capability database (optional)
</TD
7121 >Other (application-specific) files may appear here, but a distributor
7122 may place them in
<TT
7125 > at their discretion.
7141 NAME=
"USRSHARESGMLSGMLANDXMLDATA"
7142 >/usr/share/sgml : SGML data (optional)
</A
7155 >/usr/share/sgml
</TT
7157 architecture-independent files used by SGML applications, such
7158 as ordinary catalogs (not the centralized ones, see
7162 >), DTDs, entities, or style
7170 NAME=
"SPECIFICOPTIONS19"
7171 >Specific Options
</A
7174 >The following directories, or symbolic links to directories,
7177 >/usr/share/sgml
</TT
7178 >, if the corresponding
7179 subsystem is installed:
</P
7181 CLASS=
"INFORMALTABLE"
7207 >docbook DTD (optional)
</TD
7216 >tei DTD (optional)
</TD
7225 >html DTD (optional)
</TD
7234 >mathml DTD (optional)
</TD
7242 >Other files that are not specific to a given DTD may reside in
7243 their own subdirectory.
</P
7252 >/usr/share/xml : XML data (optional)
</A
7267 architecture-independent files used by XML applications, such
7268 as ordinary catalogs (not the centralized ones, see
7272 >), DTDs, entities, or style
7281 >Specific Options
</A
7284 >The following directories, or symbolic links to directories,
7288 >, if the corresponding
7289 subsystem is installed:
</P
7291 CLASS=
"INFORMALTABLE"
7317 >docbook XML DTD (optional)
</TD
7326 >XHTML DTD (optional)
</TD
7335 >MathML DTD (optional)
</TD
7350 NAME=
"USRSRCSOURCECODE"
7351 >/usr/src : Source code (optional)
</A
7362 >Source code may be place placed in this
7363 subdirectory, only for reference purposes.
7380 NAME=
"THEVARHIERARCHY"
7382 >Chapter
5. The /var Hierarchy
</H1
7395 > contains variable data files. This
7396 includes spool directories and files, administrative and logging data,
7397 and transient and temporary files.
</P
7399 >Some portions of
<TT
7403 between different systems. For instance,
7414 >. Other portions may be shared, notably
7424 >/var/cache/fonts
</TT
7428 >/var/spool/news
</TT
7434 > is specified here in order to make it
7435 possible to mount
<TT
7438 > read-only. Everything
7439 that once went into
<TT
7442 > that is written to
7443 during system operation (as opposed to installation and software
7444 maintenance) must be in
<TT
7452 > cannot be made a separate
7453 partition, it is often preferable to move
<TT
7457 out of the root partition and into the
<TT
7461 partition. (This is sometimes done to reduce the size of the root
7462 partition or when space runs low in the root partition.) However,
7466 > must not be linked to
7470 > because this makes separation of
7478 and is likely to create a naming conflict. Instead, link
7487 >Applications must generally not add directories to the top level
7491 >. Such directories should only be added
7492 if they have some system-wide implication, and in consultation with
7493 the FHS mailing list.
</P
7500 NAME=
"REQUIREMENTS12"
7504 >The following directories, or symbolic links to directories, are
7510 CLASS=
"INFORMALTABLE"
7536 >Application cache data
</TD
7545 >Variable state information
</TD
7554 >Variable data for /usr/local
</TD
7572 >Log files and directories
</TD
7581 >Variable data for /opt
</TD
7590 >Data relevant to running processes
</TD
7599 >Application spool data
</TD
7608 >Temporary files preserved between system reboots
</TD
7616 >Several directories are `reserved' in the sense that they must
7617 not be used arbitrarily by some new application, since they would
7618 conflict with historical and/or local practice. They are:
</P
7640 NAME=
"SPECIFICOPTIONS20"
7641 >Specific Options
</A
7644 >The following directories, or symbolic links to directories,
7648 >, if the corresponding subsystem
7651 CLASS=
"INFORMALTABLE"
7677 >Process accounting logs (optional)
</TD
7686 >System crash dumps (optional)
</TD
7695 >Variable game data (optional)
</TD
7704 >User mailbox files (optional)
</TD
7713 >Network Information Service (NIS) database files (optional)
7727 NAME=
"VARACCOUNTPROCESSACCOUNTINGLOGS"
7728 >/var/account : Process accounting logs (optional)
</A
7739 >This directory holds the current active process accounting log
7740 and the composite process usage data (as used in some UNIX-like
7756 NAME=
"VARCACHEAPPLICATIONCACHEDATA"
7757 >/var/cache : Application cache data
</A
7771 > is intended for cached data from
7772 applications. Such data is locally generated as a result of
7773 time-consuming I/O or calculation. The application must be able to
7774 regenerate or restore the data. Unlike
7778 >, the cached files can be deleted
7779 without data loss. The data must remain valid between invocations of
7780 the application and rebooting the system.
</P
7782 >Files located under
<TT
7786 expired in an application specific manner, by the system
7787 administrator, or both. The application must always be able to
7788 recover from manual deletion of these files (generally because of a
7789 disk space shortage). No other requirements are made on the data
7790 format of the cache directories.
</P
7822 >The existence of a separate directory for cached data allows
7823 system administrators to set different disk and backup policies from
7824 other directories in
<TT
7838 NAME=
"SPECIFICOPTIONS21"
7839 >Specific Options
</A
7842 CLASS=
"INFORMALTABLE"
7868 >Locally-generated fonts (optional)
</TD
7877 >Locally-formatted manual pages (optional)
</TD
7886 >WWW proxy or cache data (optional)
</TD
7892 ><package
></TT
7895 >Package specific cache data (optional)
</TD
7908 NAME=
"VARCACHEFONTSLOCALLYGENERATEDFONTS"
7909 >/var/cache/fonts : Locally-generated fonts (optional)
</A
7922 >/var/cache/fonts
</TT
7923 > should be used to store any
7924 dynamically-created fonts. In particular, all of the fonts which are
7925 automatically generated by
<B
7928 > must be located in
7929 appropriately-named subdirectories of
<TT
7931 >/var/cache/fonts
</TT
7948 NAME=
"SPECIFICOPTIONS22"
7949 >Specific Options
</A
7952 >Other dynamically created fonts may also be placed in this tree,
7953 under appropriately-named subdirectories of
7956 >/var/cache/fonts
</TT
7965 NAME=
"VARCACHEMANLOCALLYFORMATTEDMANUALPAG"
7966 >/var/cache/man : Locally-formatted manual pages (optional)
</A
7977 >This directory provides a standard location for sites that provide a
7981 > partition, but wish to allow caching of
7982 locally-formatted man pages. Sites that mount
<TT
7986 (e.g., single-user installations) may choose not to use
7990 > and may write formatted man pages into the
7993 >cat
<section
></TT
7994 > directories in
<TT
7998 recommend that most sites use one of the following options instead:
</P
8003 STYLE=
"list-style-type: disc"
8005 >Preformat all manual pages alongside the unformatted versions.
</P
8008 STYLE=
"list-style-type: disc"
8010 >Allow no caching of formatted man pages, and require formatting to be
8011 done each time a man page is brought up.
</P
8014 STYLE=
"list-style-type: disc"
8016 >Allow local caching of formatted man pages in
<TT
8023 >The structure of
<TT
8027 reflect both the fact of multiple man page hierarchies and the
8028 possibility of multiple language support.
</P
8030 >Given an unformatted manual page that normally appears in
8033 ><path
>/man/
<locale
>/man
<section
></TT
8035 the directory to place formatted man pages in is
8038 >/var/cache/man/
<catpath
>/
<locale
>/cat
<section
></TT
8042 ><catpath
></TT
8047 > by removing any leading
8051 > and/or trailing
<TT
8055 pathname components. (Note that the
8059 > component may be missing.)
8070 >Man pages written to
<TT
8074 eventually be transferred to the appropriate preformatted directories
8078 > hierarchy or expired; likewise
8079 formatted man pages in the source
<TT
8083 may be expired if they are not accessed for a period of time.
</P
8085 >If preformatted manual pages come with a system on read-only
8086 media (a CD-ROM, for instance), they must be installed in the source
8093 >/usr/share/man/cat
<section
></TT
8098 > is reserved as a writable cache
8099 for formatted manual pages.
</P
8131 >Release
1.2 of the standard specified
8135 > for this hierarchy. The path has
8136 been moved under
<TT
8139 > to better reflect the
8140 dynamic nature of the formatted man pages. The directory name has
8144 > to allow for enhancing the
8145 hierarchy to include post-processed formats other than
"cat", such as
8146 PostScript, HTML, or DVI.
</P
8159 NAME=
"VARCRASHSYSTEMCRASHDUMPS"
8160 >/var/crash : System crash dumps (optional)
</A
8171 >This directory holds system crash dumps. As of the date of this
8172 release of the standard, system crash dumps were not supported under
8173 Linux but may be supported by other systems which may comply with the
8182 NAME=
"VARGAMESVARIABLEGAMEDATA"
8183 >/var/games : Variable game data (optional)
</A
8194 >Any variable data relating to games in
<TT
8198 should be placed here.
<TT
8202 the variable data previously found in
<TT
8206 static data, such as help text, level descriptions, and so on, must
8207 remain elsewhere, such as
8210 >/usr/share/games
</TT
8246 > has been given a hierarchy of
8247 its own, rather than leaving it merged in with the old
8251 > as in release
1.2. The separation
8252 allows local control of backup strategies, permissions, and disk
8253 usage, as well as allowing inter-host sharing and reducing clutter in
8261 > is the path traditionally used by BSD.
</P
8273 NAME=
"VARLIBVARIABLESTATEINFORMATION"
8274 >/var/lib : Variable state information
</A
8285 >This hierarchy holds state information pertaining to an
8286 application or the system. State information is data that programs
8287 modify while they run, and that pertains to one specific host. Users
8288 must never need to modify files in
<TT
8292 configure a package's operation.
</P
8294 >State information is generally used to preserve the condition of
8295 an application (or a group of inter-related applications) between
8296 invocations and between different instances of the same application.
8297 State information should generally remain valid after a reboot, should
8298 not be logging output, and should not be spooled data.
</P
8300 >An application (or a group of inter-related applications) must
8301 use a subdirectory of
<TT
8305 There is one required subdirectory,
8309 >, which is intended for state files
8310 that don't need a subdirectory; the other subdirectories should only
8311 be present if the application in question is included in the
8325 >/var/lib/
<name
></TT
8326 > is the location that
8327 must be used for all distribution packaging support. Different
8328 distributions may use different names, of course.
</P
8335 NAME=
"REQUIREMENTS13"
8339 >The following directories, or symbolic links to directories, are
8345 CLASS=
"INFORMALTABLE"
8371 >Miscellaneous state data
</TD
8384 NAME=
"SPECIFICOPTIONS23"
8385 >Specific Options
</A
8388 >The following directories, or symbolic links to directories, must be in
<TT
8392 corresponding subsystem is installed:
</P
8394 CLASS=
"INFORMALTABLE"
8417 >Editor backup files and state (optional)
</TD
8421 ><pkgtool
></TD
8423 >Packaging support files (optional)
</TD
8427 ><package
></TD
8429 >State data for packages and subsystems (optional)
</TD
8438 >State directory for hwclock (optional)
</TD
8447 >X display manager variable data (optional)
</TD
8460 NAME=
"VARLIBLTEDITORGTEDITORBACKUPFILESAN"
8461 >/var/lib/
<editor
> : Editor backup files and state (optional)
</A
8472 >These directories contain saved files generated by any
8473 unexpected termination of an editor (e.g.,
<B
8485 >Other editors may not require a directory for crash-recovery
8486 files, but may require a well-defined place to store other information
8487 while the editor is running. This information should be stored in a
8488 subdirectory under
<TT
8492 Emacs would place lock files in
8495 >/var/lib/emacs/lock
</TT
8498 >Future editors may require additional state information beyond
8499 crash-recovery files and lock files
— this information should
8500 also be placed under
8503 >/var/lib/
<editor
></TT
8536 >Previous Linux releases, as well as all commercial vendors, use
8540 > for vi or its clones. However,
8541 each editor uses its own format for these crash-recovery files, so a
8542 separate directory is needed for each editor.
</P
8544 >Editor-specific lock files are usually quite different from the
8545 device or resource lock files that are stored in
8549 > and, hence, are stored under
8565 NAME=
"VARLIBHWCLOCKSTATEDIRECTORYFORHWCLO"
8566 >/var/lib/hwclock : State directory for hwclock (optional)
</A
8577 >This directory contains the file
8580 >/var/lib/hwclock/adjtime
</TT
8613 >In FHS
2.1, this file was
<TT
8620 > updates it, that was obviously
8633 NAME=
"VARLIBMISCMISCELLANEOUSVARIABLEDATA"
8634 >/var/lib/misc : Miscellaneous variable data
</A
8645 >This directory contains variable data not placed in a
8649 >. An attempt should be
8650 made to use relatively unique names in this directory to avoid
8651 namespace conflicts.
8669 NAME=
"VARLOCKLOCKFILES"
8670 >/var/lock : Lock files
</A
8681 >Lock files should be stored within the
8685 > directory structure.
</P
8687 >Lock files for devices and other resources shared by multiple
8688 applications, such as the serial device lock files that were
8689 originally found in either
<TT
8691 >/usr/spool/locks
</TT
8695 >/usr/spool/uucp
</TT
8696 >, must now be stored in
8700 >. The naming convention which must be
8701 used is
"LCK.." followed by the base name of the device. For example,
8702 to lock /dev/ttyS0 the file
"LCK..ttyS0" would be created.
8713 >The format used for the contents of such lock files must be the
8714 HDB UUCP lock file format. The HDB format is to store the process
8715 identifier (PID) as a ten byte ASCII decimal number, with a trailing
8716 newline. For example, if process
1230 holds a lock file, it would
8717 contain the eleven characters: space, space, space, space, space,
8718 space, one, two, three, zero, and newline.
</P
8726 NAME=
"VARLOGLOGFILESANDDIRECTORIES"
8727 >/var/log : Log files and directories
</A
8738 >This directory contains miscellaneous log files. Most logs must
8739 be written to this directory or an appropriate subdirectory.
</P
8746 NAME=
"SPECIFICOPTIONS24"
8747 >Specific Options
</A
8750 >The following files, or symbolic links to files, must be in
8754 >, if the corresponding subsystem is
8757 CLASS=
"INFORMALTABLE"
8783 >record of last login of each user
</TD
8792 >system messages from
<B
8804 >record of all logins and logouts
</TD
8818 NAME=
"VARMAILUSERMAILBOXFILES"
8819 >/var/mail : User mailbox files (optional)
</A
8830 >The mail spool must be accessible through
8834 > and the mail spool files must take the
8837 ><username
></TT
8848 >User mailbox files in this location must be stored in the standard
8849 UNIX mailbox format.
</P
8881 >The logical location for this directory was changed from
8884 >/var/spool/mail
</TT
8885 > in order to bring FHS in-line
8886 with nearly every UNIX implementation. This change is important for
8887 inter-operability since a single
<TT
8891 often shared between multiple hosts and multiple UNIX implementations
8892 (despite NFS locking issues).
</P
8894 >It is important to note that there is no requirement to
8895 physically move the mail spool to this location. However, programs
8896 and header files must be changed to use
8912 NAME=
"VAROPTVARIABLEDATAFOROPT"
8913 >/var/opt : Variable data for /opt
</A
8924 >Variable data of the packages in
<TT
8930 >/var/opt/
<subdir
></TT
8935 > is the name of the subtree in
8939 > where the static data from an add-on
8940 software package is stored, except where superseded by another file in
8944 >. No structure is imposed on the internal
8947 >/var/opt/
<subdir
></TT
8980 >Refer to the rationale for
<TT
8995 NAME=
"VARRUNRUNTIMEVARIABLEDATA"
8996 >/var/run : Run-time variable data
</A
9007 >This directory contains system information data describing the
9008 system since it was booted. Files under this directory must be
9009 cleared (removed or truncated as appropriate) at the beginning of the
9010 boot process. Programs may have a subdirectory of
9014 >; this is encouraged for programs that
9015 use more than one run-time file.
9026 Process identifier (PID) files, which were originally placed in
9030 >, must be placed in
9034 >. The naming convention for PID files is
9037 ><program-name
>.pid
</TT
9045 >/var/run/crond.pid
</TT
9053 NAME=
"REQUIREMENTS14"
9057 >The internal format of PID files remains unchanged. The file
9058 must consist of the process identifier in ASCII-encoded decimal,
9059 followed by a newline character. For example, if
9063 > was process number
25,
9066 >/var/run/crond.pid
</TT
9067 > would contain three
9068 characters: two, five, and newline.
</P
9070 >Programs that read PID files should be somewhat flexible in what
9071 they accept; i.e., they should ignore extra whitespace, leading
9072 zeroes, absence of the trailing newline, or additional lines in the
9073 PID file. Programs that create PID files should use the simple
9074 specification located in the above paragraph.
</P
9079 > file, which stores information
9080 about who is currently using the system, is located in this
9083 >System programs that maintain transient UNIX-domain sockets must place
9084 them in this directory.
</P
9092 NAME=
"VARSPOOLAPPLICATIONSPOOLDATA"
9093 >/var/spool : Application spool data
</A
9107 > contains data which is awaiting
9108 some kind of later processing. Data in
9112 > represents work to be done in the
9113 future (by a program, user, or administrator); often data is deleted
9114 after it has been processed.
9130 NAME=
"SPECIFICOPTIONS25"
9131 >Specific Options
</A
9134 >The following directories, or symbolic links to directories,
9138 >, if the corresponding
9139 subsystem is installed:
</P
9141 CLASS=
"INFORMALTABLE"
9167 >Printer spool directory (optional)
</TD
9176 >Outgoing mail queue (optional)
</TD
9185 >News spool directory (optional)
</TD
9194 >Rwhod files (optional)
</TD
9203 >Spool directory for UUCP (optional)
</TD
9216 NAME=
"VARSPOOLLPDLINEPRINTERDAEMONPRINTQU"
9217 >/var/spool/lpd : Line-printer daemon print queues (optional)
</A
9228 >The lock file for
<B
9235 >, must be placed in
9239 >. It is suggested that the lock
9240 file for each printer be placed in the spool directory for that
9241 specific printer and named
<TT
9251 NAME=
"SPECIFICOPTIONS26"
9252 >Specific Options
</A
9255 CLASS=
"INFORMALTABLE"
9281 >Spools for a specific printer (optional)
</TD
9295 NAME=
"VARSPOOLRWHORWHODFILES"
9296 >/var/spool/rwho : Rwhod files (optional)
</A
9307 >This directory holds the
<B
9311 for other systems on the local net.
</P
9343 >Some BSD releases use
<TT
9347 data; given its historical location in
<TT
9351 on other systems and its approximate fit to the definition of
9352 `spooled' data, this location was deemed more appropriate.
</P
9365 NAME=
"VARTMPTEMPORARYFILESPRESERVEDBETWEE"
9366 >/var/tmp : Temporary files preserved between system reboots
</A
9380 > directory is made available
9381 for programs that require temporary files or directories that are
9382 preserved between system reboots. Therefore, data stored in
9386 > is more persistent than data in
9392 >Files and directories located in
<TT
9396 must not be deleted when the system is booted. Although data stored
9400 > is typically deleted in a
9401 site-specific manner, it is recommended that deletions occur at a less
9402 frequent interval than
<TT
9413 NAME=
"VARYPNETWORKINFORMATIONSERVICE"
9414 >/var/yp : Network Information Service (NIS) database files (optional)
</A
9425 >Variable data for the Network Information Service (NIS),
9426 formerly known as the Sun Yellow Pages (YP), must be placed in this
9462 > is the standard directory for NIS
9463 (YP) data and is almost exclusively used in NIS documentation and
9485 NAME=
"OPERATINGSYSTEMSPECIFICANNEX"
9487 >Chapter
6. Operating System Specific Annex
</H1
9489 >This section is for additional requirements and recommendations
9490 that only apply to a specific operating system. The material in this
9491 section should never conflict with the base standard.
</P
9501 >This is the annex for the Linux operating system.
</P
9507 NAME=
"ROOTDIRECTORY"
9508 >/ : Root directory
</A
9511 >On Linux systems, if the kernel is located in
9515 >, we recommend using the names
9523 have been used in recent Linux kernel source packages.
</P
9530 NAME=
"BINESSENTIALUSERCOMMANDBINARIES2"
9531 >/bin : Essential user command binaries (for use by all users)
</A
9534 >Linux systems which require them place these additional files into
9556 NAME=
"DEVDEVICESANDSPECIALFILES"
9557 >/dev : Devices and special files
</A
9560 >The following devices must exist under /dev.
9565 CLASS=
"VARIABLELIST"
9574 >All data written to this device is discarded. A read from this device
9575 will return an EOF condition.
</P
9584 >This device is a source of zeroed out data. All data written to this
9585 device is discarded. A read from this device will return as many bytes
9586 containing the value zero as was requested.
</P
9595 >This device is a synonym for the controlling terminal of a
9596 process. Once this device is opened, all reads and writes will behave
9597 as if the actual controlling terminal device had been opened.
</P
9634 >Previous versions of the FHS had stricter requirements for
9638 >. Other devices may also exist in
9639 /dev. Device names may exist as symbolic links to other device nodes
9640 located in /dev or subdirectories of /dev. There is no requirement
9641 concerning major/minor number values.
</P
9653 NAME=
"ETCHOSTSPECIFICSYSTEMCONFIGURATION2"
9654 >/etc : Host-specific system configuration
</A
9657 >Linux systems which require them place these additional files into
9680 >/lib64 and /lib32 :
64/
32-bit libraries (architecture dependent)
</A
9683 > The
64-bit architectures PPC64, s390x, sparc64 and AMD64 must place
9684 64-bit libraries in
<TT
9688 (or
31-bit on s390) libraries in
<TT
9693 >The
64-bit architecture IA64 must place
64-bit libraries in
9730 >This is a refinement of the general rules for
9733 >/lib
<qual
></TT
9737 >/usr/lib
<qual
></TT
9738 >. The architectures PPC64,
9739 s390x, sparc64 and AMD64 support support both
32-bit (for s390 more
9740 precise
31-bit) and
64-bit programs. Using
<TT
9744 for
32-bit binaries allows existing binaries from the
32-bit systems
9745 to work without any changes: such binaries are expected to be numerous.
9746 IA-
64 uses a different scheme, reflecting the deprecation of
32-bit
9747 binaries (and hence libraries) on that architecture.
</P
9759 NAME=
"PROCKERNELANDPROCESSINFORMATIONVIR"
9760 >/proc : Kernel and process information virtual filesystem
</A
9766 > filesystem is the de-facto
9767 standard Linux method for handling process and system information,
9771 > and other similar methods.
9772 We strongly encourage this for the storage and retrieval of process
9773 information as well as other kernel and memory information.
</P
9780 NAME=
"SBINESSENTIALSYSTEMBINARIES"
9781 >/sbin : Essential system binaries
</A
9784 >Linux systems place these additional files into
<TT
9792 STYLE=
"list-style-type: disc"
9794 >Second extended filesystem commands (optional):
</P
9799 STYLE=
"list-style-type: disc"
9807 STYLE=
"list-style-type: disc"
9815 STYLE=
"list-style-type: disc"
9823 STYLE=
"list-style-type: disc"
9831 STYLE=
"list-style-type: disc"
9839 STYLE=
"list-style-type: disc"
9849 STYLE=
"list-style-type: disc"
9851 >Boot-loader map installer (optional):
</P
9856 STYLE=
"list-style-type: disc"
9867 >Optional files for /sbin:
</P
9872 STYLE=
"list-style-type: disc"
9874 >Static binaries:
</P
9879 STYLE=
"list-style-type: disc"
9887 STYLE=
"list-style-type: disc"
9895 STYLE=
"list-style-type: disc"
9918 useful when things go wrong. The primary use of
9922 > (to repair incorrect symlinks in
9926 > after a poorly orchestrated upgrade) is no
9927 longer a major concern now that the
<B
9931 program (usually located in
<TT
9935 can act as a guiding hand in upgrading the dynamic libraries. Static
9939 > is useful in some emergency situations.
9940 Note that these need not be statically linked versions of the standard
9953 > binary is optional for
9957 > since a site may choose to run
9961 > at boot time, rather than only when
9962 upgrading the shared libraries. (It's not clear whether or not it is
9963 advantageous to run
<B
9966 > on each boot.) Even
9967 so, some people like
<B
9971 following (all too common) situation:
</P
9977 STYLE=
"list-style-type: disc"
9979 >I've just removed
<TT
9981 >/lib/
<file
></TT
9985 STYLE=
"list-style-type: disc"
9987 >I can't find out the name of the library because
<B
9991 dynamically linked, I'm using a shell that doesn't have
<B
9995 built-in, and I don't know about using
"<B
10002 STYLE=
"list-style-type: disc"
10004 >I have a static
<B
10007 >, but I don't know what to call the link.
</P
10012 STYLE=
"list-style-type: disc"
10019 STYLE=
"list-style-type: disc"
10027 STYLE=
"list-style-type: disc"
10036 >So as to cope with the fact that some keyboards come up with
10037 such a high repeat rate as to be unusable,
10041 > may be installed in
10045 > on some systems.
</P
10047 >Since the default action in the kernel for the Ctrl-Alt-Del key
10048 combination is an instant hard reboot, it is generally advisable to
10049 disable the behavior before mounting the root filesystem in read-write
10053 > suites are able to disable
10054 Ctrl-Alt-Del, but others may require the
10058 > program, which may be installed in
10062 > on those systems.
</P
10071 NAME=
"USRINCLUDEHEADERFILESINCLUDEDBYCP"
10072 >/usr/include : Header files included by C programs
</A
10075 >These symbolic links are required if a C or C++ compiler is
10076 installed and only for systems not based on glibc.
</P
10085 > /usr/include/asm -
> /usr/src/linux/include/asm-
<arch
>
10086 /usr/include/linux -
> /usr/src/linux/include/linux
</PRE
10096 NAME=
"USRSRCSOURCECODE2"
10097 >/usr/src : Source code
</A
10100 >For systems based on glibc, there are no specific guidelines for
10101 this directory. For systems based on Linux libc revisions prior to
10102 glibc, the following guidelines and rationale apply:
</P
10104 >The only source code that should be placed in a specific
10105 location is the Linux kernel source code. It is located in
10108 >/usr/src/linux
</TT
10111 >If a C or C++ compiler is installed, but the complete Linux
10112 kernel source code is not installed, then the include files from the
10113 kernel source code must be located in these directories:
</P
10122 > /usr/src/linux/include/asm-
<arch
>
10123 /usr/src/linux/include/linux
</PRE
10131 > is the name of the system
10147 SRC=
"/usr/share/sgml/docbook/stylesheet/dsssl/modular/images/note.gif"
10166 >/usr/src/linux
</TT
10168 may be a symbolic link to a kernel source code tree.
</P
10204 >It is important that the kernel include files be located in
10207 >/usr/src/linux
</TT
10212 > so there are no problems when system
10213 administrators upgrade their kernel version for the first time.
</P
10224 NAME=
"VARSPOOLCRONCRONANDATJOBS"
10225 >/var/spool/cron : cron and at jobs
</A
10228 >This directory contains the variable data for the
10245 >Chapter
7. Appendix
</H1
10251 NAME=
"THEFHSMAILINGLIST"
10252 >The FHS mailing list
</A
10255 >The FHS mailing list is located at
10256 <freestandards-fhs-discuss@lists.sourceforge.net
>. You can
10257 subscribe to the mailing list at this page
<A
10258 HREF=
"http://sourceforge.net/projects/freestandards/"
10260 >http://sourceforge.net/projects/freestandards/
</A
10263 >Thanks to Network Operations at the University of California at
10264 San Diego who allowed us to use their excellent mailing list
10267 >As noted in the introduction, please do not send mail to the mailing
10268 list without first contacting the FHS editor or a listed contributor.
</P
10275 NAME=
"BACKGROUNDOFTHEFHS"
10276 >Background of the FHS
</A
10279 >The process of developing a standard filesystem hierarchy began
10280 in August
1993 with an effort to restructure the file and directory
10281 structure of Linux. The FSSTND, a filesystem hierarchy standard
10282 specific to the Linux operating system, was released on February
14,
10283 1994. Subsequent revisions were released on October
9,
1994 and March
10286 >In early
1995, the goal of developing a more comprehensive
10287 version of FSSTND to address not only Linux, but other UNIX-like
10288 systems was adopted with the help of members of the BSD development
10289 community. As a result, a concerted effort was made to focus on
10290 issues that were general to UNIX-like systems. In recognition of this
10291 widening of scope, the name of the standard was changed to Filesystem
10292 Hierarchy Standard or FHS for short.
</P
10294 >Volunteers who have contributed extensively to this standard are
10295 listed at the end of this document. This standard represents a
10296 consensus view of those and other contributors.
</P
10303 NAME=
"GENERALGUIDELINES"
10304 >General Guidelines
</A
10307 >Here are some of the guidelines that have been used in the development
10308 of this standard:
</P
10313 STYLE=
"list-style-type: disc"
10315 >Solve technical problems while limiting transitional difficulties.
</P
10318 STYLE=
"list-style-type: disc"
10320 >Make the specification reasonably stable.
</P
10323 STYLE=
"list-style-type: disc"
10325 >Gain the approval of distributors, developers, and other decision-makers
10326 in relevant development groups and encourage their participation.
</P
10329 STYLE=
"list-style-type: disc"
10331 >Provide a standard that is attractive to the implementors of different
10332 UNIX-like systems.
</P
10345 >This document specifies a standard filesystem hierarchy for FHS
10346 filesystems by specifying the location of files and directories, and
10347 the contents of some system files.
</P
10349 >This standard has been designed to be used by system
10350 integrators, package developers, and system administrators in the
10351 construction and maintenance of FHS compliant filesystems. It is
10352 primarily intended to be a reference and is not a tutorial on how to
10353 manage a conforming filesystem hierarchy.
</P
10355 >The FHS grew out of earlier work on FSSTND, a filesystem
10356 organization standard for the Linux operating system. It builds on
10357 FSSTND to address interoperability issues not just in the Linux
10358 community but in a wider arena including
4.4BSD-based operating
10359 systems. It incorporates lessons learned in the BSD world and
10360 elsewhere about multi-architecture support and the demands of
10361 heterogeneous networking.
</P
10363 >Although this standard is more comprehensive than previous
10364 attempts at filesystem hierarchy standardization, periodic updates may
10365 become necessary as requirements change in relation to emerging
10366 technology. It is also possible that better solutions to the problems
10367 addressed here will be discovered so that our solutions will no longer
10368 be the best possible solutions. Supplementary drafts may be released
10369 in addition to periodic updates to this document. However, a specific
10370 goal is backwards compatibility from one release of this document to
10373 >Comments related to this standard are welcome. Any comments or
10374 suggestions for changes may be directed to the FHS editor (Daniel
10375 Quinlan
<quinlan@pathname.com
>) or the FHS mailing list.
10376 Typographical or grammatical comments should be directed to the FHS
10379 >Before sending mail to the mailing list it is requested that you
10380 first contact the FHS editor in order to avoid excessive re-discussion
10383 >Questions about how to interpret items in this document may
10384 occasionally arise. If you have need for a clarification, please
10385 contact the FHS editor. Since this standard represents a consensus of
10386 many participants, it is important to make certain that any
10387 interpretation also represents their collective opinion. For this
10388 reason it may not be possible to provide an immediate response unless
10389 the inquiry has been the subject of previous discussion.
</P
10396 NAME=
"ACKNOWLEDGMENTS"
10397 >Acknowledgments
</A
10400 >The developers of the FHS wish to thank the developers, system
10401 administrators, and users whose input was essential to this standard.
10402 We wish to thank each of the contributors who helped to write,
10403 compile, and compose this standard.
</P
10405 >The FHS Group also wishes to thank those Linux developers who
10406 supported the FSSTND, the predecessor to this standard. If they
10407 hadn't demonstrated that the FSSTND was beneficial, the FHS could
10408 never have evolved.
</P
10415 NAME=
"CONTRIBUTORS"
10419 CLASS=
"INFORMALTABLE"
10437 >Brandon S. Allbery
</TD
10440 ><bsa@kf8nh.wariat.org
></TD
10448 ><bostic@cs.berkeley.edu
></TD
10456 ><drew@colorado.edu
></TD
10464 ><faith@cs.unc.edu
></TD
10469 >Stephen Harris
</TD
10472 ><sweh@spuddy.mew.co.uk
></TD
10480 ><ijackson@cus.cam.ac.uk
></TD
10485 >Andreas Jaeger
</TD
10488 ><aj@suse.de
></TD
10493 >John A. Martin
</TD
10496 ><jmartin@acm.org
></TD
10501 >Ian McCloghrie
</TD
10504 ><ian@ucsd.edu
></TD
10512 ><metcalf@lcs.mit.edu
></TD
10520 ><imurdock@debian.org
></TD
10525 >David C. Niemi
</TD
10528 ><niemidc@clark.net
></TD
10533 >Daniel Quinlan
</TD
10536 ><quinlan@pathname.com
></TD
10541 >Eric S. Raymond
</TD
10544 ><esr@thyrsus.com
></TD
10552 ><rusty@rustcorp.com.au
></TD
10560 ><mike@sojurn.lns.pa.us
></TD
10565 >David H. Silber
</TD
10568 ><dhs@glowworm.firefly.com
></TD
10573 >Thomas Sippel-Dau
</TD
10576 ><t.sippel-dau@ic.ac.uk
></TD
10584 ><tytso@athena.mit.edu
></TD
10589 >Stephen Tweedie
</TD
10592 ><sct@dcs.ed.ac.uk
></TD
10597 >Fred N. van Kempen
</TD
10600 ><waltje@infomagic.com
></TD
10608 ><bwarken@mayn.de
></TD
10613 >Christopher Yeoh
</TD
10616 ><cyeoh@samba.org
></TD
10651 >Command binaries that are not essential enough to place into
10655 > must be placed in
10659 >, instead. Items that are required only
10660 by non-root users (the X Window System,
<TT
10664 etc.) are generally not essential enough to be placed into the root
10686 > Programs necessary to arrange for the boot loader to be
10687 able to boot a file must be placed in
<TT
10691 Configuration files for boot loaders must be placed in
10697 >The GRUB bootloader reads its configurations file before
10698 booting, so that must be placed in
<TT
10701 >. However, it is a
10702 configuration file, so should be in
<TT
10705 >. The answer here is a
10706 symbolic link such as
<TT
10708 >/etc/grub/menu.lst
</TT
10711 >/boot/menu.lst
</TT
10733 >On some i386 machines, it may be necessary for
10737 > to be located on a separate partition
10738 located completely below cylinder
1024 of the boot device due to
10739 hardware constraints.
</P
10741 >Certain MIPS systems require a
<TT
10745 partition that is a mounted MS-DOS filesystem or whatever other
10746 filesystem type is accessible for the firmware. This may result in
10747 restrictions with respect to usable filenames within
10751 > (only for affected systems).
</P
10772 >The setup of command scripts invoked at boot time may resemble System
10773 V, BSD or other models. Further specification in this area may be
10774 added to a future version of this standard.
</P
10795 >It is recommended that files be stored in subdirectories of
10799 > rather than directly in
10824 >Systems that use the shadow password suite will have additional
10825 configuration files in
<TT
10832 > and others) and programs in
10864 >On some Linux systems, this may be a symbolic link to
10868 >, in which case this exception is not
10893 > holds the configuration files for
10897 >. These are most of the files previously
10900 >/usr/lib/X11/xdm
</TT
10901 >. Some local variable
10930 >Different people prefer to place user accounts in a variety of places.
10931 This section describes only a suggested placement for user home
10932 directories; nevertheless we recommend that all FHS-compliant
10933 distributions use this as the default location for home
10936 >On small systems, each user's directory is typically one of the
10937 many subdirectories of
<TT
10946 >/home/torvalds
</TT
10950 >/home/operator
</TT
10951 >, etc. On large systems
10952 (especially when the
<TT
10955 > directories are shared
10956 amongst many hosts using NFS) it is useful to subdivide user home
10957 directories. Subdivision may be accomplished by using subdirectories
10968 >/home/students
</TT
10990 >If you want to find out a user's home directory, you should use the
10994 > library function rather than relying
10998 > because user information may be
10999 stored remotely using systems such as NIS.
</P
11020 >It is recommended that apart from autosave and lock files programs
11021 should refrain from creating non dot files or directories in a home
11022 directory without user intervention.
</P
11043 >Shared libraries that are only necessary for binaries in
11047 > (such as any X Window binaries) must not be
11051 >. Only the shared libraries required to
11052 run binaries in
<TT
11059 > may be here. In particular, the library
11063 > may also be placed in
11067 > if it is not required by anything in
11095 >The usual placement of this binary is
<TT
11119 >This is commonly used for
64-bit or
32-bit support on
11120 systems which support multiple binary formats, but require libraries
11121 of the same name. In this case,
<TT
11128 > might be the library directories, and
11132 > a symlink to one of them.
</P
11155 >/lib
<qual
>/cpp
</TT
11156 > is still permitted: this
11157 allows the case where
<TT
11163 >/lib
<qual
></TT
11164 > are the same (one is a symbolic
11165 link to the other).
</P
11186 >A compliant implementation with two CDROM drives might have
11198 > a symlink to either of these.
</P
11219 >If the home directory of the root account is not
11220 stored on the root partition it will be necessary to make certain it
11221 will default to
<TT
11227 >We recommend against using the root account for tasks that can be
11228 performed as an unprivileged user, and that it be used solely for system
11229 administration. For this reason, we recommend that subdirectories for
11230 mail and other applications not appear in the root account's home
11231 directory, and that mail for administration roles such as root,
11232 postmaster, and webmaster be forwarded to an appropriate user.
</P
11256 > binaries were kept in
11281 >Deciding what things go into
11288 > directories is simple: if a normal (not a
11289 system administrator) user will ever run it directly, then it must be
11290 placed in one of the
<SPAN
11296 > directories. Ordinary
11297 users should not have to place any of the
<TT
11301 directories in their path.
</P
11303 >For example, files such as
<B
11307 only occasionally use must still be placed in
11315 is absolutely necessary for root (network recovery and diagnosis) is
11316 often used by users and must live in
<TT
11322 >We recommend that users have read and execute permission for
11326 > except, perhaps, certain
11327 setuid and setgid programs. The division between
11335 created for security reasons or to prevent users from seeing the
11336 operating system, but to provide a good partition between binaries
11337 that everyone uses and ones that are primarily used for administration
11338 tasks. There is no inherent security advantage in making
11342 > off-limits for users.
</P
11363 >This is particularly important as these areas will often contain both
11364 files initially installed by the distributor, and those added by the
11386 >Examples of such configuration files include
11419 architecture-independent application-specific static files and
11420 subdirectories must be placed in
<TT
11444 > For example, the
<TT
11448 Perl
5 modules and libraries.
</P
11469 >Some executable commands such as
<B
11476 > have also been traditionally placed in
11484 internal binary and must be placed in a binary directory; users access
11492 binaries are now placed by default in
<TT
11496 Additionally, systems using a
<SPAN
11503 mail transfer agent must provide
11506 >/usr/sbin/sendmail
</B
11507 > as a symbolic link to the
11508 appropriate executable.
</P
11529 >Host-specific data for the X Window System must not be stored in
11533 >. Host-specific configuration files
11541 > must be stored in
11545 >. This includes configuration data such
11549 > even if it is only made a
11550 symbolic link to a more global configuration file (probably in
11553 >/usr/X11R6/lib/X11
</TT
11575 >The case where
<TT
11580 >/usr/lib
<qual
></TT
11582 same (one is a symbolic link to the other) these files and the
11583 per-application subdirectories will exist.
</P
11604 >Software placed in
<TT
11611 > may be overwritten by system upgrades
11612 (though we recommend that distributions do not overwrite data in
11616 > under these circumstances). For this
11617 reason, local software must not be placed outside of
11621 > without good reason.
</P
11644 >/usr/local/man
</TT
11645 > may be deprecated in future FHS
11646 releases, so if all else is equal, making that one a symlink seems
11668 >Locally installed system administration programs should be placed in
11671 >/usr/local/sbin
</TT
11695 >Much of this data originally lived in
<TT
11740 >Obviously, there are no manual pages in
<TT
11744 because they are not required at boot time nor are they required in
11745 emergencies. Really.
</P
11766 >For example, if
<TT
11768 >/usr/local/man
</TT
11770 has no manual pages in section
4 (Devices), then
11773 >/usr/local/man/man4
</TT
11774 > may be omitted.
</P
11795 > A major exception to this rule is the
11796 United Kingdom, which is `GB' in the ISO
3166, but `UK' for most email
11818 >Some such files include:
11843 > ipfw.samp.filters
</TT
11847 > ipfw.samp.scripts
</TT
11856 >mail.tildehelp
</TT
11866 > mdoc.template
</TT
11927 >Generally, source should not be built within this hierarchy.
</P
11948 >This standard does not currently incorporate the TeX Directory
11949 Structure (a document that describes the layout TeX files and
11950 directories), but it may be useful reading. It is located at
11952 HREF=
"ftp://ctan.tug.org/tex/"
11954 >ftp://ctan.tug.org/tex/
</A
11978 >/usr/share/man/man1/ls
.1</TT
11982 >/var/cache/man/cat1/ls
.1</TT
11986 >/usr/X11R6/man/
<locale
>/man3/XtClass
.3x
</TT
11990 >/var/cache/man/X11R6/
<locale
>/cat3/XtClass
.3x
</TT
12012 >An important difference between this version of this standard and
12013 previous ones is that applications are now required to use a
12014 subdirectory of
<TT
12040 >This hierarchy should contain files stored in
12044 > in current BSD releases. These include
12047 >locate.database
</TT
12052 >, and the kernel symbol database(s).
</P
12073 >Then, anything wishing to use
<TT
12077 can read the lock file and act accordingly (all locks in
12081 > should be world-readable).
</P
12105 > may be a symbolic link to
12106 another directory.
</P
12130 > should be unwritable for unprivileged
12131 users (root or users running daemons); it is a major security problem
12132 if any user can write in this directory.
</P
12153 >UUCP lock files must be placed in
<TT
12157 the above section on
<TT
12181 >NIS should not be confused with Sun NIS+, which uses a different