Пред. Начало След.
Наверх
Сведения о документе

Начало работы с ALT Linux

Георгий Курячий


Включение и выключение компьютера

Включение компьютера и загрузка ядра

Работа компьютера от момента нажатия кнопки включения питания до выхода системы в штатный режим работы называется начальной загрузкой. Начальная загрузка происходит в два этапа: сперва загружается ядро операционной системы, которое затем выполняет самонастройку и запускает системные службы.

Первый этап — загрузка ядра — не зависит от типа операционной системы. Выбор устройства, с которого будет происходить загрузка (жёсткий диск, лазерный диск, дисковод), выполняют подпрограммы из ПЗУ компьютера — BIOS. Поиск ядра системы (возможно, нескольких) и настройку параметров ядра выполняет загрузчик, находящийся на выбранном для загрузки устройстве. Ни то, ни друге не нуждается в дополнительной настройке, пока не возникнет нештатная ситуация. Загрузчик Linux (LInux LOader, LILO) распознаёт несколько способов загрузки и несколько вариантов настройки ядра, поэтому при старте он предлагает выбрать один вариант из нескольких. В меню LILO следует выбрать linux-up.

Загрузка системы

Загрузка системы происходит автоматически на основании параметров, переданных загрузчиком, и информации, полученной при самонастройке. Каждая системная служба при запуске выводит на консоль диагностику [DONE]готово»), [PASSED]пропущено») и [FAILED]сбой»). Если всё в порядке, все сообщения должны иметь вид [DONE]. Сообщения [PASSED] возникают в случаях, когда система решает, что данную службу запускать не за чем: например, при попытке загрузить драйвер несуществующего устройства. Сообщение [FAILED] означает, что системную службу запустить по каким-то причинам не удалось.

Сообщения [PASSED] и [FAILED] не сигнализируют о том, что операционная система «испорчена», скорее — о том, что настройка или окружение компьютера изменились неожиданным для него образом. Например, если система настроена получать сетевой адрес автоматически, однако сервер, выдающий адреса, в сети отсутствует, сетевая служба выдаст сообщение [FAILED], а система продолжит обычную загрузку. Проконтролировать загрузку системы можно, изучив системные журналы, прежде всего тот, что выдаётся командой dmesg.

В процессе работы Linux активно несколько виртуальных консолей. Каждая виртуальная консоль доступна по нажатию Alt и функциональной клавиши с номером этой консоли. Так, в ALT Linux после загрузки системы функции системной консоли берёт на себя 12-я виртуальная консоль (Alt-F12). Если запущена графическая подсистема X11, она занимает седьмую консоль, а для переключения в текстовый режим описанные клавиши нужно нажимать вместе с Ctrl: Ctrl-Alt-F1, CtrlAltF2 и т. д.

Останов системы и выключение компьютера

Linux нельзя выключать, просто лишив компьютер электропитания. Множество информации, которая должна располагаться на диске, система держит в оперативной памяти для повышения быстродействия. Неожиданное выключение питания приводит к потере этой информации. Останавливать систему следует с помощью команды shutdown -h now. При этом сначала будут остановлены системные службы, затем размонтированы файловые системы, а затем (если это возможно) компьютер отключится. Если программное отключение невозможно, на экран выведется соответствующее сообщение, и питание можно отключить кнопкой Power.

Если компьютер поддерживает протокол работы ACPI, нажатие на кнопку Power приводит не к выключению электропитания, а к передаче системе ACPI-сообщения о том, что кнопка Power была нажата. При получении такого сообщения система выполняет те же действия, что и shutdown. Только в этом случае допустимо выключение кнопкой Power.

Третий вариант — нажать на клавиатуре Ctrl-Alt-Del, после чего система пойдёт на перезагрузку (останов и немедленная повторная загрузка). Эти клавиши не имеют никакого собственного действия на систему, такая реакция — свойство ядра, которое можно отключить. Дождавшись начала загрузки (например, меню LILO), вы можете выключить компьютер.

Организация компьютерного класса

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

