Соответственно, для каждого признака можно ввести свои понятия:
• разделяемые данные – те, которые могут использовать несколько хостов одновременно, т. е. данные, доступные для других хостов через сеть;
• неразделяемые данные – как правило, специфичные для каждого хоста, недоступные через сеть для других хостов;
• статические данные – включают системные файлы, библиотеки, документацию и другое, что не изменяется без вмешательства администратора;
• динамические (переменные) данные – все то, что может изменяться пользователем.
Эти признаки взаимно ортогональны, в табл. 5.1 приведены некоторые каталоги, соответствующие этим признакам.
Иерархия каталогов Linux
Корневой (Root) каталог
Каталог /bin
Каталог /boot
Каталог /dev
Каталог /etc
• разделяемые данные – те, которые могут использовать несколько хостов одновременно, т. е. данные, доступные для других хостов через сеть;
• неразделяемые данные – как правило, специфичные для каждого хоста, недоступные через сеть для других хостов;
• статические данные – включают системные файлы, библиотеки, документацию и другое, что не изменяется без вмешательства администратора;
• динамические (переменные) данные – все то, что может изменяться пользователем.
Эти признаки взаимно ортогональны, в табл. 5.1 приведены некоторые каталоги, соответствующие этим признакам.
Таблица 5.1. Признаки данных и каталоги
Как видно из таблицы, каталог /usr – статический разделяемый, а каталог /var/lock – динамический неразделяемый. По этим признакам можно распределить все каталоги в файловой системе, о чем и будет упоминаться в соответствующих разделах. Однако такое четкое распределение не всегда наблюдается в современных UNIX-системах. Как правило, эта проблема возникает из-за поддержки совместимости со старым программным обеспечением. Каталоги, не удовлетворяющие четкому разделению, будут упомянуты особо.
Иерархия каталогов Linux
В табл. 5.2 приведена иерархия каталогов первого уровня.
Таблица 5.2. Каталоги первого уровня операционной системы Linux
Рассмотрим подробнее иерархию каталогов.
Корневой (Root) каталог
Точка монтирования всей файловой системы. Играет исключительно важную роль в процессе «жизнедеятельности» операционной системы. Для загрузки системы необходимо, чтобы в корневом разделе (корневой раздел в Linux – это аналог диска С: для DOS/Windows – только на него возможно установить операционную систему. И корневой раздел является точкой монтирования корневого каталога) находились утилиты и конфигурационные файлы, необходимые для монтирования других файловых систем. Кроме того, в корневой файловой системе должны присутствовать утилиты, необходимые для создания, восстановления или ремонта файловых систем, а также для административного восстановления (backup) системы с ленты, CD-ROM, дискет и тому подобных носителей. Каталоги /usr, /opt, /var спроектированы так, что они могут размещаться на файловых системах, отличных от корневой. В дистрибутиве Slackware в корневом каталоге по умолчанию находится ядро операционной системы (что на больших винчестерах иногда вызывало определенные проблемы), в дистрибутиве Red Hat ядро операционной системы перенесено в каталог /boot.
Имеется несколько причин, по которым корневую файловую систему рекомендуется делать минимально возможного размера:
• это позволяет монтировать файловую систему с очень маленьких носителей информации (например дискет);
• корневая файловая система не может быть разделяемой, потому что содержит много системно-зависимых конфигурационных файлов. Создание малой по объему корневой файловой системы позволяет сохранить на серверах больше места для разделяемых ресурсов;
• у маленького по объему корневого каталога меньше вероятность пострадать при крахе системы.
Имеется несколько причин, по которым корневую файловую систему рекомендуется делать минимально возможного размера:
• это позволяет монтировать файловую систему с очень маленьких носителей информации (например дискет);
• корневая файловая система не может быть разделяемой, потому что содержит много системно-зависимых конфигурационных файлов. Создание малой по объему корневой файловой системы позволяет сохранить на серверах больше места для разделяемых ресурсов;
• у маленького по объему корневого каталога меньше вероятность пострадать при крахе системы.
Каталог /bin
Содержит важные исполняемые файлы, которые используются всеми (в том числе и администратором системы) пользователями. Кроме того, в каталоге /bin должны находиться исполняемые файлы, необходимые для функционирования системы в однопользовательском режиме (single mode). Он также может содержать исполняемые файлы, которые напрямую используются в скриптах. Каталог /bin не должен содержать подкаталогов. Исполняемые файлы, от которых напрямую не зависит функционирование системы, рекомендуется размещать во вторичной иерархии – в каталоге /usr/bin.
Таким образом, в каталоге /bin должны находиться следующие файлы или символические ссылки на команды:
• cat – утилита, выдающая на стандартное устройство вывода объединенные файлы;
• chgrp – утилита, позволяющая изменить группу владельца файла;
• chmod – утилита, изменяющая права доступа к файлу;
• chown – утилита, изменяющая владельца и группу файла;
• ср – утилита, позволяющая копировать файлы и каталоги;
• date – утилита, позволяющая вывести или установить системные дату и время;
• dd – утилита, позволяющая конвертировать и копировать файл;
• df – утилита, показывающая использование дискового пространства;
• dmesg – утилита, выводящая или управляющая буфером сообщения ядра;
• echo – утилита, отображающая строку текста;
• false – утилита возвращает значение "Не успешно" (unsuccessfully);
• hostname – утилита, показывающая или устанавливающая имя хоста;
• kill – утилита, посылающая управляющие сигналы процессам;
• In – утилита, создающая линки (связи, ссылки) между файлами;
• login – утилита, начинающая сессию в системе;
• Is – утилита, показывающая содержимое каталога;
• mkdir – утилита, позволяющая создавать каталог;
• mknod – утилита, создающая блочные или символьные специальные файлы;
• more – утилита, позволяющая просматривать текстовые файлы постранично;
• mount – утилита, монтирующая файловую систему;
• mv – утилита, перемещающая или переименовывающая файлы;
• ps – утилита, показывающая статус процессов;
• pwd – утилита, выводящая имя текущего рабочего каталога;
• rm – утилита, удаляющая файлы или каталоги;
• rmdir – утилита, удаляющая пустой каталог;
• sed – редактор;
• setserial – программа настройки последовательных портов;
• sh – командная оболочка Bourne;
• sty – утилита, изменяющая и выводящая установки терминальной линии;
• su – утилита, изменяющая пользовательский идентификатор (user ID);
• sync – утилита, сбрасывающая (flush) буферы файловой системы;
• true – утилита возвращает значение «Успешно» (successfully);
• umount – утилита, размонтирующая файловые системы;
• uname – утилита, выводящая системную информацию.
Если в системе не используется утилита sh, то sh должна быть ссылкой на используемую системой командную оболочку.
Если установлены соответствующие пакеты, в каталоге /bin могут присутствовать следующие программы или символические ссылки:
• csh – командная оболочка С shell;
• ed – редактор;
• tar – архивная утилита;
• cpio – архивная утилита;
• gzip – утилита архивации файлов GNU;
• gunzip – утилита разархивации файлов GNU;
• zcat – утилита разархивации файлов GNU;
• netstat – утилита сетевой статистики;
• ping – ICMP-сетевая утилита.
Таким образом, в каталоге /bin должны находиться следующие файлы или символические ссылки на команды:
• cat – утилита, выдающая на стандартное устройство вывода объединенные файлы;
• chgrp – утилита, позволяющая изменить группу владельца файла;
• chmod – утилита, изменяющая права доступа к файлу;
• chown – утилита, изменяющая владельца и группу файла;
• ср – утилита, позволяющая копировать файлы и каталоги;
• date – утилита, позволяющая вывести или установить системные дату и время;
• dd – утилита, позволяющая конвертировать и копировать файл;
• df – утилита, показывающая использование дискового пространства;
• dmesg – утилита, выводящая или управляющая буфером сообщения ядра;
• echo – утилита, отображающая строку текста;
• false – утилита возвращает значение "Не успешно" (unsuccessfully);
• hostname – утилита, показывающая или устанавливающая имя хоста;
• kill – утилита, посылающая управляющие сигналы процессам;
• In – утилита, создающая линки (связи, ссылки) между файлами;
• login – утилита, начинающая сессию в системе;
• Is – утилита, показывающая содержимое каталога;
• mkdir – утилита, позволяющая создавать каталог;
• mknod – утилита, создающая блочные или символьные специальные файлы;
• more – утилита, позволяющая просматривать текстовые файлы постранично;
• mount – утилита, монтирующая файловую систему;
• mv – утилита, перемещающая или переименовывающая файлы;
• ps – утилита, показывающая статус процессов;
• pwd – утилита, выводящая имя текущего рабочего каталога;
• rm – утилита, удаляющая файлы или каталоги;
• rmdir – утилита, удаляющая пустой каталог;
• sed – редактор;
• setserial – программа настройки последовательных портов;
• sh – командная оболочка Bourne;
• sty – утилита, изменяющая и выводящая установки терминальной линии;
• su – утилита, изменяющая пользовательский идентификатор (user ID);
• sync – утилита, сбрасывающая (flush) буферы файловой системы;
• true – утилита возвращает значение «Успешно» (successfully);
• umount – утилита, размонтирующая файловые системы;
• uname – утилита, выводящая системную информацию.
Если в системе не используется утилита sh, то sh должна быть ссылкой на используемую системой командную оболочку.
Если установлены соответствующие пакеты, в каталоге /bin могут присутствовать следующие программы или символические ссылки:
• csh – командная оболочка С shell;
• ed – редактор;
• tar – архивная утилита;
• cpio – архивная утилита;
• gzip – утилита архивации файлов GNU;
• gunzip – утилита разархивации файлов GNU;
• zcat – утилита разархивации файлов GNU;
• netstat – утилита сетевой статистики;
• ping – ICMP-сетевая утилита.
Каталог /boot
Содержит все, что требуется для процесса загрузки, исключая файлы конфигурации. В каталоге /boot находятся данные, используемые ядром до того, как оно начинает исполнять программы пользовательского режима (user-mode). В этом же каталоге может находиться сохраненный сектор master boot и другие специфичные данные. Конфигурационные файлы загрузчика находятся в каталоге /etc. Ядро операционной системы, как было сказано выше, должно находиться или в корневом каталоге (дистрибутив Slackware), или в каталоге /boot (дистрибутив Red Hat). В некоторых случаях приходится создавать отдельный раздел /boot, находящийся до 1024 цилиндра. Как правило, это зависит от версии загрузчика и от BIOS компьютера. Таким образом, в каталоге /boot версии Linux Red Hat 7.1 должны находиться следующие файлы или символические ссылки на команды:
boot.0300
boot.b
chain.b
kernel.h®
kernel.h-2.4.3
map
message
module-info@
module-info-2.4.2–2
os2_d.b
System.map@
System.map-2.4.2-2
vmlinux-2.4.2–2*
vmlinuz®
vmlinuz-2.4.2–2.
boot.0300
boot.b
chain.b
kernel.h®
kernel.h-2.4.3
map
message
module-info@
module-info-2.4.2–2
os2_d.b
System.map@
System.map-2.4.2-2
vmlinux-2.4.2–2*
vmlinuz®
vmlinuz-2.4.2–2.
Каталог /dev
Содержит файлы устройств или специальные файлы. Создание в каталоге /dev файлов устройств осуществляется с помощью предназначенной для этого утилиты makedev, находящейся в нем же. Также в этом каталоге может находиться утилита makedev.local, предназначенная для создания локальных устройств. Все устройства и специальные файлы описываются в документе Linux Allocated Devices, который поставляется вместе с исходным кодом ядра (см. также соответствующую справочную документацию).
Каталог /etc
Каталог содержит конфигурационные файлы и каталоги, которые специфичны для данной системы. В этом каталоге не должно находиться никаких исполняемых модулей. В каталоге /etc обязательно должен присутствовать каталог /opt, содержащий конфигурационные файлы для программ, установленных в каталоге /opt.
• /cron.d – конфигурация сгоп;
• /cron.daily – ежедневно выполняемые операции сгоп и anacron;
• /cron.hourly – ежечасно выполняемые операции сгоп и anacron;
• /cron.monthly – ежемесячно выполняемые операции сгоп и anacron;
• /cron.weekly – еженедельно выполняемые операции сгоп и anacron;
• /default – в этом каталоге находятся файлы, используемые пакетом shadow при создании новой учетной записи пользователя в системе;
• /gnome – в этом каталоге содержится разнообразная конфигурационная информация, касающаяся графической системы GNOME и ее приложений. Информацию о конфигурации GNOME и ее приложений смотрите в руководстве пользователя GNOME;
• /kde – в этом каталоге содержится разнообразная конфигурационная информация, касающаяся графической системы KDE и ее приложений. Информацию о конфигурации KDE и ее приложений смотрите в руководстве пользователя KDE;
• /locale – настройки локали;
• /opt – в этом каталоге хранятся конфигурационные файлы для пакетов, устанавливаемых в каталоге /opt. Для каждого пакета создается (точно так же, как и в /opt) свой каталог, с точно таким же именем, как и в /opt, в котором содержатся конфигурационные файлы для этого пакета;
• /ррр – в этом каталоге находятся конфигурационные файлы и скрипты, необходимые для функционирования демона pppd. В частности, здесь находятся скрипты, поднимающие и опускающие РРР-интерфейс с поддержкой IPv4 и IPv6, скрипты аутентификации и конфигурационные файлы;
• /rc.d – каталог скриптов, используемых при старте системы;
• samba – этом каталоге находятся конфигурационные файлы для сервера Samba. Список файлов, которые обычно содержатся в этом каталоге:
– lmhosts – содержит список хостов и соответствующих им адресов;
– smbpasswd – содержит пароли пользователей сервера Samba;
– smbusers – файл, предназначенный для хранения конфигурационных файлов пользователей, которым разрешен доступ к ресурсам Samba;
– smb.conf – главный конфигурационный файл сервера;
• /sgml – содержит конфигурации для SGML и XML;
• /skel – содержит конфигурационные файлы для вновь создаваемых пользователей. В этом каталоге хранятся конфигурационные файлы пользователя, которые при создании нового пользователя в системе копируются в его домашний каталог. Это очень удобно с точки зрения системного администратора – один раз настроив окружение пользователя, мы для вновь созданных пользователей получаем уже готовое окружение. Мы можем определить язык, раскладку клавиатуры, палитру, редактор по умолчанию, графическую оболочку и многое-многое другое. Не следует думать, что этим мы ограничиваем пользователя – наоборот – он получает настроенное рабочее место. Если ему что-то не подходит – он может внести необходимые ему изменения в свои конфигурационные файлы. Таким образом, мы получаем с одной стороны – единообразие, а с другой – возможности для индивидуализации рабочего места.
Обычно в этом каталоге находятся следующие файлы:
.bashrc
.bash_profile
.bash_logout
.inputrc
.less
.xinitrc
.Xdefaults
Однако ничто не мешает удалить или, наоборот, добавить файлы в этот каталог;
• /sysconfig – каталог, содержащий файлы системной конфигурации;
• /X11 – содержит конфигурационные файлы для X Window System;
Кроме перечисленных каталогов в каталоге /etc должны находиться следующие файлы:
• aliases – этот файл определяет для программы доставки почтовых сообщений, куда посылать письма, приходящие на адрес псевдопользователей. Большей частью они перенаправляются пользователю root;
• anacrontab – конфигурационный файл для программы anacron. В этом файле задаются периодичность выполнения команд (ежедневно, еженедельно, ежемесячно) и каталоги, в которых содержатся исполняемые модули (как правило – скрипты).
Программа anacron использует те же каталоги с исполняемыми модулями, что и сгоп. Однако программа anacron применяется в системах, которые не предназначены для постоянного функционирования (24 часа в сутки). Программа просматривает список задач и запускает текущие в списке или просроченные;
• at.allow – с помощью этого файла задается список пользователей, которым разрешено пользоваться командой at;
• at.deny – с помощью этого файла задается список пользователей, которым запрещено пользоваться командой at;
• bashrc – конфигурационный файл, определяющий поведение bash. Как правило, не требует ручного вмешательства;
• cron.allow – с помощью этого файла задается список пользователей, которым разрешено пользоваться демоном сгоп;
• cron.deny – с помощью этого файла задается список пользователей, которым запрещено пользоваться демоном сгоп;
• crontab – конфигурационный файл для программы сгоп. В этом файле задаются периодичность выполнения команд (ежечасно, ежедневно, еженедельно, ежемесячно) и каталоги, в которых содержатся исполняемые модули (как правило – скрипты);
Программа сгоп рассчитана на постоянно функционирующие системы. Поэтому, если во время, когда компьютер был отключен, необходимо было выполнить какую-то операцию – программа сгоп не поможет. Для выполнения просроченных операций необходимо использовать программу anacron;
• cron.allow – программа сгоп может разрешать или запрещать конкретным пользователем свое использование. Для разрешения конкретным пользователям использования программы сгоп необходимо вписать имена соответствующих пользователей в файл cron.allow;
• cron.deny – конфигурационный файл для программы сгоп, с помощью которого можно запретить использование программы сгоп конкретным пользователям или всем пользователям кроме тех, которые записаны в файле cron.allow;
• dir_colors – этот файл определяет, каким цветом будет выводить на экран файлы команда is. Для разных типов файлов можно определить свой цвет;
• exports – файл, содержащий управление доступом к файловой системе NFS;
• fstab – файл, содержащий таблицу, в которой определены монтируемые устройства (файлы драйверов), соответствующие им точки монтирования, тип файловой системы и параметры монтирования. Пример файла fstab приведен ниже:
• ftpusers – конфигурационный файл FTP-демона, содержащий список пользователей FTP с их правами доступа;
• gateways – файл, содержащий список шлюзов (gateways) для демона маршрутизации routed;
• gettydefs – файл, содержащий терминальные установки, используемые getty;
• group – в этом файле содержатся пользователи и группы, членами которых они являются. Файл состоит из строк, в каждой строке – 4 поля:
– имя пользователя;
– пароль;
– GUID – числовой идентификатор группы;
– список имен групп, к которым принадлежит пользователь.
Пример файла group приведен ниже:
root:х:0:root
bin:х:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
wheel:x:10:root
mail:x:12:mail
news:x:13:news
nobody:x:99:
users:x:100:
slocate:x:21:
floppy:х:19:
utmp:х:22:
mysql:х:27:
alst:х:500:
• gshadow – содержимое этого файла напоминает содержимое файла group.
root:::root
bin:::root,bin,daemon
daemon:::root,bin,daemon
sys:::root,bin, adm
adm:::root,adm,daemon
disk:::root
lp:::daemon,lp
mem:::
kmem:::
wheel:::root
utmp:x::
mailnull:x::
mysql:x::
alst:!::
• host.conf – конфигурационный файл, который определяет порядок разрешения символического имени хоста в IP-адресе. Обычно содержимое этого файла имеет вид:
order hosts,bind
• hostname – в этом файле содержится (обычно) имя хоста. Текущее имя хоста можно посмотреть с помощью команды hostname;
• hosts – содержимое этого файла используется для определения пары IP-адрес – символическое имя хоста. Очень рекомендуется, чтобы в этом файле была следующая запись:
127.0.0.1localhost.localdomain localhost
• hosts.deny – файл, определяющий, каким хостам запрещено подключаться к системе;
• hosts.equiv – файл, содержащий список доверенных хостов для rlogin, rsh, rep;
• hosts.lpd – файл, содержащий список доверенных хостов для lpd;
• inetd.conf – конфигурационный файл для демона inetd;
• inittab – конфигурационный файл для процесса init. Этот файл описывает, как процесс init должен настроить операционную систему в соответствующем уровне исполнения. Более подробную информацию см. в гл. 6.
• issue – в этом файле содержится сообщение, выдаваемое системой до приглашения "login:".
Для дистрибутива Red Hat Linux 7.2 этот файл содержит следующее сообщение:
Red Hat Linux release 7.2 (Enigma)
Kernel \r on an \m
• ld.so.conf – файл, содержащий список каталогов для поиска разделяемых библиотек;
• lilo.conf – конфигурационный файл для загрузчика lilo. Более подробную информацию об этом конфигурационном файле вы можете прочитать в справочных страницах man.
prompt
timeout=50
default=DOS
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message
lba32
image=/boot/vmlinuz-2.4.7-10 label=linux
initrd=/boot/initrd-2.4.7-10.img
read-only
root=/dev/hda7
other=/dev/hda2
optional
label=DOS
• localtime – бинарный файл, определяющий временную зону компьютера, правила перехода на летнее/зимнее время и другую информацию, связанную с местной временной зоной. Обычно берется один из файлов, находящихся в каталоге /usr/share/zoneinfo/, и копируется в каталог /etc с именем localtime. В том случае, если для вас не существует готового файла localtime, его можно создать с помощью утилиты zic;
• man.config – конфигурационный файл, содержащий настройки для справочных страниц man;
• modules.conf – файл, используемый операционной системой для загрузки по требованию программ некоторых модулей ядра. Обычно используется для модулей звуковых карт и плат TV-тюнеров, или в том случае, если в системе установлено несколько сетевых плат;
• motd – сообщение, выдаваемое системой после входа пользователя в систему;
• mtab – файл, содержащий динамическую информацию о файловых системах;
• mtools.conf – конфигурационный файл для mtools;
• networks – файл, содержащий статическую информацию о сетевых именах;
• passwd – файл содержит информацию обо всех пользователях системы, в том числе и псевдопользователях, которые необходимы для правильного функционирования некоторых сервисов. Типичный файл passwd имеет следующий вид:
root:х:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nolog
news:x:9:13:news:/var/spool/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:х:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/dev/null
rpm:x:37:37::/var/lib/rpm:/bin/bash
xfs:x:43:43:X Font Server:/etc/X11/fs:/bin/false
ntp:x:38:38::/etc/ntp:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/bin/false
gdm:x:42:42::/var/gdm:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/bin/false
ident:x:98:98:pident user:/:/sbin/nologin
radvd:x:75:75:radvd user:/:/bin/false
apache:x:4 8:4 8:Apache:/var/www:/bin/false
squid:x:23:23::/var/spool/squid:/dev/nul1
pcap:x:77:77::/var/arpwatch:/bin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
vasya:x:500:500::/home/vasya:/bin/bash
Этот файл содержит строки, где каждая определяет одного пользователя. В строке есть семь полей, отделенных друг от друга двоеточием. Рассмотрим более подробно эти поля:
– имя пользователя;
– пароль пользователя; в современных системах не используется (стоит символ х). Для хранения пароля используется файл shadow;
– UID – числовой идентификатор пользователя;
– GID – числовой идентификатор группы пользователя;
– поле описания пользователя (телефон, адрес и т. п.). Обычно не используется;
– домашний каталог пользователя;
– командный интерпретатор, используемый пользователем.
Никто, кроме пользователя root, не имеет доступа на запись в файл passwd. Таким образом, если вам необходимо запретить пользователю регистрироваться в системе, можно назначить ему командный интерпретатор /sbin/nologin или /dev/null. Другой способ – отредактировать пароль (смотри shadow).
• printcap – база совместимых принтеров для lpd;
• profile – общесистемный конфигурационный файл для оболочки sh. Все настройки, добавленные в этот файл, отражаются на переменные окружения вашей системы;
• protocols – файл, содержащий список IP-протоколов;
• resolv.conf – конфигурационный файл Resolver;
• грс – файл, содержащий RPC-список протоколов;
• securetty – управление доступом к консоли для администратора (root);
• sendmail.cf – конфигурационный файл программы sendmail – программы передачи почтовых сообщений;
• services – файл, содержащий имена портов для сетевых сервисов. Описание сервиса представляет собой строку, которая содержит четыре поля:
– имя сервиса;
– номер порта/протокол;
– псевдонимы;
– комментарии.
Пример записи в файле services:
• shadow – файл паролей, по структуре напоминающий passwd. Содержит полный список пользователей системы. Интересны первые два поля – имя пользователя и хэш пароля. Алгоритм создания хэша пароля работает таким образом, что никогда первым символом хэша не может быть символ *. Таким образом, для того, чтобы запретить пользователю вход в систему, достаточно первым символом пароля поставить символ *.
Пример файла shadow:
• shells – файл, содержащий пути для установленных командных оболочек;
• sysctl.conf – файл конфигурации ядра операционной системы. Позволяет производить настройку различных свойств ядра – сетевых и не только.
Пример файла sysctl.conf:
# Disables packet forwarding
net.ipv4.ip_forward = 0
# Enables source route verification
net.ipv4.conf.default.rp_filter = 1
# Disables the magic-sysrq key
kernel.sysrq = 0
• syslog.conf – конфигурационный файл для демона syslogd.
• /init.d – каталог содержит управляющие скрипты для загружаемых при старте операционной системы сервисов;
• /rcO.d – каталог содержит скрипты, отвечающие за запуск и остановку сервисов при переходе на нулевой уровень выполнения;
• /rcl.d – каталог содержит скрипты, отвечающие за запуск и остановку сервисов при переходе на первый уровень выполнения;
• /rc2.d – каталог содержит скрипты, отвечающие за запуск и остановку сервисов при переходе на второй уровень выполнения;
• /rc3.d – каталог содержит скрипты, отвечающие за запуск и остановку сервисов при переходе на третий уровень выполнения;
• /rc4.d – каталог содержит скрипты, отвечающие за запуск и остановку сервисов при переходе на четвертый уровень выполнения;
• /rc5.d – каталог содержит скрипты, отвечающие за запуск и остановку сервисов при переходе на пятый уровень выполнения;
• /rc6.d – каталог содержит скрипты, отвечающие за запуск и остановку сервисов при переходе на шестой уровень выполнения;
• гс – файл предназначен для запуска и останова сервисов при переходе в указанный уровень выполнения;
• rc.local – файл предназначен для команд, добавляемых администратором для запуска в процессе начальной загрузки;
• rc.sysinit – файл предназначен для выполнения начальных действий, необходимых для корректного функционирования операционной системы;
/etc/rc.d/init.d – управляющие скрипты для сервисов
Каталог содержит управляющие скрипты для сервисов, которые выполняются (или могут выполняться) при старте системы или при переходе с одного уровня выполнения на другой.
Если соответствующие сервисы установлены, в этом каталоге находятся следующие файлы:
anacron
apmd
arpwatch
atd
autofs
crond
functions
gpm
halt
httpd
identd
ipchains
iptables
isdn
kdcrotate
keytable
killall
kudzu
lpd
netfs
network
nfs
nfslock
nscd
portmap
pppoe
random
awdevices
rhnsd
rstatd
rusersd
rwalld
rwhod
send mail
single
snmpd
sshd
syslog
tux
windows
xfs
xinetd
ypbind
ppasswdd
ypserv
/etc/rc.d/rc0.d … rc6.d – каталоги для соответствующего уровня выполнения
Эти каталоги содержат стартовые и стоповые скрипты сервисов, используемых операционной системой при переходе в нужный уровень выполнения. К примеру, каталог /rc3.d конкретного компьютера может содержать следующие файлы:
ЗамечаниеВ каталоге /etc также должны присутствовать следующие каталоги:
Везде, где далее упоминается "… должны присутствовать в каталоге /etc", надо учитывать, что соответствующие файлы и каталоги появляются в /etc только в том случае, если соответствующие программы установлены в системе.
• /cron.d – конфигурация сгоп;
• /cron.daily – ежедневно выполняемые операции сгоп и anacron;
• /cron.hourly – ежечасно выполняемые операции сгоп и anacron;
• /cron.monthly – ежемесячно выполняемые операции сгоп и anacron;
• /cron.weekly – еженедельно выполняемые операции сгоп и anacron;
• /default – в этом каталоге находятся файлы, используемые пакетом shadow при создании новой учетной записи пользователя в системе;
• /gnome – в этом каталоге содержится разнообразная конфигурационная информация, касающаяся графической системы GNOME и ее приложений. Информацию о конфигурации GNOME и ее приложений смотрите в руководстве пользователя GNOME;
• /kde – в этом каталоге содержится разнообразная конфигурационная информация, касающаяся графической системы KDE и ее приложений. Информацию о конфигурации KDE и ее приложений смотрите в руководстве пользователя KDE;
• /locale – настройки локали;
• /opt – в этом каталоге хранятся конфигурационные файлы для пакетов, устанавливаемых в каталоге /opt. Для каждого пакета создается (точно так же, как и в /opt) свой каталог, с точно таким же именем, как и в /opt, в котором содержатся конфигурационные файлы для этого пакета;
• /ррр – в этом каталоге находятся конфигурационные файлы и скрипты, необходимые для функционирования демона pppd. В частности, здесь находятся скрипты, поднимающие и опускающие РРР-интерфейс с поддержкой IPv4 и IPv6, скрипты аутентификации и конфигурационные файлы;
• /rc.d – каталог скриптов, используемых при старте системы;
• samba – этом каталоге находятся конфигурационные файлы для сервера Samba. Список файлов, которые обычно содержатся в этом каталоге:
– lmhosts – содержит список хостов и соответствующих им адресов;
– smbpasswd – содержит пароли пользователей сервера Samba;
– smbusers – файл, предназначенный для хранения конфигурационных файлов пользователей, которым разрешен доступ к ресурсам Samba;
– smb.conf – главный конфигурационный файл сервера;
• /sgml – содержит конфигурации для SGML и XML;
• /skel – содержит конфигурационные файлы для вновь создаваемых пользователей. В этом каталоге хранятся конфигурационные файлы пользователя, которые при создании нового пользователя в системе копируются в его домашний каталог. Это очень удобно с точки зрения системного администратора – один раз настроив окружение пользователя, мы для вновь созданных пользователей получаем уже готовое окружение. Мы можем определить язык, раскладку клавиатуры, палитру, редактор по умолчанию, графическую оболочку и многое-многое другое. Не следует думать, что этим мы ограничиваем пользователя – наоборот – он получает настроенное рабочее место. Если ему что-то не подходит – он может внести необходимые ему изменения в свои конфигурационные файлы. Таким образом, мы получаем с одной стороны – единообразие, а с другой – возможности для индивидуализации рабочего места.
Обычно в этом каталоге находятся следующие файлы:
.bashrc
.bash_profile
.bash_logout
.inputrc
.less
.xinitrc
.Xdefaults
Однако ничто не мешает удалить или, наоборот, добавить файлы в этот каталог;
• /sysconfig – каталог, содержащий файлы системной конфигурации;
• /X11 – содержит конфигурационные файлы для X Window System;
Кроме перечисленных каталогов в каталоге /etc должны находиться следующие файлы:
• aliases – этот файл определяет для программы доставки почтовых сообщений, куда посылать письма, приходящие на адрес псевдопользователей. Большей частью они перенаправляются пользователю root;
• anacrontab – конфигурационный файл для программы anacron. В этом файле задаются периодичность выполнения команд (ежедневно, еженедельно, ежемесячно) и каталоги, в которых содержатся исполняемые модули (как правило – скрипты).
Программа anacron использует те же каталоги с исполняемыми модулями, что и сгоп. Однако программа anacron применяется в системах, которые не предназначены для постоянного функционирования (24 часа в сутки). Программа просматривает список задач и запускает текущие в списке или просроченные;
• at.allow – с помощью этого файла задается список пользователей, которым разрешено пользоваться командой at;
• at.deny – с помощью этого файла задается список пользователей, которым запрещено пользоваться командой at;
• bashrc – конфигурационный файл, определяющий поведение bash. Как правило, не требует ручного вмешательства;
• cron.allow – с помощью этого файла задается список пользователей, которым разрешено пользоваться демоном сгоп;
• cron.deny – с помощью этого файла задается список пользователей, которым запрещено пользоваться демоном сгоп;
• crontab – конфигурационный файл для программы сгоп. В этом файле задаются периодичность выполнения команд (ежечасно, ежедневно, еженедельно, ежемесячно) и каталоги, в которых содержатся исполняемые модули (как правило – скрипты);
Программа сгоп рассчитана на постоянно функционирующие системы. Поэтому, если во время, когда компьютер был отключен, необходимо было выполнить какую-то операцию – программа сгоп не поможет. Для выполнения просроченных операций необходимо использовать программу anacron;
• cron.allow – программа сгоп может разрешать или запрещать конкретным пользователем свое использование. Для разрешения конкретным пользователям использования программы сгоп необходимо вписать имена соответствующих пользователей в файл cron.allow;
• cron.deny – конфигурационный файл для программы сгоп, с помощью которого можно запретить использование программы сгоп конкретным пользователям или всем пользователям кроме тех, которые записаны в файле cron.allow;
• dir_colors – этот файл определяет, каким цветом будет выводить на экран файлы команда is. Для разных типов файлов можно определить свой цвет;
• exports – файл, содержащий управление доступом к файловой системе NFS;
• fstab – файл, содержащий таблицу, в которой определены монтируемые устройства (файлы драйверов), соответствующие им точки монтирования, тип файловой системы и параметры монтирования. Пример файла fstab приведен ниже:
• ftpusers – конфигурационный файл FTP-демона, содержащий список пользователей FTP с их правами доступа;
• gateways – файл, содержащий список шлюзов (gateways) для демона маршрутизации routed;
• gettydefs – файл, содержащий терминальные установки, используемые getty;
• group – в этом файле содержатся пользователи и группы, членами которых они являются. Файл состоит из строк, в каждой строке – 4 поля:
– имя пользователя;
– пароль;
– GUID – числовой идентификатор группы;
– список имен групп, к которым принадлежит пользователь.
Пример файла group приведен ниже:
root:х:0:root
bin:х:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
wheel:x:10:root
mail:x:12:mail
news:x:13:news
nobody:x:99:
users:x:100:
slocate:x:21:
floppy:х:19:
utmp:х:22:
mysql:х:27:
alst:х:500:
• gshadow – содержимое этого файла напоминает содержимое файла group.
root:::root
bin:::root,bin,daemon
daemon:::root,bin,daemon
sys:::root,bin, adm
adm:::root,adm,daemon
disk:::root
lp:::daemon,lp
mem:::
kmem:::
wheel:::root
utmp:x::
mailnull:x::
mysql:x::
alst:!::
• host.conf – конфигурационный файл, который определяет порядок разрешения символического имени хоста в IP-адресе. Обычно содержимое этого файла имеет вид:
order hosts,bind
• hostname – в этом файле содержится (обычно) имя хоста. Текущее имя хоста можно посмотреть с помощью команды hostname;
• hosts – содержимое этого файла используется для определения пары IP-адрес – символическое имя хоста. Очень рекомендуется, чтобы в этом файле была следующая запись:
127.0.0.1localhost.localdomain localhost
Замечание• hosts.allow – файл, определяющий, каким хостам разрешено подключаться к системе;
Если она отсутствует – возникнут проблемы, связанные с сетью (в частности, возможно зависание программы sendmail).
• hosts.deny – файл, определяющий, каким хостам запрещено подключаться к системе;
• hosts.equiv – файл, содержащий список доверенных хостов для rlogin, rsh, rep;
• hosts.lpd – файл, содержащий список доверенных хостов для lpd;
• inetd.conf – конфигурационный файл для демона inetd;
• inittab – конфигурационный файл для процесса init. Этот файл описывает, как процесс init должен настроить операционную систему в соответствующем уровне исполнения. Более подробную информацию см. в гл. 6.
• issue – в этом файле содержится сообщение, выдаваемое системой до приглашения "login:".
Для дистрибутива Red Hat Linux 7.2 этот файл содержит следующее сообщение:
Red Hat Linux release 7.2 (Enigma)
Kernel \r on an \m
• ld.so.conf – файл, содержащий список каталогов для поиска разделяемых библиотек;
• lilo.conf – конфигурационный файл для загрузчика lilo. Более подробную информацию об этом конфигурационном файле вы можете прочитать в справочных страницах man.
Внимание!Пример файла lilo.conf приведен ниже:
После внесения изменений в файл lilo.conf необходимо выполнить команду lilo. В противном случае внесенные в конфигурационный файл изменения не воспримутся загрузчиком.
prompt
timeout=50
default=DOS
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message
lba32
image=/boot/vmlinuz-2.4.7-10 label=linux
initrd=/boot/initrd-2.4.7-10.img
read-only
root=/dev/hda7
other=/dev/hda2
optional
label=DOS
• localtime – бинарный файл, определяющий временную зону компьютера, правила перехода на летнее/зимнее время и другую информацию, связанную с местной временной зоной. Обычно берется один из файлов, находящихся в каталоге /usr/share/zoneinfo/, и копируется в каталог /etc с именем localtime. В том случае, если для вас не существует готового файла localtime, его можно создать с помощью утилиты zic;
• man.config – конфигурационный файл, содержащий настройки для справочных страниц man;
• modules.conf – файл, используемый операционной системой для загрузки по требованию программ некоторых модулей ядра. Обычно используется для модулей звуковых карт и плат TV-тюнеров, или в том случае, если в системе установлено несколько сетевых плат;
• motd – сообщение, выдаваемое системой после входа пользователя в систему;
• mtab – файл, содержащий динамическую информацию о файловых системах;
• mtools.conf – конфигурационный файл для mtools;
• networks – файл, содержащий статическую информацию о сетевых именах;
• passwd – файл содержит информацию обо всех пользователях системы, в том числе и псевдопользователях, которые необходимы для правильного функционирования некоторых сервисов. Типичный файл passwd имеет следующий вид:
root:х:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nolog
news:x:9:13:news:/var/spool/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:х:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/dev/null
rpm:x:37:37::/var/lib/rpm:/bin/bash
xfs:x:43:43:X Font Server:/etc/X11/fs:/bin/false
ntp:x:38:38::/etc/ntp:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/bin/false
gdm:x:42:42::/var/gdm:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/bin/false
ident:x:98:98:pident user:/:/sbin/nologin
radvd:x:75:75:radvd user:/:/bin/false
apache:x:4 8:4 8:Apache:/var/www:/bin/false
squid:x:23:23::/var/spool/squid:/dev/nul1
pcap:x:77:77::/var/arpwatch:/bin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
vasya:x:500:500::/home/vasya:/bin/bash
Этот файл содержит строки, где каждая определяет одного пользователя. В строке есть семь полей, отделенных друг от друга двоеточием. Рассмотрим более подробно эти поля:
– имя пользователя;
– пароль пользователя; в современных системах не используется (стоит символ х). Для хранения пароля используется файл shadow;
– UID – числовой идентификатор пользователя;
– GID – числовой идентификатор группы пользователя;
– поле описания пользователя (телефон, адрес и т. п.). Обычно не используется;
– домашний каталог пользователя;
– командный интерпретатор, используемый пользователем.
Никто, кроме пользователя root, не имеет доступа на запись в файл passwd. Таким образом, если вам необходимо запретить пользователю регистрироваться в системе, можно назначить ему командный интерпретатор /sbin/nologin или /dev/null. Другой способ – отредактировать пароль (смотри shadow).
• printcap – база совместимых принтеров для lpd;
• profile – общесистемный конфигурационный файл для оболочки sh. Все настройки, добавленные в этот файл, отражаются на переменные окружения вашей системы;
• protocols – файл, содержащий список IP-протоколов;
• resolv.conf – конфигурационный файл Resolver;
• грс – файл, содержащий RPC-список протоколов;
• securetty – управление доступом к консоли для администратора (root);
• sendmail.cf – конфигурационный файл программы sendmail – программы передачи почтовых сообщений;
• services – файл, содержащий имена портов для сетевых сервисов. Описание сервиса представляет собой строку, которая содержит четыре поля:
– имя сервиса;
– номер порта/протокол;
– псевдонимы;
– комментарии.
Пример записи в файле services:
• shadow – файл паролей, по структуре напоминающий passwd. Содержит полный список пользователей системы. Интересны первые два поля – имя пользователя и хэш пароля. Алгоритм создания хэша пароля работает таким образом, что никогда первым символом хэша не может быть символ *. Таким образом, для того, чтобы запретить пользователю вход в систему, достаточно первым символом пароля поставить символ *.
Пример файла shadow:
• shells – файл, содержащий пути для установленных командных оболочек;
• sysctl.conf – файл конфигурации ядра операционной системы. Позволяет производить настройку различных свойств ядра – сетевых и не только.
Пример файла sysctl.conf:
# Disables packet forwarding
net.ipv4.ip_forward = 0
# Enables source route verification
net.ipv4.conf.default.rp_filter = 1
# Disables the magic-sysrq key
kernel.sysrq = 0
• syslog.conf – конфигурационный файл для демона syslogd.
/etc/rc.d – инициализационные скрипты системы
В каталоге содержатся следующие файлы и каталоги, необходимые для загрузки операционной системы Linux и запуска необходимых сервисов:• /init.d – каталог содержит управляющие скрипты для загружаемых при старте операционной системы сервисов;
• /rcO.d – каталог содержит скрипты, отвечающие за запуск и остановку сервисов при переходе на нулевой уровень выполнения;
• /rcl.d – каталог содержит скрипты, отвечающие за запуск и остановку сервисов при переходе на первый уровень выполнения;
• /rc2.d – каталог содержит скрипты, отвечающие за запуск и остановку сервисов при переходе на второй уровень выполнения;
• /rc3.d – каталог содержит скрипты, отвечающие за запуск и остановку сервисов при переходе на третий уровень выполнения;
• /rc4.d – каталог содержит скрипты, отвечающие за запуск и остановку сервисов при переходе на четвертый уровень выполнения;
• /rc5.d – каталог содержит скрипты, отвечающие за запуск и остановку сервисов при переходе на пятый уровень выполнения;
• /rc6.d – каталог содержит скрипты, отвечающие за запуск и остановку сервисов при переходе на шестой уровень выполнения;
• гс – файл предназначен для запуска и останова сервисов при переходе в указанный уровень выполнения;
• rc.local – файл предназначен для команд, добавляемых администратором для запуска в процессе начальной загрузки;
• rc.sysinit – файл предназначен для выполнения начальных действий, необходимых для корректного функционирования операционной системы;
/etc/rc.d/init.d – управляющие скрипты для сервисов
Каталог содержит управляющие скрипты для сервисов, которые выполняются (или могут выполняться) при старте системы или при переходе с одного уровня выполнения на другой.
Если соответствующие сервисы установлены, в этом каталоге находятся следующие файлы:
anacron
apmd
arpwatch
atd
autofs
crond
functions
gpm
halt
httpd
identd
ipchains
iptables
isdn
kdcrotate
keytable
killall
kudzu
lpd
netfs
network
nfs
nfslock
nscd
portmap
pppoe
random
awdevices
rhnsd
rstatd
rusersd
rwalld
rwhod
send mail
single
snmpd
sshd
syslog
tux
windows
xfs
xinetd
ypbind
ppasswdd
ypserv
/etc/rc.d/rc0.d … rc6.d – каталоги для соответствующего уровня выполнения
Эти каталоги содержат стартовые и стоповые скрипты сервисов, используемых операционной системой при переходе в нужный уровень выполнения. К примеру, каталог /rc3.d конкретного компьютера может содержать следующие файлы: