Единственная
команда, которая обязательно должна
присутствовать в /sbin, это команда shutdown -
команда остановки системы.
Следующие
команды или символические ссылки
должны быть размещены в /sbin, если только
соответствующие пакеты установлены в
системе:
fastboot |
Команда перезагрузки
системы без проверки дисков |
fasthalt |
Команда остановки
системы без проверки дисков |
fdisk |
Программа переразбиения
диска |
fsck |
Утилита для
проверки и восстановления файловых
систем |
fsck.* |
Утилиты для
проверки и восстановления отдельных
типов файловых систем |
getty |
Программа getty |
halt |
Команда остановки
системы |
ifconfig |
Утилита конфигурирования
сетевых интерфейсов |
init |
Первоначальный
процесс |
mkfs |
Команда создания
файловой системы |
mkfs.* |
Команда создания
файловой системы конкретного типа |
mkswap |
Команда создания
файла или раздела подкачки (swap-раздела) |
reboot |
Команда перезагрузки
системы |
route |
Утилита определения
таблицы статической IP-маршрутизации |
swapon |
Утилита подключения
механизма свопинга |
swapoff |
Утилита отключения
свопинга |
update |
Демон периодической
очистки системных буферов |
|
Принять
решение о том, какие программы
разместить в каталогах "sbin", довольно
просто: если обычный пользователь (не
системный администратор) когда-либо запускает
программу, она должна размещаться в одном
из каталогов "bin". Обычные пользователи
не должны указывать каталоги sbin в списке путей,
просматриваемых по умолчанию (в своей
переменной PATH).
Такие,
к примеру, файлы, как chfn, которые пользователи
запускают очень редко и только в особых
случаях, должны, тем не менее, быть расположены
в /usr/bin. Команда ping,
хотя она абсолютно необходима суперпользователю
для решения задач сетевой диагностики
и восстановления сети, часто используется
и рядовыми пользователями, и по этой причине
должна размещаться в /bin.
Авторы
стандарта рекомендуют предоставить
всем пользователям право на чтение
и выполнение для всех файлов, расположенных
в /sbin, кроме, может
быть тех программ, для которых установлены
биты setuid и setgid. Разделение каталогов /bin и /sbin делается
не из соображений безопасности и не для
того, чтобы лишить пользователей возможности
видеть системные утилиты. Целью такого
деления является установление явного
различия между исполняемыми файлами,
которые используются всеми, и теми утилитами,
которые в основном используются для решения
административных задач. С точки зрения
безопасности нет никаких преимуществ
в том, чтобы сделать /sbin недоступным
для пользователей.
Каталог
/temp
Каталог /tmp предназначен
для хранения временных файлов, создаваемых
в процессе работы различных программ.
При этом программы не должны предполагать,
что какой-либо файл в каталоге /tmp сохранится
при следующем запуске программы.
Хотя
данные, сохраняемые в каталоге /tmp, могут
удаляться по правилам, специфичным для
каждого хоста, рекомендуется удалять
все файлы и каталоги в /tmp при каждой
загрузке системы. FHS вводит последнюю
рекомендацию на основе исторических
прецедентов и общей практики, но не считает
ее обязательным требованием, поскольку
вопросы системного администрирования
не являются предметом этого стандарта.
Каталоговая
структура /usr
Каталог /usr -
это второй по важности раздел файловой
системы. /usr содержит разделяемые
данные, предназначенные только для чтения.
Это означает, что /usr может быть
доступен с различных FHS-совместимых хостов
и права записи в него не должно быть. Любая
информация, которая является специфичной
для конкретного хоста или может изменяться
со временем, должна записываться в другое
место.
Следующие
каталоги или символические ссылки
на каталоги должны присутствовать в /usr.
bin |
Это основное место
для размещения исполняемых файлов
системы.
/usr/bin/X11 должен
быть символической ссылкой на /usr/X11R6/bin если последний существует.
Следующие файлы
или символические ссылки на файлы
должны быть размещены в/usr/bin, если только соответствующие
пакеты установлены в системе:
- perl - Язык Perl (The Practical Extraction
and Report Language)
- python - Интерпретирующий
язык Python
- tclsh - Оболочка интерпретатора
Tcl
- wish - Оболочка Tcl/Tk
- expect - Программа для организации
интерактивного диалога
Поскольку интерпретаторы
скриптов оболочки (вызываемые командой
вида #!<path> в первой строке скрипта)
не могут полностью полагаться на эту
строку, имеет смысл стандартизовать их
расположение. Размещение интерпретаторов
оболочек Борна и C-shell уже зафиксировано
в каталоге /bin, но интерпретаторы
языков Perl, Python и Tcl часто размещаются в
самых разных местах. В каталоге /usr/bin можно
оставить только символические ссылки
на действительное местоположение интерпретаторов. |
include |
Это место, где
должны быть размещены все системные
подключаемые файлы общего пользования
для языка программирования C, в
частности файлы заголовков (header
files), включаемые в программы на языке
C.
Символическая
ссылка /usr/include/X11 должна указывать на/usr/X11R6/include/X11,
если только последний существует. |
lib |
Каталог /usr/lib содержит
объектные файлы, библиотеки и внутренние
исполняемые файлы, которые не могут вызываться
непосредственно пользователями из командной
строки или скриптов оболочки. (Различные
архитектурно-зависимые
статические файлы и
подкаталоги, специфичные
для отдельных приложений,
должны размещаться
в/usr/share. )
Приложения могут
использовать отдельные подкаталоги
в /usr/lib.
Если приложение использует подкаталог,
все архитектурно-зависимые данные, используемые
только этим приложением, должны размещаться
внутри этого подкаталога. (Например,
подкаталогperl5 для
модулей и библиотек Perl 5.)
По историческим
причинам /usr/lib/sendmail должен быть символической
ссылкой на /usr/sbin/sendmail, если последний существует.
(Некоторые исполняемые
команды, такие как makewhatis и sendmail тоже
по традиции размещаются
в/usr/lib. makewhatis -
это внутреннй исполняемый
файл и должен размещаться
в подкаталоге для бинарных
файлов; пользователям
предоставляется доступ
только кcatman.
Исполняемые файлы последних
версий sendmail теперь
по умолчанию располагаются
в /usr/sbin.
Кроме того, системы,
использующие sendmail-совместимые
агенты передачи почты,
должны делать /usr/sbin/sendmailсимволической
ссылкой к соответствующему
исполняемому файлу.)
Если /lib/X11 существует, /usr/lib/X11 должен быть символической
ссылкой на/lib/X11, либо на тот каталог,
на который ссылается /lib/X11. (Специфичные
для каждого хоста данные
для системы X Window не
должны размещаться
в/usr/lib/X11.
Специфичные для хоста
конфигурационные файлы,
такие как Xconfigили XF86Config должны
храниться в /etc/X11.
Это требование относится
и к таким фонфигурационным
данным, как system.twmrc,
даже если это только
символическая ссылка
на более общий конфигурационный
файл, вероятно в /usr/X11R6/lib/X11). |
local |
Каталоговая структура
для локально устанавливаемого программного
обеспечения (пустая непосредственно
после инсталляции системы) |
sbin |
Этот каталог
содержит системные команды, используемые
исключительно системным администратором,
не являющиеся жизненно-важными для
системы. Программы для выполнения
задач системного администрирования,
которые необходимы для восстановления
системы, монтирования /usr, или для других самых
важных системных задач, должны размещаться
в /sbin.
(Локально устанавливаемые
программы для системного
администрирования
должны размещаться
в /usr/local/sbin.) |
share |
Архитектурно-независимые
данные |
X11R6 |
Эта каталоговая
структура зарезервирована для
системы X Window System, version 11 release 6, и относящихся
к ней файлов.
Для некоторого
упрощения и сохранения совместимости
XFree86 с системой X Window для других типов
операционных систем должны быть созданы
следующие символические ссылки,
если только каталог /usr/X11R6 существует:
/usr/bin/X11 -> /usr/X11R6/bin
/usr/lib/X11 -> /usr/X11R6/lib/X11
/usr/include/X11 -> /usr/X11R6/include/X11
В общем случае
программное обеспечение не должно
использовать перечисленные символические
ссылки при инсталляции или в
целях управления. Они предназначены
только для пользователей. Трудности
связаны с версиями выпусков системы
X Window -- в переходный период невозможно
узнать, какая версия X11 используется.
Специфичные для
каждого хоста данные в каталоге /usr/X11R6/lib/X11 должны
использоваться только в демонстрационных
целях. Приложения, которым необходима
информация о текущей конфигурации хоста,
должны искать ее в каталоге /etc/X11, куда могут быть сделаны
ссылки из каталога /usr/X11R6/lib. (Примерами
таких конфигурационных
файлов могут служить Xconfig, XF86Config илиsystem.twmrc.) |
games |
Игры и обучающие
программы |
lib<qual> |
Библиотеки
для альтернативных форматов |
src |
Исходные коды
программного обеспечения. |
|
Программные
пакеты не должны создавать подкаталоги
непосредственно в каталоге /usr.
Исключение сделано для системы X Window в
силу сложившихся традиций и широко распространенной
практики.
Могут
создаваться следующие символические
ссылки на каталоги.
/usr/spool ->
/var/spool
/usr/tmp ->
/var/tmp
/usr/spool/locks
-> /var/lock
Эта возможность
обусловлена необходимостью сохранить
совместимость со старыми системами
до тех пор, пока все реализации не
начнут использовать каталоги, размещенные
непосредственно в /var. Если система
уже не требует наличия указанных ссылок,
они могут быть удалены.
· /usr/local :
Каталог для локального
ПО
Каталоговая
структура /usr/local используется
системным администратором в тех случаях,
когда он устанавливает программное обеспечение,
которое будет использоваться локально
в рамках данного хоста. Этот каталог не
должен перезаписываться при обновлениях
системного программного обеспечения.
Он может использоваться для программ
и данных, не попавших в каталог /usr,
доступ к которым разрешен с других хостов.
Локально
устанавливаемое программное обеспечение
должно располагаться не в /usr, а в /usr/local,если только
его установка производится не в целях
замены или обновления ПО в /usr. (Программное
обеспечение, расположенное
в / или /usr может
быть перезаписано при
обновлениях системы (хотя
мы рекомендуем, чтобы
дистрибутивы не перезаписывали
данные в /etc в
таких обстоятельствах).
По этой причине локально
устанавливаемое программное
обеспечение не должно
размещаться за пределами
каталога /usr/local без
достаточных на то оснований. )
Следующие
каталоги или символические ссылки
на каталоги должны иметься в /usr/local :
- bin - Локальные
исполняемые файлы
- games - Локально
установленные игровые приложения
- include - Локальные
заголовочные файлы для C
- lib - Локальные
библиотеки
- man - Локальные
онлайновые руководства
- sbin - Локальные
системные исполняемые файлы
- share - Архитектурно-независимые
структура каталогов для локального ПО
- src - Локально
установленные исходные коды.
Никаких
каталогов, кроме перечисленных
выше, не должно быть в /usr/local после первой
установки FHS-совместимой системы.
/usr/share
: Архитектурно-независимые
данные
Структура
каталогов /usr/share предназначена
для всех файлов, которые предназначены
только для чтения и не зависят от архитектуры.
Так, например, компьютеры на платформах
i386, Alpha и PPC могут поддерживать один общий
каталог /usr/share, который монтируется
на остальных компьютерах. Заметим, однако,
что/usr/share обычно рассчитан
на одну версию ОС и не предназначен для
того, чтобы быть разделяемым различными
операционными системами или различными
версиями одной и той же ОС. Примерами
файлов, которые размещаются в этом каталоге,
могут служить файлы документации (man, doc) или
базы данных(dict, terminfo, zoneinfo). Любая
программа или пакет, который содержит
или требует данных, не подлежащих модификации,
должны хранить эти данные в каталоге /usr/share (или /usr/local/share, если пакет
установлен локально). Рекомендуется использовать
для этих целей подкаталоги каталога/usr/share.