Глава 6. Настройка и администрирование системы

Александр Боковой, Игорь Вергейчик, Олег Власенко, Андрей Горев, Михаил Забалуев, Станислав Иевлев, Георгий Курячий, Дмитрий Левин, Игорь Муратов, Андрей Орлов, Андрей Пашков, Алекс Сергеев, Александр Сутулов, Мэтт Уэлш

Содержание

Основы администрирования
Пользователь root
Права администратора
Что происходит в системе?
Поддержка аппаратного обеспечения
Основная информация
USB- и PCMCIA-шины
Шина ISA
Устройства, присоединяемые через параллельный, последовательный или игровой порты
Материнские платы и процессоры
Клавиатура
Мышь
Устройства хранения данных
Видеокарты
Настройка монитора
Звуковые карты
Сетевые платы
Радио- и видеотюнеры
Прочее оборудование
Настройка загрузки
Загрузка системы
Загрузка нескольких операционных систем
Настройка загрузчика
Настройка консоли
Сеть
Настройка сети
Автоматическая настройка сети (RARP и DHCP)
Удалённое подключение к Интернет по модему
Настройка беспроводной сети
Удалённый доступ и удалённое администрирование
Сетевая безопасность
Организация корпоративной сети
Установка и удаление программ (пакетов)
Введение
Графический интерфейс для APT
Использование APT
Поиск пакетов
Установка или обновление пакета
Удаление установленного пакета
Обновление всех установленных пакетов
Настройка APT
Управление пользователями
Пользователи с точки зрения Linux
Создание новых пользователей
Удаление пользователей
Установка атрибутов пользователя
Группы пользователей
Работа с файловыми системами
Монтирование файловых систем
Проверка файловой системы
Подсистема печати (CUPS)
Введение
Спулер CUPS
Настройка системы CUPS
Резюме
Электронная почта (postfix)
Пакеты postfix
Конфигурационные файлы
Доменная информация
Postfix на dialup-машине
Postfix на клиентской машине локальной сети
Почтовый сервер для небольших доменов и сетей
Алиасы и преобразования адресов
Борьба со спамом и почтовыми вредителями
Прочие настройки
Использование Postfix
Объединённая служба каталога (LDAP)
Что такое служба каталога и что такое LDAP?
Установка и настройка
Служба FTP
FTP-сервер vsftpd
Организация анонимного доступа на основе vsftpd
Доступ к серверу зарегистрированных пользователей
Дополнительные сведения о настройке сервера
Служба DNS (Bind)
Среда интеграции с Windows (Samba)
Общие сведения о Samba
Краткий обзор каталогов и файлов
Настройка сервера
Настройка клиента
Особенности локализации клиента и сервера
Некоторые вопросы безопасности
Особенности использования Samba 3.0
Кеширующий прокси-сервер (Squid)
Централизованный выход в Интернет через один сервер в сети (proxy)
Локальное хранение данных, которые уже запрашивались пользователями (cache)
Обратное проксирование и кеширование внутренних серверов (accelerate)
Разное
Сервер приложений Zope
Краткое руководство пользователя пакета
Установка ранее разработанного сайта
Установка и использование дополнительных пакетов
Веб-сервер Apache
Введение
Варианты установки пакетов ALT
Первые шаги после установки
Настройка Apache
Описание модулей и конфигурационных директив Apache
Что делать в неожиданных ситуациях
Аварийная загрузка
Сбои в работе системных служб
Переполнение файловой системы
Ошибки в файловой системе
Аппаратные ошибки
Особенности дистрибутива ALT Linux 2.4 Master
Утилита control
Безопасность
Ядро и модули
Подсистема альтернатив
Стартовые сценарии

Среди пользователей операционной системы по крайней мере один должен заботиться о её работоспособности, обновлять программное обеспечение, подключать и настраивать новое оборудование, не забывать о безопасности. Если же вы — единственный пользователь операционной системы — все эти задачи ложатся на вас. В ALT Linux 2.4 Master многие административные процедуры автоматизированы, и вам может не понадобиться обращаться к материалам этого раздела. Однако мы рекомендуем в любом случае ознакомиться с основами администрирования и системой установки и удаления программ: эти знания могут оказаться необходимыми при решении повседневных пользовательских задач и, возможно, помогут сделать вашу работу с ALT Linux 2.4 Master более эффективной.

Основы администрирования

Георгий Курячий, Дмитрий Левин

Пользователь root