Задачу разделяемых по сети файлов можно решить с помощью сетевой файловой системы NFS. Для этого на сервере запускается системная служба nfsd, а разделяемые по сети каталоги и их свойства записываются в файл /etc/exports. Клиент монтирует (подключает к дереву каталогов) такие каталоги так же, как файловые системы — с помощью команды mount. Постоянно используемые сетевые каталоги можно записывать, по аналогии с файловыми системами, в файл /etc/fstab. Тогда монтирование будет происходить в процессе начальной загрузки системы.

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

Выбрать профиль «Учитель» или «Ученик» можно в процессе установки системы. Для этого на этапе ??? следует использовать режим Индивидуальный выбор пакетов и установить пакет network_profile_teacher или network_profile_student для настройки по профилям «Учитель» или «Ученик» соответственно.

Профиль Учитель предоставляет полный доступ к каталогу /home/chroot/nethome и его подкаталогам. Профиль Ученик монтирует этот каталог по NFS, подключая его к каталогу /home/network. Соответствующая строка в файле /etc/fstab машины Ученик выглядит так:

teacher:/home/chroot/nethome /home/network nfs rw,sync,hard,intr,bg

Задача распространения паролей по сети решена также с помощью сетевой файловой системы. Профиль Учитель предоставляет доступ по чтению к каталогу /home/chroot/etc, который машины с профилем Ученик монтирует вместо своего каталога /etc.

Все машины, каталог /etc которых смонтирован по NFS, получают одинаковые настройки и одинаковые учётные записи пользователей. Запись в сетевую /etc разрешать нельзя, но вместе с тем некоторые файлы в /etc должны быть доступны по записи. Кроме того, большая часть настроек различных компьютеров различается или может различаться.

Для того, чтобы иметь доступ к содержимому /etc и после монтирования по сети, на машине Ученик все файлы из каталога /etc дублируются в каталоге /etclocal путём создания жёстких ссылок. Все файлы в смонтированном /etc, за исключением тех, что содержат учётные записи пользователей, представляют собой символьные ссылки на соответствующие файлы в /etclocal. Таким образом, обращение к любому файлу в смонтированном /etc приведёт к файлу в /etclocal, который, в свою очередь, есть только альтернативное имя для соответствующего файла в «настоящем», несетевом /etc.

Тем не менее эта схема не учитывает поведение отдельных служб, которые удаляют или создают файлы в /etc. Это происходит, в основном, в процессе административных действий (установка и удаление пакетов, настройка системных служб и т. п.). Поэтому для выполнения любых административных действий на машине Ученик необходимо останавливать использование удалённого /etc с помощью системного сценария /etc/init.d/etcmount stop.

Допустимо использование машин, настроенных по профилю Учитель и Ученик в отсутствие локальной сети. В этом случае процесс начальной загрузки системы на машинах может замедляться на этапе настройки сети. Монтирование /etc по сети происходит только если сеть настроена и машина Учитель доступна. Поэтому в отсутствие сети используются учётные записи из собственного /etc машины, в том числе пользователь по умолчанию student.

Настроечный сценарий network_profile

Преобразованием стандартной установки ALT Linux 2.3 Compact в соответствии с профилем Учитель или Ученик занимается сценарий /usr/sbin/network_profile. Допустим многократный запуск этого сценария или запуск его на машине с системой, перенастроенной вручную, однако в последнем случае работать согласно профилю будут только те части системы, которые настраиваются им «с нуля». Сценарий принимает один параметр: teacher — для настройки по профилю Учитель и student — для настройки по профилю Ученик.

Вне зависимости от профиля, network_profile выполняет следующие действия:

  • Определяет IP-адрес компьютера

  • Создаёт файл /etc/hosts

  • Проставляет hostname, соответствующий IP-адресу, в системные файлы настроек

  • Исправляет файл /etc/profile.d/tmpdir.sh

По команде /usr/sbin/network_profile teacher система настраивается соответственно профилю «Учитель». При этом выполняются следующие действия:

  • Настройка службы DHCP и запуск её

  • Пересоздание пользователя teacher и замена пароля суперпользователя

  • Создание окружения /home/chroot, регистрация каталогов в /etc/exports

  • Создание сетевого пользователя netuser

  • Создание стартового сценария для службы ssh_passwd и запуск её

Замечание

При пересоздании /home/chroot сетевые пользователи, их домашние каталоги и пароли пользователей уничтожаются!

По команде /usr/sbin/network_profile student система настраивается соответственно профилю «Учитель». При этом выполняются следующие действия:

  • создание записи о сетевых дисках в /etc/fstab, (все предыдущие записи о сетевых дисках уничтожаются)

  • создание стартового сценария для сетевого монтирования /etc (/etc/init.d/etcmount)

  • создание стартового сценария, который пересоздаёт локального пользователя student

  • пересоздание пользователя student и замена пароля суперпользователя

  • пересоздание каталога /etclocal

  • монтирование домашних каталогов и /etc (при перезагрузке происходит автоматически)

Получение сетевых адресов

В схеме Учитель — Ученик компьютер Учитель всегда имеет адрес, указанный в настроечном сценарии network_profile (10.10.10.1). На этой машине запускается служба настройки удалённых компьютеров по сети (dhcpd, Dynamic Host Configure Prococol Daemon). Эта служба используется для присвоения IP-адресов машинам Ученик. На компьютерный класс выделено 240 адресов из диапазона, указанного в network_profile (10.10.10).

Выданные IP-адреса хранятся в файле /var/lib/dhcp/dhcpd.leases. Если этот файл пуст, присвоение сетевых адресов происходит по такому алгоритму. Первый из включённых компьютеров Ученик получит последний адрес из диапазона (10.10.10.254), что соответствует имени student1, второй из включённых — student2 (предпоследний адрес, 10.10.10.253), и так далее. В дальнейшем dhcpd будет при выдаче IP-адреса руководствоваться файлом dhcpd.leases, а новые компьютеры будут получать адреса, ещё ни разу не выдававшиеся. Соответствие IP-адресов именам компьютеров задаётся в файле /etc/hosts.

Если возникла необходимость заново назначить IP-адреса компьютерам, их следует выключить, службу dhcpd — остановить, удалить все файлы в каталоге /var/lib/dhcp, создать новый /var/lib/dhcp/dhcpd.leases нулевой длины, запустить службу и включить компьютеры Ученик.

Пример повторной раздачи IP-адресов:
teacher# service dhcpd stop
Stopping dhcpd service: [ DONE ]
teacher# rm -f /var/lib/dhcp/*
teacher# touch /var/lib/dhcp/dhcpd.leases
teacher# service dhcpd start
Starting dhcpd service: [ DONE ]

Пользователи системы

Суперпользователь

В Linux существует ровно один пользователь, права которого существенно выше прав остальных пользователей системы. Он называется rootкорень»), или суперпользователь. Ему соответствует учётная запись с именем root и идентификатором пользователя 0. Для выполнения административных действий следует зарегистрироваться в системе под этим именем. Никаких других работ, кроме администраторских, выполнять от имени пользователя root не рекомендуется, так как цена ошибки возрастает в несколько раз.

На суперпользователя не распространяются ограничения доступа к файлам, поэтому право использовать привилегии root требует большой этической и профессиональной ответственности. Это значит, что пароль суперпользователя должен быть известен только ответственному во всех смыслах лицу. Лучше не записывать пароль суперпользователя, а если такая необходимость возникла, держать записи в недоступном месте, например, в сейфе.

Для временного выполнения действий с правами root существует команда su -. выполнять эту команду могут только члены группы wheelштурвал»). Членство в группе определяется содержимым файла /etc/group. В случаях, когда требуется передать пользователю только часть полномочий, рекомендуется применять пакет sudo.

Работа с пользователями

Добавить нового пользователя можно при помощи команды useradd входное_имя с необязательными дополнительными параметрами. Результат работы этой команды может быть весьма различен в зависимости от схемы хранения учётных записей. В ALT Linux используется схема TCB, в которой при добавлении новой учётной записи добавляется новая строка в файл /etc/passwd, новый подкаталог /etc/tcb/входное_имя и файл shadow в нём. Для совместимости с другими схемами входное_имя может содержать только латинские буквы, цифры и символ подчёркивания. Для задания полного имени пользователя можно использовать ключ -c полное имя.

Изменить пароль пользователя может либо сам пользователь, либо суперпользователь. Не задавайте пароль, который легко угадать или подобрать! В ALT Linux применена довольно строгая система проверки паролей. Эта схема различает строчные и прописные латинские буквы, цифры, и прочие символы. Хороший пароль должен быть не короче восьми символов, содержать символы хотя бы трёх видов, причём большие буквы в начале и цифры в конце в счёт не идут. Так, например, пароль Please123 считается слабым, а 1Ple2ase3 — сильным.

Разумеется, в пароль не должны входить английские слова. Однако, если этих слов не меньше трёх и разделены они не только пробелами, пароль — такой, как Be off, kid! — также считается сильным. При вводе пароля на экран ничего не выводится. Пример:

teacher# useradd -c "Аксён Викулович Омметров" axen
teacher# passwd axen
Enter new password: 
Re-type new password:
passwd: all authentication tokens updated successfully.

Удалить учётную запись, домашний каталог и почтовый ящик пользователя можно с помощью команды userdel -r входное_имя. Если опустить -r, домашний каталог и почтовый ящик не удаляются.

В процессе начальной загрузки системы, настроенной по профилю «Ученик», автоматически удаляется и вновь заводится учётная запись student. Домашний каталог и почтовый ящик также удаляются. Для того, чтобы пересоздать пользователя student вручную, необходимо запустить стартовый системный сценарий /etc/init.d/mkstudent start.

Для изменения параметров существующей учётной записи используйте утилиту usermod. В частности usermod -L входное_имя временно запрещает использование соответствующей учётной записи, а usermod -U входное_имя — отменяет запрет.

Работа с сетевыми пользователями

Если администратор машины Учитель воспользуется командой chroot /home/chroot, он получит окружение, в котором /etc соответствует /home/chroot/etc, а /nethome — /home/chroot/nethome. Добавление и удаление пользователей в этом окружении приведёт к изменению учётных записей в /home/chroot/etc, которые распространяются на все машины Ученик. По умолчанию создаётся один пользователь netuser с паролем, указанным в настроечном сценарии network_profile. Пример:

Добавление сетевого пользователя:
teacher# root /home/chroot useradd входное_имя
Изменение пароля сетевому пользователю:
teacher# chroot /home/chroot passwd входное_имя
Удаление сетевого пользователя:
teacher# chroot /home/chroot userdel -r входное_имя

Сетевой пользователь может и сам изменить себе пароль. Для этого нужно воспользоваться службой Secure Shell, запущенной на машине Учитель в том же окружении и с использованием нестандартного сетевого порта 2222. Этой службой заведует стартовый сценарий /etc/init.d/ssh_passwd.

Пример изменения пароля по сети (никакие поля, кроме поля входное_имя, изменять не надо):

student1$ ssh -t -p 2222 входное_имя@teacher passwd
входное_имя@teacher's password: 
Changing password for входное_имя.
Enter current password: 
Enter new password: 
Re-type new password:
Connection to teacher closed.

В приведённом примере ssh — команда доступа к службе Secure Shell,-p 2222 означает использование порта 2222, -t — использование особых свойств терминальной линии (иначе пароль будет выводиться на экран), входное_имя@teacher — подключение к компьютеру teacher от имени пользователя входное_имя, а passwd — выполнить на удалённой машине команду passwd. Обратите внимание, что старый пароль пользователя входное_имя необходимо вводить дважды: один раз — при регистрации в службе sshd (Secure Shell), другой раз — команде passwd.

Обслуживание системы

Установка программных продуктов

Непосредственной установкой и удалением программных продуктов (пакетов) в ALT Linux занимается утилита rpm. Однако администратору использовать её неудобно, потому что большинство пакетов не могут нормально работать, если в системе не установлены некоторые другие, поэтому требуется сначала установить их. Те, в свою очередь, могут зависеть ещё от каких-нибудь пакетов, и так далее. Решением этой проблемы занимаются утилиты семейства apt: при установке одного пакета вычисляются также все, от которых он зависит, после чего в систему добавляется набор пакетов, необходимый для работы.

Кроме того, apt может брать пакеты для установки из нескольких источников. Все источники перечисляются в файле /etc/apt/sources.list. Для добавления каждого дистрибутивного CD в список источников пользуйтесь командой apt-cdrom add. Поиск в источниках пакета, описание которого содержит определённую подстроку осуществляется командой apt-cache search подстрока. Поиск лучше не производить от имени суперпользователя, так как, для совместимости с системными сценариями, пользователю root устанавливается только английский язык интерфейса. Для установки пакета в систему служит команда apt-get install имя_пакета. Пример:

teacher$ apt-cache search CDR
cdda2wav - Утилита для копирования треков с Audio CD
cdrecord - Консольная утилита для записи CD/DVD
k3b - Программа записи CD
mkisofs - Утилита для создания образов ISO9660
xcdroast - Графическая программа для создания CD
teacher$ su -   
Password: 
teacher# apt-get install xcdroast
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  cdda2wav
The following NEW packages will be installed:
  cdda2wav xcdroast
0 upgraded, 2 newly installed, 0 removed and 1 not upgraded.
Need to get 0B/2056kB of archives.
After unpacking 4749kB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 cdrom://Junior2.3 ALTLinux/main cdda2wav 5:2.0-alt4 [206kB]
Get:2 cdrom://Junior2.3 ALTLinux/main xcdroast 6:0.98alpha15-alt2 [1849kB]
Fetched 2056kB in 0s (11.8MB/s)
Committing changes...
Preparing... ###################################################### [100%]
1: cdda2wav  ###################################################### [ 50%]
2: xcdroast  ###################################################### [100%]
Done.

Для работы с пакетами с помощью графического интерфейса можно использовать программу synaptic.

При использовании системы с профилем Ученик перед выполнением каких-либо административных действий необходимо остановить использование удалённого /etc с помощью системного сценария /etc/init.d/etcmount stop.

Переполнение файловых систем

Если в домашних каталогах пользователей (особенно сетевых) накопится слишком много ненужных файлов, места для нужных файлов может не хватить. Информация по заполненности файловых систем выводится командой df (disk free, свободное место на диске). Если поле Дост или Исп% содержат нулевое или отрицательное значения, изменять такую файловую систему разрешено только суперпользователю. Рекомендуется выявить, в каком подкаталоге содержится больше всего ненужных данных, и попросить хозяина почистить его (а не то сделать это в приказном порядке, применив права суперпользователя). Для определения размера каталогов можно использовать утилиту df.

Пример анализа файловой системы:

teacher$ df
Файловая система      Разм  Исп  Дост  Исп% смонтирована на
/dev/hda1             2,3G  1,5G  728M  67% /
/dev/hda3             1,5G  1,4G   48M  96% /home
$ su -
Password: 
# du --max-depth=1 /home/chroot/nethome
5.4M    /home/chroot/nethome/alex
2.7G    /home/chroot/nethome/greedy
4.0M    /home/chroot/nethome/netuser
2.7G    /home/chroot/nethome
# du --max-depth=1 -k /arc/home/george | sort -n | tail -4
25314   /home/chroot/nethome/greedy/Pass
56106   /home/chroot/nethome/greedy/.phoenix
2608536 /home/chroot/nethome/greedy/pictures
2764538 /home/chroot/nethome/greedy

В приведённом примере явным пожирателем свободного места выступает хозяин каталога /home/chroot/nethome/greedy (2,7 гигабайта) — скорее всего, пользователь greedy — причём более 2,5 гигабайтов приходится на единственный подкаталог /home/chroot/nethome/greedy/pictures.

Обновление системы

Установленную и работающую на машине систему требуется обновлять только если обновления исправляют недостатки в системе безопасности (т. н. security updates). Кроме того, может потребоваться обновление достаточно старой системы для совместимости с новыми форматами файлов или сетевыми протоколами. Обновление списка пакетов производится с помощью команды apt-get update, а обновление самой системы в соответствии с обновлённым списком — с помощью apt-get dist-upgrade.

Пред. Начало След.
Наверх
Сведения о документе