1a4bbdc3

Введение


Документация к программам Linux существует в избытке — вопрос только в том, как ее найти. Не ищите стопки красивых, глянцевых печатных описаний: большинство Linux-программ не продается в блестящих коробках, а распространяется через Интернет.

Существует и другая сложность: в соответствии с великими традициями Unix, многие задачи в Linux решаются совместной работой множества мелких специализированных программ, поэтому любой дистрибутив Linux состоит из огромного количества отдельных программ. Дистрибутивы общего назначения типа Mandrake или SuSE содержат тысячи программ, а в архивах Debian хранятся свыше 12 000 пакетов. Организация и сопровождение печатной библиотеки в таких условиях создали бы немало трудностей, но к счастью, все программы документированы. Какой бы вопрос у вас ни возник, на него всегда можно найти ответ.


В наши дни установка дистрибутива Linux производится без особых проблем. Вставьте диск CD-ROM в дисковод, задайте несколько конфигурационных параметров и отправляйтесь пить чай, пока идет установка. Современные версии Linux превосходно распознают оборудование, быстро устанавливаются (обычно за 30 минут и менее) и требуют не более одной промежуточной перезагрузки.




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

При построении программы по исходным текстам обязательно ознакомьтесь со всеми инструкциями. Хотя процедура configure-make-make install стала относительно стандартной, существует множество исключений, зависящих от прихоти автора программы. Нередко в процессе построения необходимо указывать различные параметры конфигурации, и информацию о них можно найти только в документации.

Если вы предпочитаете использовать пакеты, в вашем распоряжении все программы для самостоятельного построения пакетов RPM и .deb. Впрочем, на освоение этих программ потребуются немалые усилия. Существует третий вариант: CheckInstall — превосходная утилита, упрощающая построение пакетов RPM, Debian или Slackware по исходным текстам.




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

Такие утилиты не только избавляют вас от необходимости снимать кожух и копаться во «внутренностях» компьютера, но и помогают найти драйверы или узнать, поддерживается ли вообще данное устройство в Linux. Мы живем в дурацком Windows-центрическом мире: чтобы проверить, существуют ли для модема, сетевой или видеокарты драйверы Linux, обычно необходимо знать чипсет, использованный в устройстве. Количество чипсетов не так уж велико, но они делятся на множество торговых марок и моделей. Некоторые фирмы-производители меняют чипсеты, не изменяя номер модели, так что на номер модели рассчитывать не стоит. Зная чипсет, можно найти драйверы.






Освоение текстового редактора — важный навык для каждого, кто хочет быть грамотным, достойным пользователем Linux. Проблема выбора редактора сама по себе интересна, так как в мире Linux существует много текстовых ASCII-редакторов. Это объясняется двумя причинами. Во-первых, создание текстового редактора является хорошим (и достаточно типовым) проектом для программиста-новичка; во-вторых, текстовый редактор — сугубо личный инструмент. Гуру Linux часто пишут или изменяют текстовые редакторы, руководствуясь своими капризами... то есть специфическими требованиями.

Пользователи Linux частенько ввязываются в перепалки по поводу текстовых редакторов (особенно «Emacs против Vim»). Занятие веселое, но бессмысленное. Найдите тот редактор, который лучше всего подходит для ваших потребностей и темперамента. Красота Linux (и концепции свободно распространяемого программного обеспечения вообще) заключается в богатстве выбора пользователя.