Система Linux делает различия между пользователями. То, как они могут воздействовать друг на друга и на систему, чётко определено. Права доступа (permissions) к файлам устроены так, что рядовой пользователь не сможет стереть или изменить файлы в каталоге, например, /bin или /usr/bin. Большинство пользователей защищают собственные файлы, устанавливая соответствующие права доступа, так что другие пользователи либо не имеют доступа к этим файлам, либо не могут изменить (или стереть) их. Действительно, никто не сделает открытой, например, свою переписку по электронной почте. У каждого зарегистрированного в системе пользователя есть имя и соответствующий каталог (домашний каталог) с данным именем[5]. Кроме того, система заводит специальные имена пользователей, у которых имеются особые привилегии. Наиболее важен пользователь root, в качестве которого в системе работает системный администратор. В большинстве случаев между этими понятиями (пользователь root и человек, исполняющий функции системного администратора) не делается различий.

На действия пользователя root нет никаких ограничений. Он может читать, изменять или удалять любой файл системы, изменять права доступа и принадлежность (ownership) любого файла, запускать любые специальные программы. Например, те, которые создают разделы на жёстком диске или создают файловые системы. Основная идея состоит в том, что лицо, ответственное за функционирование операционной системы, входит в систему как пользователь root и выполняет действия, которые не может выполнить рядовой пользователь. Поскольку пользователю root разрешено делать все, ошибка в его действиях может иметь катастрофические последствия.

Если обычный пользователь по неаккуратности вдруг попробует удалить все файлы в каталоге /etc, то система не позволит ему это сделать. Однако если то же самое попробует сделать пользователь root, то система даже не выдаст никакого предупреждения. Таким образом, работая в качестве пользователя root, легко разрушить операционную систему. Наилучший способ предупредить подобные последствия заключается в следующем.

  • Быть очень внимательным, запуская команду, которая имеет необратимые последствия. Если предполагается вычистить часть файлов из каталога, следует перечитать всю команду и убедиться, что в ней все правильно.

  • Использовать отличающееся от других приглашение (prompt) для пользователя root. В файлах .bashrc или .login для пользователя root должен быть определён специфический вид приглашения командной оболочки, отличающийся от приглашения для остальных пользователей. Во многих случаях для пользователя root используется в качестве приглашения символ#, а для других пользователей — символ $.

  • Входить в систему как пользователь root следует только тогда, когда это абсолютно необходимо. После окончания работы в качестве пользователя root следует выйти из системы. Чем реже для работы используется root, тем меньше вероятность случайно повредить систему и спутать права пользователя root с правами других пользователей.

Работу в качестве пользователя root следует воспринимать как временное обладание своеобразной волшебной палочкой, которая даёт могущество, и это могущество может вызвать огромные разрушения. Очень полезно внимательно следить за тем, какие клавиши нажимают в это время собственные пальцы. Хотя обладание волшебной палочкой даёт особые ощущения, желательно брать её в руки пореже.

Права администратора

Всякая будничная работа под Linux, не являющаяся системным администрированием, может и должна выполняться непривилегированными пользователями. Этому правилу необходимо следовать для того, чтобы вероятность приведения системы в нерабочее состояние из-за вашей случайной ошибки или возможных ошибок в используемых вами программах была сведена к минимуму.

К сожалению, немалая часть программного обеспечения написана безграмотно с точки зрения безопасности. Запуская такие программы непривилегированным пользователем, вы тем самым автоматически уменьшаете риск повреждения системы от сбоя и усложняете процедуру вторжения в вашу систему потенциальных взломщиков.

Административные задачи требуют привилегий пользователя root. Следует учитывать, что настройки для пользователя root определяются спецификой его задач, а потому не приспособлены для повседневной работы и лишь ограниченно локализованы.

sudo — это программа, разработанная в помощь системному администратору и позволяющая делегировать те или иные привилегированные ресурсы пользователям с ведением протокола работы. Основная идея — дать пользователям как можно меньше прав, но при этом ровно столько, сколько необходимо для решения поставленных задач.

Команда sudo предоставляет возможность пользователям выполнять команды от имени root либо других пользователей. Правила, используемые sudo для принятия решения о предоставлении доступа, находятся в файле /etc/sudoers; язык их написания и примеры использования подробно изложены в sudoers(5). Кроме того, пример правил, предоставляющих непривилегированным пользователям возможность устанавливать, обновлять и удалять пакеты в системе[6], приведён в файле /usr/share/doc/sudo-<версия>/rpm.sudoers.

Для редактирования файла /etc/sudoers следует использовать программу visudo, которая проверяет синтаксис и тем самым позволяет избежать ошибок в правилах.

