• /var. Изменяемый подкаталог, в котором команды хранят информацию во время исполнения. Системный журнал, отслеживание активности пользователей, кэш, а также другие файлы, которые создаются системными командами, расположены здесь. Вы увидите здесь каталог /var/tmp, но он не очищается при запуске системы.
2.19.1. Другие корневые подкаталоги
В корневом каталоге есть несколько интересных подкаталогов.
• /boot. Содержит файлы загрузчика ядра. Эти файлы имеют отношение только к самой первой стадии запуска системы Linux. В этом каталоге вы не найдете сведений о том, как система Linux запускает свои службы (загляните в главу 5 за подробностями).
• /media. Основная точка подключения для таких съемных устройств, как флеш-накопители. Присутствует во многих версиях системы.
• /opt. Здесь может находиться дополнительное ПО сторонних разработчиков. Многие версии системы не используют каталог /opt.
2.19.2. Каталог /usr
На первый взгляд каталог /usr может показаться довольно простым, однако быстрый просмотр подкаталогов /usr/bin и /usr/lib выявляет множество подробностей.
Каталог /usr предназначен для хранения большей части команд и данных пространства пользователя. Помимо подкаталогов /usr/bin, /usr/sbin и /usr/lib, каталог /usr содержит следующее.
• /include. Хранит заголовочные файлы, используемые компилятором C.
• /info. Содержит руководства GNU в формате info (см. раздел 2.13).
• /local. Здесь администраторы могут устанавливать собственное программное обеспечение. Структура этого каталога должна выглядеть подобно структуре каталогов / и /usr.
• /man. Содержит страницы руководства.
• /share. Содержит файлы, которые должны работать в других типах систем Unix без потери функциональности. В прошлом объединенные в сеть машины могли совместно использовать данный каталог, однако полноценный каталог /share становится редким, поскольку современные диски не содержат ошибок при распределении пространства. Поддержание каталога /share зачастую только добавляет проблем. В любом случае каталоги /man, /info и некоторые другие подкаталоги часто присутствуют здесь.
2.19.3. Местоположение ядра
В системе Linux ядро обычно размещается в каталогах /vmlinuz или /boot/vmlinuz.
После того как загрузчик запустит ядро и приведет его в действие, основной файл ядра больше не используется работающей системой. Тем не менее вы обнаружите множество модулей, которые ядро может по запросу загружать и выгружать во время нормального функционирования системы. Такие
2.20. Запуск команд с правами пользователя superuser
Прежде чем продвигаться дальше, вам следует узнать о том, как запускать команды в качестве пользователя superuser. Вероятно, вы уже знаете о том, что можно запустить команду su и указать пароль для входа в корневую оболочку. Такой вариант сработает, но у него есть некоторые неудобства:
• вы не отслеживаете команды, которые изменяют систему;
• вы не отслеживаете пользователей, которые выполнили команды, изменяющие систему;
• у вас нет доступа к обычной среде оболочки;
• вы должны вводить пароль.
2.20.1. Команда sudo
В большинстве дистрибутивов применяется пакет sudo, который позволяет администраторам запускать команды в корневом режиме, зайдя в систему со своей учетной записью. Например, из главы 7 вы узнаете об использовании команды vipw для редактирования файла /etc/passwd. Это можно выполнить так:
$ sudo vipw
При таком запуске команда sudo отмечает данное действие с помощью сервиса syslog в устройстве local2. Подробности о системных журналах изложены в главе 7.
2.20.2. Файл /etc/sudoers
Система не позволит
User_Alias ADMINS = user1, user2
ADMINS ALL = NOPASSWD: ALL
root ALL=(ALL) ALL
В первой строке для двух пользователей определен псевдоним ADMINS, а во второй строке им предоставляются права доступа. Фрагмент ALL = NOPASSWD: ALL означает, что пользователи с псевдонимом ADMINS могут использовать пакет sudo для выполнения команд в корневом режиме. Второе слово ALL значит «любая команда». Первое слово ALL обозначает «любой хост».
ПРИМЕЧАНИЕ