Текст книги "Linux"
Автор книги: Алексей Стахнов
Жанр: ОС и Сети, Компьютеры
сообщить о неприемлемом содержимом
Текущая страница: 7 (всего у книги 60 страниц) [доступный отрывок для чтения: 20 страниц]
Основная цель, которая преследуется при создании журналируемых файловых систем, состоит в том, чтобы обеспечить как можно большую вероятность быстрого восстановления системы после сбоев (например, после потери питания). Дело в том, что если происходит сбой, то часть информации о расположении файлов теряется, поскольку система не успевает записать все изменения из буфера на диск. После сбоя утилита fsck должна проверить все диски, которые не были корректно демонтированы, с целью восстановления потерянной информации. При современных объемах жестких дисков, исчисляемых десятками гигабайт, на проверку двух-трех таких дисков может уйти слишком много времени. Кроме того, нет гарантии, что все данные удастся восстановить.
В журналируемых файловых системах для решения этой проблемы применяют транзакции, которые хорошо известны всем программистам баз данных. Идея транзакции достаточно проста – существует набор связанных операций, называемых транзакцией, и эта группа операций является атомарной (неделимой). Таким образом, транзакция является успешной (завершенной) в том случае, если все операции, составляющие транзакцию, завершились успешно. Но это еще не все. Система ведет журнал, в котором отражаются все действия с данными и все изменения данных протоколируются. В случае сбоя на основании журнала можно вернуть систему в безошибочное состояние.
Основное отличие транзакций из области баз данных от транзакций, применяемых в журналируемых файловых системах, состоит в том, что в базах данных в журнале сохраняются изменяемые данные и вся управляющая информация, а в файловых системах – только мета-данные: индексные дескрипторы изменяемых файлов, битовые карты распределения свободных блоков и свободных индексных дескрипторов.
Файловая система Ext3
По большому счету, файловая система Ext3 не является новой файловой системой. Это похоже на ситуацию с файловой системой FAT 16/FAT 32 – они совместимы, но проблема решена экстенсивным путем. Было необходимо срочно создать журналируемую файловую систему. Если начинать с нуля – долго и накладно, тогда сделали для Ext2 несколько десятков специальных функций и назвали все это Ext3 – получился непонятный гибрид.
Вроде бы добавились журналирующие функции – но не в том объеме, в каком хотелось. И узкие места Ext2 остались: оптимизация использования дискового пространства, ограничение на размер файла и т. п. Пока же общественность (fido7.ru.linux) более склоняется к использованию других журналируемых файловых систем.
Файловая система ReiserFS
Кроме проблемы быстрого восстановления после сбоев, в файловой системе Ext2 имеется еще несколько нерешенных проблем. Из самых основных – нерациональное использование дискового пространства, ограничение на размер файла, неоптимальный поиск.
Поскольку в файловой системе используется простой связный список, то время поиска информации линейно зависит от длины списка. Таким образом, чем длиннее список (к примеру, файлов в каталоге), тем дольше идет поиск необходимого элемента.
В системе ReiserFS применяются так называемые "сбалансированные деревья" или "B+Trees", время поиска в которых пропорционально не количеству объектов, а логарифму этого числа. В сбалансированном дереве все ветви имеют одинаковую длину. ReiserFS использует сбалансированные деревья для хранения всех объектов файловой системы: файлов в каталогах, данных о свободных блоках и т. д. Это позволяет существенно повысить производительность обращения к дискам.
Кроме того, система ReiserFS является журналируемой, т. е. в ней решена проблема быстрого восстановления после сбоев. Решена в ReiserFS и проблема с ограничением на размер файла. По всей видимости, именно эта файловая журналируемая система в ближайшее время станет стандартом de-facto для многих дистрибутивов Linux.
Ссылки• e2fsprogs.sourceforge.net – утилиты файловой системы Ext2.
• ftp.uk.linux.org/pub/linux/sct/fs/ji's/ – код и документация Ext3.
• www.atni.csiro.au/~rgooch/linux/docs/vfs.txt – обзор виртуальной файловой системы.
• www.osp.ru/pcworld/2000/02/064.htm – Виктор Хименко. Файлы, файлы, файлы. Обзор файловых систем.
• www.linux-ve.chat.ru – виртуальная библиотека Linux.
Глава 5
Дерево каталогов Linux
Эта глава полностью посвящена структуре и размещению каталогов и файлов в Linux. Поскольку для различных дистрибутивов структура может слегка отличаться, для определенности будем рассматривать дистрибутив Red Hat 7.1.
Для того чтобы ориентироваться в Linux, необходимо хорошо представлять себе структуру и размещение каталогов и файлов. Эти параметры для UNIX и Linux описаны в документе "Filesystem Hierarchy Standard – Version 2.2 final", Filesystem Hierarchy Standard Group, edited by Rusty Russell and Daniel Quinlan, редакция от May 23, 2001. Дальнейший текст в основном базируется на этом документе.
Все файлы можно разделить по двум признакам – доступность (shareable, разделяемость) на сетевом уровне и изменяемость/неизменность содержимого.
Соответственно, для каждого признака можно ввести свои понятия:
• разделяемые данные – те, которые могут использовать несколько хостов одновременно, т. е. данные, доступные для других хостов через сеть;
• неразделяемые данные – как правило, специфичные для каждого хоста, недоступные через сеть для других хостов;
• статические данные – включают системные файлы, библиотеки, документацию и другое, что не изменяется без вмешательства администратора;
• динамические (переменные) данные – все то, что может изменяться пользователем.
Эти признаки взаимно ортогональны, в табл. 5.1 приведены некоторые каталоги, соответствующие этим признакам.
Таблица 5.1. Признаки данных и каталоги
Как видно из таблицы, каталог /usr – статический разделяемый, а каталог /var/lock – динамический неразделяемый. По этим признакам можно распределить все каталоги в файловой системе, о чем и будет упоминаться в соответствующих разделах. Однако такое четкое распределение не всегда наблюдается в современных UNIX-системах. Как правило, эта проблема возникает из-за поддержки совместимости со старым программным обеспечением. Каталоги, не удовлетворяющие четкому разделению, будут упомянуты особо.
Иерархия каталогов LinuxВ табл. 5.2 приведена иерархия каталогов первого уровня.
Таблица 5.2. Каталоги первого уровня операционной системы Linux
Рассмотрим подробнее иерархию каталогов.
Точка монтирования всей файловой системы. Играет исключительно важную роль в процессе «жизнедеятельности» операционной системы. Для загрузки системы необходимо, чтобы в корневом разделе (корневой раздел в Linux – это аналог диска С: для DOS/Windows – только на него возможно установить операционную систему. И корневой раздел является точкой монтирования корневого каталога) находились утилиты и конфигурационные файлы, необходимые для монтирования других файловых систем. Кроме того, в корневой файловой системе должны присутствовать утилиты, необходимые для создания, восстановления или ремонта файловых систем, а также для административного восстановления (backup) системы с ленты, CD-ROM, дискет и тому подобных носителей. Каталоги /usr, /opt, /var спроектированы так, что они могут размещаться на файловых системах, отличных от корневой. В дистрибутиве Slackware в корневом каталоге по умолчанию находится ядро операционной системы (что на больших винчестерах иногда вызывало определенные проблемы), в дистрибутиве Red Hat ядро операционной системы перенесено в каталог /boot.
Имеется несколько причин, по которым корневую файловую систему рекомендуется делать минимально возможного размера:
• это позволяет монтировать файловую систему с очень маленьких носителей информации (например дискет);
• корневая файловая система не может быть разделяемой, потому что содержит много системно-зависимых конфигурационных файлов. Создание малой по объему корневой файловой системы позволяет сохранить на серверах больше места для разделяемых ресурсов;
• у маленького по объему корневого каталога меньше вероятность пострадать при крахе системы.
Содержит важные исполняемые файлы, которые используются всеми (в том числе и администратором системы) пользователями. Кроме того, в каталоге /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-сетевая утилита.
Содержит все, что требуется для процесса загрузки, исключая файлы конфигурации. В каталоге /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.
Содержит файлы устройств или специальные файлы. Создание в каталоге /dev файлов устройств осуществляется с помощью предназначенной для этого утилиты makedev, находящейся в нем же. Также в этом каталоге может находиться утилита makedev.local, предназначенная для создания локальных устройств. Все устройства и специальные файлы описываются в документе Linux Allocated Devices, который поставляется вместе с исходным кодом ядра (см. также соответствующую справочную документацию).
Каталог содержит конфигурационные файлы и каталоги, которые специфичны для данной системы. В этом каталоге не должно находиться никаких исполняемых модулей. В каталоге /etc обязательно должен присутствовать каталог /opt, содержащий конфигурационные файлы для программ, установленных в каталоге /opt.
Замечание
Везде, где далее упоминается "… должны присутствовать в каталоге /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
Замечание
Если она отсутствует – возникнут проблемы, связанные с сетью (в частности, возможно зависание программы sendmail).
• hosts.allow – файл, определяющий, каким хостам разрешено подключаться к системе;
• 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. В противном случае внесенные в конфигурационный файл изменения не воспримутся загрузчиком.
Пример файла lilo.conf приведен ниже:
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 конкретного компьютера может содержать следующие файлы:
К03rhnsd
K15httpd
K20nfs
K20rstatd
K20rusersd
K20rwalld
K20rwhod
K34yppasswdd
K45arpwatch
K50snmpd
K50tux
K65identd
K73ypbind
K74nscd
K74ypserv
S05kudzu
Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?