В большинстве случаев грамотная настройка sudo делает работу от имени суперпользователя ненужной.

Что происходит в системе?

Человеку, отвечающему за работоспособность системы, очень важно всегда отчётливо представлять, что с нею творится. Теоретически, никакое происшествие не должно ускользнуть от его внимания. Однако компьютерные системы столь сложны, что отслеживать все события в них — выше человеческих возможностей. Для того, чтобы довести поток служебной информации до разумного объёма, её надо просеять (выкинуть незначащие данные), классифицировать (разделить на несколько групп сообразно тематике) и журнализировать (сохранить в доступном виде для дальнейшего анализа).

В Linux эта задача решается с помощью механизма централизованной журнализации, который реализован демоном (системной службой) syslogd. Все части системы (включая ядро и системные службы) рапортуют syslogd о происходящих в них событиях. В этот рапорт включается имя службы, категория (facility) и важность (priority) произошедшего события. Демон, сообразно настройкам, классифицирует все эти рапорты в несколько выходных потоков. Классификация и отсев данных всякого выходного потока происходит так: для каждой категории событий определяется наименьшая важность, которой событие должно обладать, чтобы попасть в этот выходной поток. Например, легко определить поток «ошибки», в который будут попадать только важные рапорты любых категорий, или поток «безопасность», в который будут попадать все рапорты категории «безопасность» и те рапорты других категорий, важность которых заставляет подозревать угрозу безопасности системы (например, рапорт категории «демон» об аварийном завершении работы системной службы).

Главное место хранения уже классифицированного syslogd потока событий — системный журнал (т. н. log-файл). Системный журнал — текстовый файл, содержащий рапорты одного потока. Обычно syslogd хранит системные журналы в каталоге /var/log и его подкаталогах. Именно в системные журналы, прежде всего в /var/log/messages, /var/log/maillog и /var/log/dmesg, необходимо заглядывать администратору, который хочет знать что происходит в системе. Поток рапортов о важных событиях syslogd направляет и на системную консоль — выделенное терминальное устройство. В ALT Linux роль системной консоли выполняет 12-я виртуальная консоль, доступная по сочетанию клавиш Alt-F12 или Alt-Ctrl-F12. Стоит заметить, что некоторые службы (например, WWW-сервер apache) самостоятельно, в обход syslogd, ведут журнализацию своих событий, поэтому информацию о количестве и местоположении их журналов можно почерпнуть из их файлов настроек (обычно, тем не менее, журналы хранятся в /var/log).

Новые рапорты, поступающие в системный журнал, наиболее актуальны, а предыдущие, по мере их устаревания, эту актуальность утрачивают. Если самые старые данные в журнале не удалять, файловая система, рано или поздно, окажется переполненной. В Linux организован механизм устаревания журналов, которым занимается служба logrotate. Запускаясь раз в день, logrotate проверяет, какие из файлов следует признать устаревшими. Файл объявляется устаревшим раз в определённый промежуток времени (например, раз в неделю), или если он достиг определённого размера.

Процедура устаревания такова. Для каждого журнала, как, например, для /var/log/syslog/alert, logrotate держит в том же каталоге очередь устаревших копий — файлы с именами от alert.0.bz2 (предыдущая копия) до alert.4.bz2 (самая старая копия). Очередь alert в нашем примере состоит из пяти упакованных с помощью bzip2 файлов. В момент устаревания alert.3.bz2 переименовывается в alert.4.bz2 (старые данные теряются), копия с номером 2 превращается в третью, первая — во вторую, нулевая в первую. Наконец, сам журнал упаковывается и переименовывается в alert.0.bz2, а на его мечте заводится новый — пустой. Таким образом, администратор всегда имеет доступ к свежему журналу и к нескольким его копиям за определённое время.

Некоторые файлы в /var/log — нетекстовые, они не являются полноценными журналами, а представляются собой «свалку событий» для служб авторизации и учёта. Текстовую информацию о входе пользователей в систему и выходе оттуда можно получить по команде last, а узнать о тех, кто в данный момент пользуется системой помогут команды w и who.

Множество важной информации может дать анализ загруженности системы — в плане процессорного времени и потребления оперативной памяти (ps, top, vmstat), в плане использования дискового пространства (du, df, lsof) и в плане работы сетевых устройств (netstat).



[5] В английском языке используется слово account, которое обозначает ресурс, включающий имя и домашний каталог (home directory) для этого имени.

[6] Пользователи при этом должны входить в группу rpm. Подробнее о группах пользователей см. раздел Управление пользователями в данной главе.