В этой главе мы рассмотрим JOE (Joe's Own Editor) и Vim, который является потомком vi. Почему не Emacs? Emacs — замечательная программа; большая, сложная, с бесконечными возможностями настройки и расширения. Это не простой текстовый редактор, а скорее интегрированная среда. В Emacs пользователи могут читать почту и конференции Usenet, писать программы, играть в игры, создавать собственные макросы и комбинации клавиш, имитировать оконные среды при отсутствии X Window и даже консультироваться с психиатром (М-х doctor). Emacs может сделать что угодно... если вы знаете, как этого добиться. Но для тех, кому нужно просто отредактировать текстовый файл, этого многовато. Emacs «весит» более 22 Мбайт, тогда как JOE и Vim помещаются на одной дискете, да еще остается свободное место.

JOE и Vim хорошо подходят для повседневной работы по редактированию конфигурационных файлов. Конечно, они также могут использоваться для написания любых текстов — статей, веб-страниц, программ и т. д. Чем лучше вы печатаете, тем производительнее будет ваша работа. В идеальном случае руки не должны отрываться от клавиатуры, а глаза — от экрана.




Существует множество способов запуска и остановки системы Linux. Также не стоит забывать о сценариях инициализации, управляющих запуском различных процессов, и о различных уровнях выполнения системы (runlevels), в каждом из которых может работать свой набор процессов. Выполните следующую команду:

$ ps axfl

Найдите процесс с номером 1 (вывод сокращен, в вашей системе выходные данные команды будут содержать больше столбцов и строк):

UID PID PPID STAT TTY TIME COMMAND 0 1 0 S ? 0:03 init

Это init, предок всех процессов в системе Linux. Обратите внимание: идентификатор родительского процеса PPID (Parent Process ID) равен 0, потому что init является первым процессом, стартующим после запуска ядра.

Процесс загрузки Linux проходит примерно так:

  1. BIOS инициализирует оборудование и читает загрузочный сектор.
  2. Главная загрузочная запись (MBR, Master Boot Record) запускает загрузчик операционной системы, который передает управление ядру.
  3. Ядро инициализирует периферийные устройства, загружает драйверы, монтирует корневую файловую систему и вызывает /sbin/init.
  4. Программа /sbin/init запускает все процессы пользовательского уровня. Она читает /etc/inittab и переходит к активизации дополнительных сценариев, указанных в /etc/inittab.
  5. Дальнейшие действия зависят от дистрибутива. В Debian следующим выполняется сценарий /etc/init.d/rcS, который передает управление в каталог /etc/rc*.d, указанный в /etc/inittab. По умолчанию Debian работает на уровне 2, поэтому выполняются все сценарии из каталога /etc/rc2.d (запуск в стиле SysV).



В системе Linux как «живым» пользователям, так и системным процессам назначаются учетные записи (accounts), необходимые для управления привилегиями и правилами доступа.

Запомните два важнейших принципа безопасности Linux.

  1. Всегда используйте минимальный уровень привилегий, необходимый для выполнения работы.
  2. Используйте сильные пароли.

Соблюдение этих двух принципов избавит вас от многочисленных огорчений и неудач.

В Linux входит набор утилит для выполнения операций с пользователями и группами: useradd, groupadd, userdel, groupdel, usermod, groupmod, passwd, chfn и chsh. Они входят в семейство «Shadow Suite», разработанное Джулианом Фрэнсисом Хо (Julianne Frances Haugh) для улучшения защиты паролей и упрощения операций управления учетными записями. Когда-то все файлы приходилось редактировать по отдельности, а шифрованные пароли хранились в файле /etc/passwd. Но поскольку файл /etc/passwd должен оставаться доступным для чтения, хранение паролей в нем, пусть даже в зашифрованном виде, чревато потенциальными неприятностями. Скопировав этот файл, любой желающий теоретически сможет вычислить пароли. Перемещение зашифрованных паролей в файл /etc/shadow, доступный только для привилегированного пользователя root, создает полезный дополнительный уровень защиты.

Команда useradd по-разному работает в разных системах. Традиционно она включала всех новых пользователей в одну группу users(100). Все домашние каталоги становились общедоступными, потому что все пользователи принадлежали к одной группе. В Red Hat эта схема была заменена схемой «User Privacy Group». Команда useradd в Red Hat создает для каждого нового пользователя приватную группу, идентификатор которой (GID) совпадает с идентификатором пользователя (UID). Разумеется, разные пользователи обладают разными потребностями; некоторые из них могут предпочесть, чтобы их каталоги были открытыми. Фун-

8.2. Отделение обычных пользователей от системных

даментальный принцип безопасности гласит: «сначала все запретить, потом разрешать по мере необходимости».

adduser и addgroup, сценарные Perl-обертки для команд useradd и groupadd, появились относительно недавно. Эти сценарии полностью руководят вашими действиями при создании нового пользователя. Они очень удобны для создания отдельных учетных записей, но не для серийных (batch) операций (разве что если вы самостоятельно внесете изменения в сценарии adduser и addgroup).

В разделе 8.17 приведен сценарий для серийного создания новых пользователей и изменения паролей.



Содержание раздела







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий