Linux, настройка Linux.
Итак, вы принадлежите к относительно неопытных пользователей Linux. Вы ус тановили Linux, вам удалось войти в систему, пошарить в Интернете, отправить и получить электронную почту... а дальше что? Несмотря на успешное выполне ние некоторых простейших задач, вы чувствуете себя словно пилот самолета, ле тящего на автопилоте. В вашем распоряжении масса замечательных возможнос тей (во всяком случае, так вам сказал ваш знакомый, большой знаток в области Linux), но как за них взяться? Что где находится и как работает? Что это за шту ковина под названием grep, о которой так часто говорят? И как наладить работу Samba? И где находится документация? Мир Linux/Unix отлично документирован. Нет, я серьезно! Вы сможете найти ответ на любой вопрос; нужно только знать, где искать. Man-страницы, info-страни цы, файлы README, документация в формате HTML, сами программы... Не нужно быть великим программистом, чтобы отыскать полезную информацию в исходных текстах, потому что все необходимые сведения часто содержатся в комментариях.
Среди тысяч виртуальных сообществ Интернета всегда найдется одно (или несколько) для конкретной программы из Вселенной Linux. Почти у каждой про граммы, какой бы малой она ни была, существует собственный список рассылки.
У каждого дистрибутива Linux имеются свои списки рассылки и форумы пользо вателей. Я уже не говорю о многочисленных книгах и журналах. Получается, что настоящая проблема с документацией Linux — не ее нехватка, а получение нуж ной информации без долгих и самоотверженных поисков.
Для кого написана эта книга
Книга предназначена для читателей, которые желают решать практические зада чи. Конечно, понимать базовую теорию полезно, но если вам не удается добиться нужного результата, пользы от теории немного. По этой причине я постараюсь включать поменьше теоретических рассуждений и побольше практических сове тов с подробными, пошаговыми инструкциями. В книгу включены многочислен ные ссылки на дополнительные источники информации.
От читателя потребуется некоторый опыт работы в Linux. Быть знатоком не обязательно, но нужно по крайней мере уметь загружать систему и завершать ра боту с ней, запускать приложения, работать в WWW и ориентироваться в файло вой системе. Читатель должен знать, как получить доступ к командной строке и использовать ее, и обладать навыками работы в графической среде. Он должен понимать, что Linux является полноценной многопользовательской системой и что в работе следует по возможности использовать непривилегированную учет ную запись, переключаясь на привилегии root только в случае необходимости.
Предполагается, что читатель является администратором отдельного компью тера или локальной сети и может получить привилегии root в случае необходимо сти. Может быть, вы стремитесь в полной мере управлять работой своего Linux компьютера, или создать свой собственный почтовый или веб-сервер, или создать небольшую сеть. А может, вы — системный администратор Windows, которому неожиданно потребовалось подключить Windows-клиентов к серверам Linux... или включить серверы Linux в существующую сеть... или интегрировать компьютеры с Linux и Windows в одной смешанной сети.
А может, вам вообще нет дела до Windows, и вы просто хотите освоить систем ное администрирование Linux.
О чем рассказано в книге
Для Linux существуют тысячи программных пакетов. Почти все они делают что то полезное, поэтому заранее понятно, что рассмотреть все темы (или хотя бы их большинство) попросту невозможно. Решения о том, какой материал включить в книгу, а какой оставить за пределами рассмотрения, принимались в соответствии с моими представлениями о базовых навыках администрирования Linux (воз можно, у вас эти представления будут другими). В книгу были включены программы, которые я считаю лучшими в своей категории: djbdns, GRUB, Apache 2, vim и Postfix, а также испытанные временем ветераны вроде LILO.
В книге приводятся полезные сценарии для выполнения типовых операций: О массовое создание учетных записей; О массовое изменение паролей; О поиск всей установленной документации к программе; О поиск «бесхозных» библиотек в системах на базе RPM и их включение в базу данных RPM.
В книгу не вошли настольные и вспомогательные приложения типа Open Office, KMail, FireFox, Konqueror, Gimp, GnuCash и т. д. — книга посвящена построению инфраструктуры. Если вы освоите основные принципы администрирования и со провождения Linux-системы, дальше можно будет двигаться куда угодно.
Платформы В мире существуют тысячи дистрибутивов Linux. Свои дистрибутивы создают отдельные компании, кампусы и даже просто группы единомышленников. Тем не менее дистрибутивы делятся (пусть и не очень четко) на две большие категории: системы на базе RPM, представленные в книге Red Hat и Fedora, и системы на базе apt, представленные Debian. Семейство Debian бурно развивается и пополня ется такими представителями, как Knoppix, Xandros, Libranet, Unbuntu и Linspire.
Даже если ваш дистрибутив не принадлежит ни к одной из этих категорий (ска жем, Slackware или Gentoo), основные принципы практически не изменяются.
Ядро остается тем же; программы и утилиты остаются теми же; оконные менед жеры остаются теми же; принципиальные различия существуют только в способе установки программ.
Впрочем, это не означает, что между дистрибутивами Linux нет других отли чий. Одна из классических проблем — различия в местонахождении файлов в раз ных дистрибутивах. Привыкайте, эта проблема никуда не денется. В книге будет показано, как получить информацию о местонахождении конфигурационных, ис полняемых файлов и документации для вашего конкретного дистрибутива.
- Глава 1 Документация1.1. Введение
- 1.2. Общие сведения о man-страницах
- 1.3. Поиск нужной man-страницы
- 1.4. Поиск потерянных man-страниц
- 1.5. Чтение тап-страниц без программы просмотра
- 1.6. Настройка путей поиска тап-страниц
- 1.7. Использование info-страниц
- 1.8. Печать man-страниц
- 1.9. Печать info-страниц
- 1.10. Печать отдельных man- или info-страниц
- 1.11. Поиск всей документации к программе
- Глава 2 Установка и модификация программ в системах на базе RPM 2.1. Введение
- 2.2. Установка пакетов
- 2.3. Обновление пакетов
- 2.4. Удаление пакетов
- 2.5. Получение информации об установленных пакетах
- 2.6 Получение информации о пакетах, не установленных в системе
- 2.7. Поиск недавно установленных пакетов
- 2.8. Перестройка базы данных RPM
- 2.9. Отслеживание библиотек, построенных по исходным текстам, в системах на базе RPM
- 2.10. Решение проблем установки RPM
- 2.11. Сборка пакетов по исходным текстам
- 2.12. Настройка параметров сборки SRPM
- 2.13. Установка yum
- 2.14. Настройка yum
- 2.15. Установка и обновление пакетов в yum
- 2.16. Удаление пакетов в yum
- 2.17. Получение информации об установленных пакетах в yum
- 2.18. Сопровождение yum
- Глава 3 Установка и сопровождение программного обеспечения системах на базе Debian3.1. Введение
- 3.2. Поиск программ для Debian
- 3.3. Установка пакетов Debian с диска CD-ROM
- 3.4. Установка пакетов в системе на базе Debian
- 3.5. Удаление пакетов из системы Debian
- 3.6. Установка программ в Debian по исходным текстам
- 3.7. Обновление пакетов в Debian
- 3.8. Обновление системы Debian
- 3.9. Установка обновленной версии Debian
- 3.10. Создание смешанной системы Debian
- 3.11. Поиск программ, установленных в системе Debian
- 3.12. Операции с кэшем пакетов Debian
- 3.13. Разрешение конфликтов зависимостей в Debian
- 3.14. Создание локального архива Debian
- 3.15. Выбор пакетных зеркал для apt-proxy.conf
- 3.16. Включение существующего кэша пакетов в apt-proxy.conf
- Глава 4 Установка программ по исходным текстам 4.1. Введение
- 4.2. Подготовка системы к компиляции программ по исходным текстам
- 4.3. Построение списка добавленных файлов для упрощения удаления программ
- 4.4. Установка программ по исходным текстам
- 4.5. Создание пакетов по исходным текстам с применением Checklnstall
- Глава 5 Идентификация оборудования 5.1. Введение
- 5.2. Идентификация оборудования при помощи Ispci
- 5.3. Сбор информации об оборудовании программой dmesg
- 5.4. Получение текущей сводки оборудования с использованием /ргос
- 5.5. Просмотр разделов в программе fdisk
- Глава 6 Редактирование текстовых файлов в JOEи Vim 6.1. Введение
- 6.2. Поиск команд JOE
- 6.3. Настройка JOE
- 6.4. Сохранение личной конфигурации JOE в отдельном файле
- 6.5. Копирование текста между файлами в JOE
- 6.6. Поиск и замена в JOE
- 6.7. Вертикальное выделение текста в JOE
- 6.8. Поиск и открытие файлов в JOE
- 6.9. Быстрое изучение Vim
- 6.10. Создание автотекста в Vim
- 6.11. Привязка команд к клавишам
- 6.12. Настройка Vim
- 6.13. Быстрое перемещение в Vim
- 6.14. Сеансы Vim
- 6.15. Назначение редактора по умолчанию
- 6.16. Определение параметров компиляции Vim
- Глава 7 Запуск и завершение работы Linux 7.1. Введение
- 7.2. Смена уровня выполнения после загрузки
- 7.3. Смена уровня выполнения по умолчанию
- 7.4. Запуск и остановка X
- 7.5. Управление уровнями выполнения в Debian
- 7.6. Создание уровней выполнения с текстовым и графическим входом в Debian
- 7.7. Управление уровнями выполнения в Red Hat
- 7.8. Ручная настройка служб, запускаемых при загрузке
- 7.9. Ручная остановка и запуск служб
- 7.10. Выключение компьютера или перезагрузка Linux
- 7.11. Запрет или ограничение доступа к Ctrl+Alt+Delete
- 7.12. Автоматическое выключение компьютера
- Глава 8 Управление пользователя м и и группами 8.1. Введение
- 8.2. Отделение обычных пользователей от системных
- 8.3. Определение кодов UID и GID
- 8.4. Создание учетной записи пользователя командой useradd
- 8.5. Создание учетной записи пользователя командой adduser
- 8.6. Изменение учетной записи пользователя
- 8.7. Удаление пользователя
- 8.8. Простое завершение процессов
- 8.9. Блокировка учетных записей
- 8.10. Управление паролями
- 8.11. Создание групп командой groupadd
- 8.12. Удаление групп командой groupdel
- 8.13. Создание системного пользователя
- 8.14. Создание системных групп командой addgroup
- 8.15. Изменение принадлежности к группам
- 8.16. Проверка целостности файлов паролей
- 8.17. Серийное добавление новых пользователей
- 8.18. Серийная замена паролей
- 8.19. Серийное включение пользователей в группы
- 8.20. Временное использование привилегий root
- 8.21. Временное предоставление привилегий root командой sudo
- 8.22. Дисковые квоты
- Глава 9 Операции с файлами и разделами 9.1. Введение
- 9.2. Настройка разрешений в числовом формате chmod
- 9.3. Выполнение массовых операций командой chmod
- 9.4. Настройка разрешений в символьном формате chmod
- 9.5. Назначение владельца файла командой chown
- 9.6. Выполнение массовых операций командой chown
- 9.7. Создание общих каталогов с использованием setgid и бита закрепления
- 9.8. Назначение разрешений по умолчанию с использованием маски umask
- 9.9. Монтирование и демонтирование съемных дисков
- 9.10-9.11. Настройка монтирования файловых систем в /etc/fstab
- 9.12. Определение имен устройств для mount и fstab
- 9.13. Создание файлов и каталогов
- 9.14. Удаление файлов и каталогов
- 9.15. Копирование, перемещение и переименование файлов и каталогов
- 9.16. Создание дисковых разделов Linux командой fdisk
- 9.17. Создание файловой системы в новом разделе
- Глава 10 Заплатки, настройка и обновление ядра 10.1. Введение
- 10.2. Добавление новых возможностей в ядро 2.4
- 10.3. Усечение типового ядра 2.4
- 10.4. Обновление до последней стабильной версии ядра 2.4
- 10.5. Построение ядра 2.6
- 10.6. Добавление новых возможностей в ядро 2.6
- 10.7. Добавление нового загружаемого модуля ядра
- 10.8. Установка заплаток ядра
- 10.9. Удаление заплатки ядра
- 10.10. Создание образа initrd
- 10.11. Создание загрузочного диска в Debian
- 10.12. Создание загрузочного диска в Red Hat
- Глава 11 Запись CD и DVD 11.1. Введение
- 11.2. Определение адресов SCSI для записывающих дисководов CD и DVD
- 11.3. Включение эмуляции SCSI для устройства записи CD и DVD с интерфейсом IDE/ATAPI
- 11.4. Создание компакт-диска с данными для распространения
- 11.5. Формирование файловых деревьев на компакт-дисках с данными
- 11.6. Копирование диска CD или DVD
- 11.7. Стирание диска CD-RW
- 11.8. Запись многосеансового компакт-диска с данными
- 11.9. Создание загрузочного компакт-диска
- 11.10. Разбиение больших файлов на несколько дисков
- 11.11. Запись дисков DVD с данными
- 11.12. Запись аудиодиска для стандартных проигрывателей
- Глава 12 12.1. Введение Системный загрузчик и альтернативная загрузка
- 12.2. Переход с LILO на GRUB
- 12.3. Установка GRUB без дискеты
- 12.4. Установка GRUB сценарием grub-install
- 12.5. Подготовка системы для альтернативной загрузки Linux
- 12.6. Установка дополнительных экземпляров Linux в системе с альтернативной загрузкой
- 12.7. Определение параметров загрузки в командной консоли GRUB
- 12.8. Настройка загрузочного раздела
- 12.9. Создание меню загрузки в GRUB
- 12.10. Настройка menu.1st
- 12.11. Добавление Windows 95/98/ME в систему Linux
- 12.12. Добавление Windows NT/2000/XP в систему с альтернативной загрузкой
- 12.13. Восстановление GRUB в MBR с использованием диска Knoppix
- 12.14. Защита системных файлов паролем GRUB
- 12.15. Защита отдельных пунктов меню GRUB
- 12.16. Создание заставки GRUB
- 12.17. Загрузка Linux с использованием LILO
- 12.18. Альтернативная загрузка Linux с использованием LILO
- 12.19. Альтернативная загрузка Windows и Linux с использованием LILO
- 12.20. Создание загрузочной дискеты LILO
- 12.21. Защита LILO паролем
- 12.22. Создание резервной копии MBR
- Глава 13 Восстановление работоспособности системы на примере Knoppix 13.1. Введение
- 13.2. Загрузка Knoppix
- 13.3. Создание загрузочной дискеты Knoppix
- 13.4. Сохранение конфигурации Knoppix на флэш-диске
- 13.5. Создание зашифрованного домашнего каталога Knoppix
- 13.6. Копирование файлов на другой PC с системой Linux
- 13.7. Копирование файлов в общий каталог Samba
- 13.8. Копирование файлов на диск CD-R/RW
- 13.9. Редактирование конфигурационных файлов в Knoppix
- 13.10. Установка программ из Knoppix
- 13.11. Восстановление пароля root
- 13.12. Установка Knoppix на жесткий диск
- 13.13. Запуск антивирусных программ на Windows PC
- Глава 14 CUPS 14.1. Введение
- 14.2. Подключение принтера к автономному компьютеру с системой Linux
- 14.3. Обслуживание клиентов Linux
- 14.4. Совместный доступ к принтеру без разрешения имен
- 14.5. Обслуживание клиентов Windowsбез Samba
- 14.6. Совместный доступ к принтерам в смешанной сети с использованием Samba
- 14.7 Создание выделенного сервера печати CUPS
- 14.8. Распределенная печать с использованием классов
- 14.9. Ограничение доступа к принтерам и классам
- 14.10. Диагностика
- Глава 15 Настройка видео и X Window 15.1. Введение
- 15.2. Одновременное использованиеX и консолей
- 15.3. Установка нового видеоадаптера
- 15.4. Редактирование файла XF86Config
- 15.5. Включение аппаратного ускорения в XFree86/DRI
- 15.6. Диагностика проблем с ускорением трехмерной графики
- 15.7. Настройка startx
- 15.8. Смена экранного менеджера
- 15.9. Одновременный запуск разных оконных менеджеров
- Глава 16 Архивация и восстановление 16.1. Введение
- 16.2. Применение rsync для локальной пересылки и синхронизации файлов
- 16.3. Безопасная пересылка данных с применением ssh
- 16.4. Настройка сервера архивации rsync
- 16.5. Защита модулей rsync
- 16.8. Настройка выбора файлов
- 16.9. Автоматизация архивации rsync на базе ssh
- 16.10. Ограничение загрузки канала при использовании rsync
- 16.14. Создание загрузочного компакт-диска в Mondo Rescue
- 16.15. Проверка архивов Mondo
- 16.16. Создание загрузочного диска DVD
- 16.17. Использование Mondo Rescue для клонирования систем Linux
- 16.18. Использование mindi-kernel
- 16.19. Восстановление системы с диска Mondo
- 16.20. Восстановление отдельных файлов с диска Mondo
- Глава 17 Удаленный доступ 17.1. Введение
- 17.2. Настройка OpenSSH
- 17.3 Построение новых ключех хостов
- 17.4. Аутентификация с использованием открытых ключей
- 17.5. Использование нескольких пар ключей
- 17.6. Вход без пароля с использованием ssh-agent
- 17.7. Вход без пароля с использованием keychain
- 17.8. Беспарольный вход для заданий сгоn
- 17.9. Автоматическое завершение ssh-agent при выходе
- 17.10. Настройка приглашения Bash для ssh
- 17.11. Туннелирование Х через SSH
- 17.12. Подключение с компьютера с системой Windows
- 17.13. Назначение разрешений для файлов ssh
- Глава 18 Управление версиями 18.1. Введение
- 18.2. Построение локального репозитария RCS
- 18.3. Выборка старых версий файлов в RCS
- 18.4. Сравнение версий файла в RCS
- 18.5. Управление системными конфигурационнымифайлами в RCS
- 18.6. Использование CVS для создания однопользовательских локальных репозитариев
- 18.7. Включение новых файлов в репозитарий CVS
- 18.8. Удаление файлов из репозитария CVS
- 18.9. Создание общего репозитария CVS
- 18.10. Совместное использование репозитария группами пользователей
- 18.11. Обращение к удаленному репозитарию CVS
- 18.12. Обновление рабочих файлов в CVS
- 18.13. Выборка конкретных старых версий из CVS
- 18.14. Построение анонимного репозитария CVS
- 18.15. Настройка среды CVS
- 18.16. Вычисление объема репозитария CVS
- Глава 19 NTP 19.1. Введение
- 19.2. Настройка локального сервера времени
- 19.3. Подключение к локальному серверу времени
- 19.4. Управление доступом
- 19.5. Выбор пула NTP
- 19.6. Подключение к серверу времени при непостоянном подключении
- 19.7. Настройка нескольких локальных серверов времени
- 19.8. Аутентификация с использованием ключей NTP
- Глава 20 Почтовый сервер Postfix 1 20.1. Введение
- 20.2. Построение почтового сервера РОРЗ
- 20.3. Построение почтового сервера РОРЗ в Debian
- 20.4. Тестирование почтового сервера SMTP/POP3
- 20.5. Отправка интернет-почты
- 20.6. Прием интернет-почты
- 20.7. Установка Cyrus-SASL
- 20.8. Установка Cyrus-SASL в Debian
- 20.9. Настройка smtp-auth для аутентификации пользователей
- 20.10. Применение smtp-auth для аутентификации Postfix на другом сервере
- 20.11. Настройка полного доменного имени
- 20.12. Построение почтового сервера IMAP
- 20.13. Подключение пользователей
- 20.14. Общий доступ к папкам IMAP
- 20.15. Использование виртуальных доменов Postfix
- 20.16. Создание списка рассылкис применением couriermlm
- Глава 21 Борьба со спамом и вредоносными программами 21.1. Введение
- 21.2. Первоочередные меры по защите от спама и вредоносных программ
- 21.3. Тестирование средств борьбы со спамом в Postfix
- 21.4. Настройка антиспамовых ограничений в Postfix
- 21.5. Создание белых списков
- 21.6. Использование черных списков DNS
- 21.7. Блокировка сообщений с вложениями
- 21.8. Настройка Clam Anti-Virus на сервере Postfix
- 21.9. Настройка SpamAssassin в Postfix
- Глава 22 Веб-сервер Apache 22.1. Введение
- Apache 1.3 или Apache 2.x?
- 22.2. Установка Apache 2.0 по исходным текстам
- 22.3. Добавление новых модулей после установки
- 22.4. Настройка разрешений и принадлежности файлов Apache
- 22.5. Обращение к локальному руководству Apache
- 22.6. Создание простого веб-сервера
- 22.7. Перенаправление URL в новый каталог
- 22.8. Предоставление пользователям индивидуальных веб-каталогов
- 22.9. Запуск Apache при загрузке системы
- 22.10. Многодоменный хостинг в Apache
- 22.11. Ведение отдельных журналов для виртуальных хостов
- 22.12. Предотвращение доступа к веб-сайтам локальных сетей из Интернета
- 22.13. Парольная защита отдельных каталогов
- 22.14. Файл robots.txt
- 22.15 Блокировка нарушителей
- 22.16 Cтраницы ошибок
- 22.17. Настройка стандартных страниц ошибок Apache
- 22.18. Вывод содержимого каталогов без усечения имен файлов
- 22.19. Использование Content Negotiation для предоставления страниц на разных языках
- 22.20. Использование эмблем
- 22.21. Просмотр журналов обращений Apache с использованием Webalizer
- Глава 23 Samba 23.1. Введение
- 23.2. Построение простого автономного файлового сервера Samba для Windows
- 23.3. Построение одноранговой сети Windows/Linux
- 23.4. Включение общего доступа к файлам в Windows
- 23.5. Включение аутентификации на сервере Samba
- 23.6. Массовое преобразование системных пользователей
- 23.7. Подключение к Samba из Windows 95/98/ME
- 23.8. Шифрование паролей в Windows
- 23.9. Списки управления доступом (ACL)
- 23.10. Создание общедоступных сетевых каталогов
- 23.11. Работа с домашними каталогами пользователей в Samba
- 23.12. Построение главного контроллера домена
- 23.13. Подключение Windows 95/98/ME к домену Samba
- 23.14. Подключение клиентов Windows NT/2000 к домену Samba
- 23.15. Подключение клиентов Windows XP к домену Samba
- 23.16. Включение перемещаемых профилей
- 23.17. Подключение клиентов Linux к одноранговой сети или файловому серверу Samba
- 23.18. Подключение клиентов Linux к рабочим группам Samba из командной строки
- 23.19. Подключение клиентов Linux к домену Samba из графического обозревателя
- 23.20. Подключение клиентов Linux к домену Samba из командной строки
- 23.21. Синхронизация паролей Samba и Linux
- 23.22. Общий доступ к принтерам Linux из системы Windows
- 23.23. Общий доступ к принтерам Windows из системы Linux
- 23.24. Запуск приложений Windows в Linux
- Глава 24 Разрешение имен 24.1. Введение
- 24.2. Локальное разрешение имен c использованием файла hosts
- 24.3. Настройка сервера DHCP
- 24.4. Настройка клиентов dhcp
- 24.5. Включение статических хостов в dhcp
- 24.6. Создание общедоступного сервера DNS
- 24.7. Установка djbdns
- 24.8. Перемещение журналов tinydns и dnscache
- 24.9. Создание локального дотирующего сервера имен на базе djbdns
- 24.10. Настройка клиентов Linux и Windows для использования дотирующего сервера DNS
- 24.11. Создание общедоступного сервера DNS с использованием tinydns
- 24.12. Построение частного сервера DNS
- 24.13. Простое распределение нагрузки в tinydns
- 24.14. Синхронизация с другим сервером tinydns