Глава 7. Основы работы в Linux

Антон Бояршинов, Вадим Виниченко, Георгий Курячий, Кирилл Маслинский, Максим Отставнов, Мэтт Уэлш

Содержание

Начало работы с ALT Linux 2.4 Master
Включение и выключение компьютера
Пользователи системы
Обслуживание системы
Работа с командной строкой
Командные оболочки (shells)
Пакет coreutils
Поиск
Терминалы
Работа с файлами
Права доступа в системе Linux
Пользователи и группы
Виды прав доступа
Права доступа и администрирование системы
Основные команды
Графический интерфейс
Оконная система X и XFree86
Цветной бутерброд
Чистая X
Менеджеры окон
Оконные менеджеры BlackBox и FluxBox
Оконный менеджер WindowMaker
Оконный менеджер IceWM
Интегрированные графические среды
GNOME
KDE
Зачем нужны легкие среды?
Графические утилиты

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

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

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

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

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

Первый этап — загрузка ядра — не зависит от типа операционной системы. Выбор устройства, с которого будет происходить загрузка (жёсткий диск, лазерный диск, дисковод), выполняют подпрограммы из ПЗУ компьютера — 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 существует ровно один пользователь, права которого существенно выше прав остальных пользователей системы. Он называется 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, домашний каталог и почтовый ящик не удаляются.

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

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

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

Непосредственной установкой и удалением программных продуктов (пакетов) в 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.