LDP/LDP/guide/docbook/Linux-Filesystem-Hierarchy/sbin.xml

108 lines
4.2 KiB
XML

<sect1 id="sbin">
<title>/sbin</title>
<para>
Linux discriminates between 'normal' executables and those used for
system maintenance and/or administrative tasks. The latter reside either here
or - the less important ones - in /usr/sbin. Locally installed system
administration programs should be placed into /usr/local/sbin.
</para>
<para>
Programs executed after /usr is known to be mounted (when there are no problems)
are generally placed into /usr/sbin. This directory contains binaries
that are essential to the working of the system. These include system
administration as well as maintenance and hardware configuration programs.
You may find lilo, fdisk, init, ifconfig, etc.... here.
</para>
<para>
Another directory that contains system binaries is /usr/sbin. This
directory contains other binaries of use to the system administrator.
This is where you will find the network daemons for your system along
with other binaries that (generally) only the system administrator has access to,
but which are not required for system maintenance and repair. Normally,
these directories are never part of normal user's $PATHs, only of roots
(PATH is an environment variable that controls the sequence of locations
that the system will attempt to look in for commands).
</para>
<para>
The FSSTND states that:
</para>
<para>
<screen>
/sbin should contain only binaries essential for booting, restoring,
recovering, and/or repairing the system in addition to the binaries
in /bin.
</screen>
</para>
<para>
A particular eccentricity of the Linux filesystem hierarchy
is that originally /sbin binaries were kept in /etc.
</para>
<para>
<screen>
Deciding what things go into "sbin" directories is simple: if a normal
(not a system administrator) user will ever run it directly, then it
must be placed in one of the "bin" directories. Ordinary users should
not have to place any of the sbin directories in their path.
For example, files such as chfn which users only occasionally use must
still be placed in /usr/bin. ping, although it is absolutely necessary
for root (network recovery and diagnosis) is often used by users and
must live in /bin for that reason.
We recommend that users have read and execute permission for everything
in /sbin except, perhaps, certain setuid and setgid programs. The
division between /bin and /sbin was not created for security reasons or
to prevent users from seeing the operating system, but to provide a
good partition between binaries that everyone uses and ones that are
primarily used for administration tasks. There is no inherent security
advantage in making /sbin off-limits for users.
</screen>
</para>
<para>
FSSTND compliance requires that the following commands, or symbolic links to commands,
are required in /sbin.
</para>
<para>
<screen>
shutdown Command to bring the system down.
</screen>
</para>
<para>
The following files, or symbolic links to files, must be in /sbin
if the corresponding subsystem is installed:
</para>
<para>
<screen>
fastboot Reboot the system without checking the disks (optional)
fasthalt Stop the system without checking the disks (optional)
fdisk Partition table manipulator (optional)
fsck File system check and repair utility (optional)
fsck.* File system check and repair utility for a specific filesystem (optional)
getty The getty program (optional)
halt Command to stop the system (optional)
ifconfig Configure a network interface (optional)
init Initial process (optional)
mkfs Command to build a filesystem (optional)
mkfs.* Command to build a specific filesystem (optional)
mkswap Command to set up a swap area (optional)
reboot Command to reboot the system (optional)
route IP routing table utility (optional)
swapon Enable paging and swapping (optional)
swapoff Disable paging and swapping (optional)
update Daemon to periodically flush filesystem buffers (optional)
</screen>
</para>
</sect1>