Unix на рабочей станции Беста с точки зрения администратора







                          Текст подготовлен НПО "КЛОТО"

ЁСОДЕРЖАНИЕ

ґ 1. Введение ¶2 2. Процесс загрузки системы ¶3 2.1. Задание загружаемого файла 3 2.2. Процесс init. Понятие уровня выполнения 4 2.3. Файл /etc/inittab 5 2.4. Некоторые действия по инициализации 7 2.5. Проверка файловых систем 9 3. Выключение системы ¶12 3.1. Процедура /etc/shutdown 12 3.2. Процедура /etc/finito 13 4. Регистрация новых пользователей ¶14 4.1. Процедура /etc/nuser 14 4.2. Файлы /etc/passwd и /etc/group 14 5. Вход пользователя в систему ¶17 5.1. Файл /etc/profile 17 5.2. Файл .profile 18 6. Создание нового ядра ОС UNIX ¶20 6.1. Файлы io.h, master и dfile 20 6.2. Процесс перегенерации системы 22 7. Сохранение и восстановление системы ¶24 7.1. Создание минимального варианта системы на флоппи-диске и ленте 24 7.2. Запись системной информации на ленту и восстановление ее с ленты 24 8. Система меню для выполнения административных действий ¶27 Приложение A. Назначение некоторых каталогов и файлов ¶29 Приложение B. Команды администратора ОС UNIX ¶33 Приложение C. Сводка синтаксиса команд администратора ¶35

Ё1. ВВЕДЕНИЕ

ґ Администрирование ОС UNIX - большая и сложная тема. В данном руководстве затрагиваются лишь некоторые ее аспекты. В первую очередь подробно рассматриваются процессы загрузки системы и ее выключения. Цель рассмотрения - научиться управлять этими про- цессами. Далее с той же целью рассматриваются регистрация новых пользователей и процесс входа пользователя в систему. Следующая тема - перегенерация системы, создание минимального варианта системы на флоппи-диске и стримерной ленте. Кратко описана сис- тема для интерактивного выполнения административных функций sy- sadm(1M). В приложении описывается назначение некоторых катало- гов и файлов. Вне рассмотрения остались такие темы, как администрирование принтеров, сбор и обработка статистики, работа с удаленными системами и некоторые другие.

Ё2. ПРОЦЕСС ЗАГРУЗКИ СИСТЕМЫ

ґ

Ё2.1. Задание загружаемого файла

ґ После включения питания станции БЕСТА на экране консольного терминала появляется приглашение boot: которое выдает программа начальной загрузки, хранящаяся в ПЗУ. Сразу же отметим, что строка, которая набирается в ответ, долж- на заканчиваться символом <CR>. В качестве ответа нужно задать имя файла, который будет загру- жен в оперативную память и начнет выполняться. Вообще говоря, файл задается с помощью конструкции

устройство:имя_файла

Для стандартной конфигурации станции БЕСТА устройство должно выбираться из следующего списка:

a Винчестерский диск.

f Флоппи-диск.

t Стримерная лента.

r Диск в памяти.

Обычно в качестве имени_файла указывается unix, но в принципе можно, во-первых, загружать операционную систему из другого файла, а, во-вторых, можно загружать вообще не операционную систему, а свою программу (если она сумеет управиться с аппа- ратным окружением). Если в ответ на приглашение boot: ввести знак вопроса (и, ес- тественно, <CR>), на экран будет выдана справочная информация о возможных ответах. Наконец, нажатие одной клавиши <CR> эквивалентно заданию конст- рукции a:/unix, то есть файла unix, расположенного в корневом каталоге файловой системы на винчестерском диске. В последующих разделах будут описаны процедуры получения флоп- пи-дисков и лент, с которых можно выполнить загрузку. Здесь же отметим, что при загрузке с ленты автоматически создается диск в памяти, куда и переписывается содержимое ленты, после чего начинается процесс загрузки с этого диска. Нетрудно понять, что в такой конфигурации система будет работать значительно быст- рее, чем после загрузки с флоппи-диска, поэтому целесообразно иметь загружаемый вариант системы именно на ленте. Более подробно процесс начальной загрузки описан в статье bo- ot(8) Справочника администратора.

Ё2.2. Процесс init. Понятие уровня выполнения

ґ В качестве последнего шага загрузки ОС UNIX запускается процесс init - главный диспетчер процессов. Его основная задача - соз- дание и перезапуск процессов в соответствии со схемой, храня- щейся в файле /etc/inittab [см. inittab(4)]. Процесс init дол- жен существовать все время, пока функционирует система. С точки зрения процесса init система в любой момент времени на- ходится на определенном уровне выполнения. Уровень выполнения может рассматриваться как программная конфигурация системы, причем каждая конфигурация допускает существование только опре- деленной группы процессов. Процессы, запускаемые init'ом на каждом уровне выполнения, описаны в файле /etc/inittab. Уровень выполнения задается цифрой от 0 до 6 или буквой S. В последнем случае говорят, что система находится в однопользова- тельском режиме. В этом режиме активен только консольный терми- нал, за которым работа ведется от имени пользователя root. Дей- ствия, требующие монопольного доступа к компьютеру (например, переконфигурирование системы) следует выполнять именно в одно- пользовательском режиме. Обычно после загрузки системы с флоп- пи-диска или ленты она оказывается на уровне S. Уровень 2 называют многопользовательским. Это обычный режим функционирования системы, в который она попадает после загрузки с винчестера. Уровень 6 предназначен для работы процедур выключения компьюте- ра. Для остальных уровней нет стандартного предназначения. Отметим только, что уровень 3 зарезервирован за многопользовательским режимом, в котором доступны сетевые услуги. Процесс init просматривает файл /etc/inittab и запускает ука- занные там процессы, если запрашивается переход на новый уро- вень выполнения, произошла ошибка питания или завершается один из потомков init'а. Если нужно вызвать принудительный просмотр файла /etc/inittab без перехода на новый уровень, следует вы- полнить команду /etc/init q Тонкости работы процесса init изложены в статье init(1M) Спра- вочника администратора.

Ё2.3. Файл /etc/inittab

ґ Файл /etc/inittab - это таблица, которая управляет программой init(1M) как главным диспетчером процессов. Программа init пе- риодически просматривает строки файла inittab и, если нужно, запускает заданные в некоторых строках процессы. Первая строка файла inittab задает начальный уровень выполне- ния, на который система перейдет после загрузки. Эта строка должна иметь следующий формат:

имя:уровень_выполнения:initdefault:

Если в качестве уровня_выполнения задана двойка, после загрузки система окажется в многопользовательском режиме. Если посмот- реть на первую строку файла /etc/inittab , расположенного на винчестерском диске, то окажется, что она выглядит так: is:2:initdefault: Файл /etc/inittab из минимального варианта системы на флоппи­ диске или ленте в качестве первой строки содержит is:S:initdefault: В результате после загрузки минимального варианта система ока- зывается в однопользовательском режиме. Последующие строки файла inittab должны иметь такой формат:

имя:уровень_выполнения:действие:процесс

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

bootwaitґ

Эта строка будет обработана один раз при переходе init из однопользовательского режима в многополь- зовательский после загрузки системы. (Если дейст- вие initdefault соответствует уровню выполнения 2, то указанный в строке процесс будет запущен сразу после загрузки системы). Программа init запускает процесс, дожидается его завершения и после этого не перезапускает процесс.

waitґ

При переходе на уровень_выполнения, совпадающий с указанным в строке, запустить процесс и ожидать его завершения. При всех последующих просмотрах файла inittab на том же уровне выполнения игнори- ровать строку.

respawnґ

Если процесс не существует, то запустить его, не ждать завершения (продолжать просмотр файла init- tab), после завершения процесса перезапустить его. Если процесс уже существует, ничего не делать и продолжать просмотр файла inittab.

offґ

Если процесс, ассоциированный с данной строкой, выполняется, ему посылается предупреждающий сигнал SIGTERM и дается 20 секунд на завершение, после чего он принудительно терминируется сигналом SIG- KILL. Если процесс не существует, строка игнориру- ется.

powerfailґ

Выполнять указанный в строке процесс только при получении init'ом сигнала об ошибке питания. В поле процесс задается команда shell'а, которую нужно выпол- нить. Чтобы употребить в этой команде комментарий, нужно вос- пользоваться записью ;#комментарий. Обычно действие respawn сопровождает процесс getty(1M), который выдает на терминал приглашение для входа в систему. Если по ка- кой-либо причине приглашение больше выдавать не нужно (сломался терминал или вместо терминала подключили графопостроитель), действие respawn нужно заменить на off. Напротив, когда требу- ется подключить новый терминал, off заменяется на respawn. На- помним, что для немедленного просмотра init'ом измененного фай- ла /etc/inittab служит команда /etc/init q Подчеркнем, что при подключении к последовательным или парал- лельным портам новых устройств или отключении старых не требу- ется перегенерировать систему - достаточно изменить файл /etc/ inittab.

Ё2.4. Некоторые действия по инициализации

ґ Рассмотрим некоторые строки файла /etc/inittab, управляющего процессом загрузки системы на станции БЕСТА: is:2:initdefault: bc:2345:bootwait:/etc/bcheckrc /dev/console 2>&1 br::bootwait:/etc/brc >/dev/console 2>&1 r0:0:wait:/etc/rc0 >/dev/console 2>&1 r2:2:wait:/etc/rc2 >/dev/console 2>&1 co::respawn:/etc/getty console console 03::off:/etc/getty tty3 9600A 04::respawn:/etc/getty tty4 9600A Первая из строк предписывает процессу init в качестве последне- го действия по загрузке системы перейти на уровень 2. Строка bc принимается во внимание при переходе из однопользова- тельского режима на уровни со второго по пятый. При этом выпол- няется shell-процедура /etc/bcheckrc , устанавливающая часовой пояс данной вычислительной установки и проверяющая корректность файловых систем. После завершения процедуры /etc/bcheckrc процесс init переходит к следующей строке и запускает shell-процедуру /etc/brc , кото- рая заносит корневую файловую систему в таблицу смонтированных файловых систем. Напомним, что пустое содержимое поля уровень_- выполнения эквивалентно упоминанию всех уровней. Строка с именем r0 в процессе загрузки системы будет пропущена, поскольку выполняется переход не на нулевой, а на второй уро- вень; следующим запущенным процессом будет /etc/rc2. Эту shell­ процедуру стоит рассмотреть подробнее: set `who -r` if [ $9 = "S" ] then echo "The system is coming up. Please wait." elif [ -d /etc/rc2.d ] then for f in /etc/rc2.d/K* do if [ -s ${f} ] then /bin/sh ${f} stop fi done fi if [ -d /etc/rc2.d ] then for f in /etc/rc2.d/S* do if [ -s ${f} ] then /bin/sh ${f} start fi done fi if [ $9 = "S" ] then echo "\n ****** MULTI-USER MODE `/bin/date` ****** \n" fi Напомним, что команда who -r выдает информацию о текущем и пре- дыдущем уровнях выполнения, а также о времени последней смены уровней. В частности, девятым из выдаваемых слов будет предыду- щий уровень. В процессе загрузки он равен S, так что проверяе- мое условие ($9 = "S") окажется истинным и процедура выдаст со- общение о том, что система на подходе. Если бы переход на уровень 2 выполнялся не из однопользователь- ского режима, в цикле были бы запущены файлы из каталога /etc/ rc2.d, имена которых начинаются на K. Назначение этих процедур - ликвидировать процессы, которые не должны существовать на уровне 2; поэтому процедуры и запускаются с аргументом stop. Далее следует цикл, в котором с аргументом start запускаются файлы, имена которых начинаются на S. Они предназначены для вы- полнения таких инициализационных действий, как монтирование файловых систем, запуск планировщика строчных принтеров и дру- гих демонов и т.п. По поводу файлов, выполняющих действия по терминированию и/или инициализации, приняты следующие соглашения. Все подобные файлы помещаются в каталог /etc/init.d под мнемоничными именами (нап- ример, MOUNTFSYS или lineprinter). В каталогах /etc/rcn.d (n - номер уровня) создаются ссылки на соответствующие файлы из /etc/init.d с именами вида [KS]??имя_в_/etc/init.d Первая буква - K или S - показывает, для чего используется в данном каталоге файл: для терминирования или инициализации. В качестве двух следующих символов задаются цифры. Дело в том, что вместо шаблона файлов shell подставляет подходящие имена в алфавитном порядке. Чем меньше двузначное число в имени файла, тем раньше этот файл будет выполнен. Например, в каталоге /etc/rc2.d есть файлы S03MOUNTFSYS и S04RMTMPFILES. Поскольку первое из этих имен лексикографически меньше второго, сначала будут смонтированы файловые системы, а уже затем удалены вре- менные файлы. Процесс сбора информации об ошибках оборудования (файл S80errlog) будет запущен в конце цикла. Тем самым пара цифр - средство для упорядочения действий по терминированию и инициализации. Если нужно исключить какое-либо действие из циклов терминирова- ния или инициализации, нужно или удалить соответствующую ссыл- ку, или переименовать ее, чтобы она не начиналась с K или S. Можно порекомендовать при переименовании делать первую букву строчной (k или s) - тогда легко получить список исключенных действий и при необходимости вернуть то или иное действие в число выполняемых. Вернемся к рассмотрению файла /etc/inittab. После завершения процедуры /etc/rc2 init перейдет к интерпретации последующих строк. Он запустит процесс getty(1M), указанный в строке с име- нем co, но не будет ждать его завершения, поскольку в качестве действия задано respawn. Когда же процесс getty все же завер- шится (а случится это после входа пользователя в систему с дан- ного терминала и последующего выхода из нее), он (процесс get- ty) будет запущен снова. Следующая строка файла /etc/inittab будет проигнорирована, поскольку действием является off. Обра- ботка строки с именем 04 совершенно аналогична обработке строки co. Затем init будет ожидать завершения какого-либо из своих потомков, после чего вновь выполнит просмотр файла /etc/init- tab, чтобы обеспечить своевременный перезапуск процессов.

Ё2.5. Проверка файловых систем

ґ Из shell-процедуры /etc/bcheckrc вызывается утилита fsck(1M), выполняющая проверку и корректировку файловых систем в интерак- тивном режиме. Опишем эту утилиту подробнее. Обращение к fsck среди прочих может включать следующие аргумен- ты:

/etc/fsck [-y] [-n] [файловая_система ...]

Проверяемая файловая система задается именем содержащего ее специального файла. Если файловая_система не указана, проверя- ются файловые системы из списка, хранящегося в файле /etc/ checklist. По умолчанию на выполнение действий по устранению повреждений файловой системы у пользователя запрашивается подтверждение. В случае положительного ответа (yes) повреждение ликвидируется. Опции имеют следующий смысл:

-y Считать, что на все вопросы дается положительный

ответ.

-n Считать, что на все вопросы дается отрицательный

ответ. Не пытаться ликвидировать повреждения и не открывать файловую систему на запись. Утилита fsck при устранении повреждений ведет себя достаточно разумно. Рекомендуется положиться на нее и указывать опцию -y - это избавит Вас от лишних сомнений. Выявляются следующие нарушения целостности файловой системы: Є На блок имеется более одной ссылки из описателей файлов и/или списка свободных блоков. Є Блок, на который ссылается описатель файла или список свободных блоков, находится за пределами файловой сис- темы. Є Имеются некорректные счетчики числа ссылок. Є При проверке размеров: выявлено некорректное число блоков; размер каталога оказался не кратен 16. Є Обнаружен описатель файла, имеющий некорректный формат. Є Выявлены неучтенные блоки. Є При проверке каталогов: обнаружен элемент каталога, указывающий на свобод- ный описатель файла; выявлен недопустимый номер описателя файла. Є При проверке суперблока: описателей файлов оказалось более 65536; оказалось, что под описатели файлов выделено боль- ше блоков, чем есть в файловой системе. Є Обнаружено нарушение формата списка свободных блоков. Є Выявлены некорректные значения счетчиков свободных бло- ков и/или свободных описателей файлов. Непустые файлы, на которые нет ссылок, с согласия пользователя (а каталоги - обязательно) перемещаются в каталог lost+found. Если не указана опция -n, пустые файлы и каталоги удаляются. Каталог lost+found должен существовать, располагаться в корне проверяемой файловой системы и иметь свободные места для зане- сения новых элементов. Чтобы удовлетворить всем требованиям, надо перед выполнением fsck создать каталог /lost+found, запи- сать в него несколько файлов, а потом удалить их. Для стандартной конфигурации станции БЕСТА в файле /etc/check- list задан следующий подразумеваемый список проверяемых файло- вых систем: /dev/dsk/hd0s0 /dev/dsk/hd0s1 Именно они проверяются и корректируются в процессе загрузки ОС UNIX. Когда файловая система находится в некорректном состоянии, ее нельзя смонтировать. Если при попытке смонтировать флоппи-диск ОС UNIX отвечает отказом, попытайтесь исправить положение ко- мандой /etc/fsck -y /dev/dsk/fd после чего повторите попытку монтирования. К сожалению, если в некорректном состоянии оказался описатель открытого файла, утилита fsck не сможет исправить положение. Чаще всего таким открытым файлом с нарушенным числом ссылок на него оказывается /dev/console; в результате корневую файловую систему не удается привести в корректное состояние, и процесс загрузки ОС UNIX раз за разом терпит неудачу. Единственный вы- ход из создавшегося положения - загрузить минимальный вариант ОС с флоппи-диска или ленты и выполнить команду /etc/fsck -y /dev/dsk/hd0s0 Открытый файл /dev/console будет находиться не на винчестерском диске, поэтому fsck сможет скорректировать число ссылок. Практический вывод состоит в том, что если ОС UNIX не удается загрузить с винчестерского диска, следует выполнить загрузку с флоппи-диска или ленты, а затем попытаться исправить или восс- тановить файловую систему на устройстве /dev/dsk/hd0s0.

Ё3. ВЫКЛЮЧЕНИЕ СИСТЕМЫ

ґ Чтобы начать процесс выключения системы БЕСТА, следует войти с консольного терминала в пользователя down или, будучи пользова- телем root и находясь в корневом каталоге, выполнить команду /etc/shutdown или, наконец, в ответ на приглашение Console login: ввести sysadm reboot В любом случае будет использоваться процедура /etc/shutdown, которую мы и рассмотрим.

Ё3.1. Процедура /etc/shutdown

ґ Shell-процедура shutdown(1M) предназначена для перевода системы из многопользователського режима на указанный уровень (по умол- чанию на уровень S, то есть в однопользовательский режим). Перед началом действий по изменению уровня выполнения утилита посылает сначала предупреждающее, а после задержки и финальное сообщения. По умолчанию перед терминированием процессов запра- шивается подтверждение. Утилита shutdown вызывается следующим образом:

/etc/shutdown [-y] [-gзадержка] [-iуровень_выполнения]

Опциям приписан следующий смысл:

-y Отменить запрос подтверждения. Команда будет рабо-

тать без вмешательства пользователя. По умолчанию, между предупреждающим и финальным сообщениями пре- дусмотрена задержка в 60 секунд; такая же задержка выполняется между финальным сообщением и запросом подтверждения.

-gзадержкаґ

Изменить стандартную величину задержки. Новая за- держка задается в секундах. Например, аргумент -g0 означает отсутствие задержки.

-iуровень_выполненияґ

Уровень_выполнения передается утилите init(1М). Система перейдет на этот уровень после всех сооб- щений, задержек и подтверждений. Подразумеваемый уровень есть S. Рекомендуемые уровни_выполнения и действия при переходе на них:

0 Остановить систему, подготовив ее к безопасному

выключению питания. Выключить питание, если позво- ляет аппаратура. Для выполнения этих действий вы- зывается shell-процедура /etc/rc0.

1, s,

Перевести систему в однопользовательский режим, используя процедуру /etc/rc0. Разница между уров- нями S и 1 состоит в том, что на уровне S все про- цессы, порожденные init, завершены, но файловые системы не размонтированы. На уровне 1 размонтиро- ваны все файловые системы, кроме корневой, и за- вершены все пользовательские процессы, кроме кон- сольных.

6 Остановить систему и подготовиться к перезагрузке.

При входе в пользователя down происходит автоматическое выпол- нение команды /etc/shutdown -g0 то есть с нулевой задержкой начинается процесс перевода системы в однопользовательский режим.

Ё3.2. Процедура /etc/finito

ґ Shell-процедура finito(1M) служит для остановки системы и под- готовки ее к перезагрузке, если исходным уровнем выполнения яв- ляется S. Утилита finito выполняет размонтирование всех смонти- рованных файловых систем (кроме корневой), выталкивает буфера и вызывает команду init 6 В файле /etc/inittab имеется строка rb:6:wait:/etc/uadmin 2 2 >/dev/console 2>&1 6 происходит обращение к коман- де uadmin(1M) для размонтирования корневой файловой системы и подготовки к перезагрузке ОС. После того как утилита uadmin завершила работу, можно либо вык- лючить питание, либо перезагрузить ОС. Отметим, что при загрузке минимального варианта системы она оказывается в однопользовательском режиме, поэтому для ее вык- лючения нужно сразу вызывать finito (без предварительного обра- щения к утилите shutdown).

Ё4. РЕГИСТРАЦИЯ НОВЫХ ПОЛЬЗОВАТЕЛЕЙ

ґ Для регистрации новых пользователей можно воспользоваться уни- версальной административной утилитой sysadm(1M) или специальной shell-процедурой nuser(1M).

Ё4.1. Процедура /etc/nuser

ґ Shell-процедура nuser работает в диалоговом режиме. Она запра- шивает у администратора входное имя нового пользователя, группу и имя основного каталога, к которому будет добавлен префикс /udd/. Входное имя выбирает сам пользователь; не следует делать его длиннее восьми символов. Что касается имени группы, то можно рекомендовать sys для пользователей, которым время от времени нужны особые привилегии, и people для прочих. Дело в том, что член группы sys может выполнить команду bson и стать суперполь- зователем, даже не зная пароля пользователя root.

Ё4.2. Файлы /etc/passwd и /etc/group

ґ Файл /etc/passwd называется файлом паролей. В нем содержатся следующие сведения о каждом из пользователей: Є Входное имя пользователя. Є Зашифрованный пароль пользователя. Є Числовой идентификатор пользователя. Є Числовой идентификатор группы. Є Комментарий. Є Основной каталог пользователя. Є Программа, запускаемая при входе в пользователя. Файл /etc/passwd - чисто текстовый. Поля данных разделяются двоеточием. Данные, относящиеся к разным пользователям, разде- ляются символом перевода строки. Если поле пароля пусто, пароль при входе не запрашивается. Если пусто последнее из полей, запускается стандартный интерп- ретатор командного языка shell - программа /bin/sh. В качестве примера приведем несколько строк из файла /etc/ passwd для стандартной конфигурации станции БЕСТА: root:BuTHhcKTZvFt6:0:3:0000-Admin(0000):/: down::0:3:0000-Admin(0000):/:/etc/downshut sysadm::0:0:0000-Admin(0000):/usr/admin:/bin/rsh guest::100:13:USER:/usr/guest: userow:oVuwhC5zVY/ro:108:3:USER:/udd/userow: Первые три пользователя являются привилегированными, поскольку у них числовой идентификатор пользователя равен 0, однако толь- ко у пользователя root есть пароль. Пользователи guest и userow - обычные; у guest'а пароля нет. Числовой идентификатор пользо- вателя guest равен 100, пользователя userow - 108. Пользователи root, down и userow входят в группу номер 3. Пользователь sy- sadm входит в нулевую группу, пользователь guest - в группу но- мер 13. Поле комментария комментировать не будем. У пользовате- лей root и down основным каталогом является корневой; туда они и попадают при входе в систему. Для пользователя sysadm основ- ным является каталог /usr/admin, для пользователя guest - /usr/guest, для пользователя userow - /udd/userow. При входе в пользователей root, guest и userow запускается обычный shell (поле программы у них пусто). При входе в пользователя down за- пускается программа, выполняющая команду /etc/shutdown -g0 Непосредственно в файле /etc/passwd эту команду задать нельзя, поскольку поле запускаемой программы не должно содержать пробе- лов. Наконец, при входе в пользователя sysadm запускается так называемый ограниченный shell, в котором нельзя, например, сме- нить текущий каталог и список поиска или указать составное имя выполняемой команды. В качестве упражнения предлагается подумать, не нарушает ли за- щиту информации тот факт, что привилегированные пользователи down и sysadm не имеют паролей. Например, нельзя ли войти в пользователя down, прервать процесс выключения системы и ос- таться с привилегиями. Не рекомендуется редактировать файл /etc/passwd вручную. Если хотя бы одна строка этого файла будет иметь некорректный фор- мат, то все пользователи, перечисленные в последующих строках, не смогут войти в систему. Файл /etc/group содержит информацию о каждой из групп в виде строк, состоящих из следующих полей: Є Имя группы. Є Зашифрованный пароль группы. Є Числовой идентификатор группы. Є .lС.mписок (через запятую) всех пользователей, которые мо- гут перейти в данную группу по команде newgrp. Рассмотрим несколько строк из стандартного файла /etc/group: root::0:root sys::3:root,bin,sys,adm people::13: В этих строках описаны группы root, sys и people, не имеющие паролей. Отметим попутно, что в ОС UNIX не существует удобного способа работы с паролями групп. Идентификатор группы root - 0, группы sys - 3, группы people - 13. Если вспомнить предыдущий пример, в котором анализировались строки файла /etc/passwd, можно увидеть, что пользователь guest входит в группу people, а пользователь userow - в группу sys. Наконец, по команде newgrp(1) в группу root может войти только пользователь root, в группу sys - пользователи root, bin, sys и adm. В группу people может перейти только суперпользователь, так как последнее поле данной строки пусто. Разумеется, после обычного входа в систему многие пользователи (например, guest) оказываются членами груп- пы people.

Ё5. ВХОД ПОЛЬЗОВАТЕЛЯ В СИСТЕМУ

ґ Для каждого терминала, с которого разрешен вход в систему, в соответствии со строкой файла /etc/inittab, имеющей вид

n::respawn:/etc/getty ttyn характеристики

запускается процесс getty(1M). Аргументы задают имя соответст- вующего специального файла в каталоге /dev, а также скорость обмена информацией и некоторые другие начальные характеристики терминала. Характеристики задаются как метка строки в файле /etc/gettydefs. В этой строке кроме характеристик записан текст выдаваемого приглашения, который, разумеется, можно менять по своему усмотрению. Перед выдачей приглашения getty выводит на экран содержимое файла /etc/issue, предоставляя администратору возможность проя- вить перед пользователями фантазию и остроумие. Когда пользователь в ответ на приглашение вводит свое входное имя, getty запускает вместо себя процесс login(1), передавая тому входное имя в качестве аргумента. Если пользователь пра- вильно указал имя и пароль, уже login запускает вместо себя программу, заданную в последнем поле соответствующей строки файла /etc/passwd. Будем предполагать, что этой программой яв- ляется стандартный интерпретатор командного языка shell. Прежде чем shell начнет взаимодействовать непосредственно с пользователем, выполняются две shell-процедуры (если они есть): /etc/profile и $HOME/.profile, причем значением переменной ок- ружения HOME является основной каталог пользователя.

Ё5.1. Файл /etc/profile

ґ Файл /etc/profile позволяет администратору системы выполнить обслуживающие действия, нужные всем пользователям. Типичными являются: сообщение системных новостей, сообщение об имеющейся для пользователя почте, установка подразумеваемых значений для переменных окружения. Приведем фрагмент стандартного файла /etc/profile: cat -s /etc/motd export TERM ta=`tty` ta=`grep "$ta " /etc/ttytype` TERM=`expr "$ta" : '.* \(.*\)' \| "$ta"` FP=m68881 export FP DBLALIGN=YES export DBLALIGN SHLIB=YES export SHLIB if [ -r /etc/addprofile ] then . /etc/addprofile fi Сначала выводится содержимое файла /etc/motd - еще один шанс для администратора поразить всех своей изобретательностью. Следующая группа из четырех строк нужна для формирования значе- ния переменной окружения TERM. Напомним, что команда tty(1) возвращает имя специального файла, соответствующего терминалу пользователя. Затем в файле /etc/ttytype отыскивается строка, содержащая полученное имя с последующим пробелом. Строки файла /etc/ttytype выглядят так: /dev/tty1 vt100 /dev/tty3 d211 . . . /dev/tty10 vt52 . . . то есть за именем специального файла через пробел следует тип терминала, подключенного к соответствующему порту. Тип извлека- ется из строки с помощью команды expr(1) и присваивается пере- менной TERM. Если к данному порту нужно подключить терминал другого типа, достаточно отредактировать строку в файле /etc/t- tytype. Присваивания переменным окружения FP, DBLALIGN и SHLIB влияют на работу C-компилятора cc(1). Первое присваивание предписывает использовать сопроцессор вещественной арифметики, второе - вы- равнивать компоненты структур по границе 32-битного слова, третье - использовать так называемые разделяемые библиотеки вместо обычных архивных. Наконец, запускается shell-процедура /etc/addprofile, в которую обычно выносят обслуживающие действия, специфичные для конкрет- ной вычислительной установки или группы установок.

Ё5.2. Файл .profile

ґ В shell-процедуру .profile пользователь помещает инициализаци- онные действия, нужные только ему. В простейшем случае может быть пополнен список поиска: export PATH PATH=${PATH}:/etc Особого рассмотрения заслуживает следующий фрагмент файла /.profile, принадлежащего пользователю root: set `who -r` if [ "$7" = "S" -a "$9" = "2" ] then /etc/finito fi Напомним, что при переводе системы на уровень S происходит вход в пользователя root. При этом выполняется и shell-процедура /.profile. Если предыдущем уровнем был второй, проверяемое ус- ловие окажется истинным и запустится утилита finito(1M), в ре- зультате чего произойдет выключение системы. Иными словами, после входа в пользователя down система будет выключена без дальнейшего вмешательства оператора. С другой стороны, при та- ком профайле обычный переход в однопользовательский режим

init S

также приведет к автоматическому выключению системы. Если это нежелательно, файл /.profile нужно изменить или переходить на уровень S через промежуточный уровень, отличный от второго, чтобы условие "$9" = "2" оказалось ложным.

Ё6. СОЗДАНИЕ НОВОГО ЯДРА ОС UNIX

ґ Почти все файлы, необходимые для перегенерации ОС UNIX, нахо- дятся в каталоге /usr/src/uts. В первую очередь имеются в виду файлы master(4) и dfile(4), в табличной форме задающие парамет- ры ОС. Собственно процесс перегенерации выполняется под управ- лением утилиты make(1); в каталоге /usr/src/uts имеется необхо- димый для ее работы файл Makefile. Пожалуй, лишь один файл из другого каталога заслуживает упоминания в данном контексте - это включаемый файл /usr/include/sys/io.h, содержащий описание характеристик магнитных носителей.

Ё6.1. Файлы io.h, master и dfile

ґ Во включаемом файле /usr/include/sys/io.h нас будет прежде все- го интересовать описание характеристик винчестерского диска. Если на станции БЕСТА установлено два винчестерских диска по 300 Мб, то описывающие их строки могут выглядеть так: #define v_cdc300_0 0x0000,19, 0, 0, 0, 0, 3, 3, 3 #define v_cdc300_1 0x0010,19, 0, 0, 0, 0, 3, 3, 3 . . . #define l_cdc300_0 0,50000, 80000,220000, 50000,30000,\ 0,0, 0,0, 0,0, 0,0, 0,300000 #define l_cdc300_1 0,300000, 0,0, 0,0, 0,0, 0,0, 0,0,\ 0,0, 0,300000 В первых двух из приведенных строк обратим внимание на числа 0x0000 и 0x0010, задающие адрес подустройства. Напомним, что к одной плате магнитных накопителей может быть подключено до че- тырех винчестерских дисков. Следующие два оператора #define задают размеры физических дис- ков и их разбиение на логические диски. Каждая пара чисел опи- сывает один логический диск - номер начального блока и размер. Первая пара чисел говорит о том, что диск hd0s0 начинается с нулевого блока и имеет размер 50000 блоков (50 Мб). Диск hd0s1 начинается с блока 80000 и занимает 220 Мб. Диск hd0s2, отве- денный под область подкачки, располагается в промежутке между двумя первыми дисками (чтобы уменьшить пробег головок) и зани- мает 30 Мб. Нулевой размер (как в четырех последующих парах) означает отсутствие соответствующего логического диска. Нако- нец, последняя пара описывает физический диск в целом: он начи- нается с нулевого блока и имеет размер 300 Мб. На диске hd1 вы- делен только один логический диск - hd1s0 размером в 300 Мб. Если требуется изменить разбиение физических дисков на логичес- кие, прежде всего следует отредактировать приведенные строки файла /usr/include/sys/io.h. Подробнее структура этого файла описана в статье io(4) Справочника программиста. Файлы /usr/src/uts/master и /usr/src/uts/dfile содержат инфор- мацию об устройствах и о настраиваемых параметрах ОС UNIX. Под устройствами здесь понимаются в первую очередь платы, составля- ющие аппаратную конфигурацию компьютера. Подчеркнем, что смена внешних устройств, подключенных к последовательным или парал- лельным портам, не требует перегенерации системы. Файл master состоит из пяти частей, разделенных символом $ в первой колонке. Любая строка, содержащая звездочку в качестве первого непробельного символа, считается строкой комментария. Часть 1 содержит информацию об устройствах; в части 2 задаются дополнительные имена устройств; часть 3 содержит информацию о настраиваемых параметрах. В частях 4 и 5 располагается информа- ция, относящаяся к конфигурации систем только для семейства MC680x0. Файл difle можно рассматривать как дополнение и уточнение ин- формации, заданной в master'е. Файл dfile состоит из трех час- тей. Первая содержит спецификации физических устройств. Вторая - системно-зависимую информацию. Третья часть содержит информа- цию, относящуюся к конкретному микропроцессору. Чаще всего приходится изменять значения настраиваемых парамет- ров. На этом мы и сосредоточим внимание. Описание настраиваемых параметров имеется в части 3 файла master и в части 2 файла dfile. В обоих случаях описание выглядит как строка следующего формата:

имя_параметра значение

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

NBUFґ

Размер системного буфера для блочного ввода/вывода (в блоках по 1 Кб). В стандартной конфигурации станции БЕСТА это значение составляет около 10% размера оперативной памяти.

NPROCґ

Максимальное число процессов в системе.

MAXUPґ

Число параллельных процессов, которые может запус- тить один пользователь, не являющийся суперпользо- вателем.

NOFILESґ

Максимальное число открытых дескрипторов файлов в рамках одного процесса.

ULIMITґ

Максимальный размер файла (в блоках по 1 Кб), в который пользовательский процесс может записывать информацию.

MSGMNIґ

Максимальное число очередей сообщений в системе.

MSGMNBґ

Максимальный размер очереди сообщений (в байтах).

MSGMAXґ

Максимальный размер одного сообщения.

SEMMNIґ

Максимальное число множеств семафоров в системе.

SEMMNSґ

Максимальное общее число семафоров в системе.

SEMMSLґ

Максимальное число семафоров в множестве.

SHMMNIґ

Максимальное число разделяемых сегментов памяти в системе.

SHMMAXґ

Максимальный размер разделяемого сегмента (в бай- тах). Если значение какого-либо настраиваемого параметра нужно изме- нить, то прежде всего следует отредактировать или добавить со- ответствующую строку в файл dfile. Рекомендуется ознакомиться со статьями master(4) и dfile(4), в которых подробно описана структура этих файлов.

Ё6.2. Процесс перегенерации системы

ґ Чтобы понять процесс перегенерации системы во всех деталях, не- обходимо ознакомиться с утилитой make(1) и проанализировать файл Makefile в каталоге /usr/src/uts. Можно, однако, просто следовать приведенным ниже предписаниям. Будем преполагать, что файлы /usr/src/uts/master, /usr/src/uts/dfile и /usr/include/ sys/io.h уже отредактированы должным образом. Для перегенерации ОС UNIX нужно прежде всего войти в систему под именем root и выполнить команду

cd /usr/src/uts

После этого выполняется команда

make unix

создающая в каталоге /usr/src/uts файл unix - ядро новой опера- ционной системы. При редактировании системных файлов следует обращать внимание на правильность установки даты, поскольку утилита make анализирует время последнего изменения файлов. Когда новое ядро создано, нужно перезагрузить систему и в ответ на приглашение boot: ввести

a:/usr/src/uts/unix

(с нажатием <CR> в конце). Будет загружено новое ядро, после чего следует войти в систему под именем root, перейти в каталог /usr/src/uts и выполнить команду

make install

При этом будут выполнены два действия: mv /unix /unixold mv unix / то есть старое ядро сохранится под именем /unixold, а новое пе- реместится в корневой каталог. Теперь новый вариант системы готов к употреблению. Теоретически корректнее перемещение нового ядра выполнять, загрузившись с флоппи-диска или ленты, но практически этим можно пренебречь. Отметим, что во время работы системы желательно, чтобы ядро на- ходилось в файле /unix, поскольку некоторые команды [например, ps(1)] читают оттуда таблицу имен. Иными словами, если система загружена не из файла /unix, команда ps может не работать. Если новый вариант системы оказался неработоспособным, придется вернуть старое ядро из файла /unixold в файл /unix. Более детально процесс создания нового ядра ОС UNIX описан в статье mkuts(8) Справочника администратора.

Ё7. СОХРАНЕНИЕ И ВОССТАНОВЛЕНИЕ СИСТЕМЫ

ґ Станция БЕСТА в целом и магнитные накопители в частности харак- теризуются высокой надежностью. Тем не менее необходимо иметь на ленте хотя бы одну копию системной информации (не говоря уже о пользовательской), чтобы защититься в первую очередь от собственных ошибок, а также от поломок оборудования. Сохранение и восстановление системной информации связано с ис- пользованием минимального варианта ОС UNIX на флоппи-диске или ленте, поэтому в следующем пункте описано, как такой вариант получить.

Ё7.1. Создание минимального варианта системы

Ёна флоппи-диске и ленте ґ Для получения минимального варианта ОС UNIX на флоппи-диске достаточно вставить дискету в дисковод и от имени пользователя root выполнить команду

/etc/mkmini fd

Утилита mkmini(1M) написана на языке shell. В принципе она мо- жет меняться от системы к системе. В стандартной конфигурации станции БЕСТА в mkmini входят форматирование флоппи-диска, соз- дание файловой системы и перепись нужных файлов. Стандартный флоппи-диск (800 Кб) оказывается занятым почти полностью - ос- тается лишь около 30 свободных блоков. После того как получен минимальный вариант системы на флоппи­ диске, его можно скопировать на стримерную ленту командой dd if=/dev/rdsk/fd of=/dev/mt bs=256k Описанные действия выполняются в обычном многопользовательском режиме.

Ё7.2. Запись системной информации на ленту

Ёи восстановление ее с ленты ґ Для сохранения системной информации рекомендуется: Є Загрузить минимальный вариант системы с флоппи-диска или ленты. Є Смонтировать диск hd0s0 командой mount /dev/dsk/hd0s0 /mnt Є Вставить в магнитофон кассету, на которую будет выпол- няться копирование. Є Выполнить копирование командами cd /mnt find . -print | cpio -omv | strout Программа /etc/strout читает информацию со стандартного ввода и записывает ее на ленту порциями по 256 Кб. Примерно через пол- часа сохранение системной информации закончится. Для восстановления системной информации рекомендуется такая последовательность действий: Є Загрузить минимальный вариант системы с флоппи-диска или ленты. Є Смонтировать диск hd0s0 командой mount /dev/dsk/hd0s0 /mnt Є Вставить в магнитофон кассету с копией системы. Є Восстановить систему командами cd /mnt dd if=/dev/mt bs=256k | cpio -idmvu Восстановление также займет около получаса. Отметим, что если в команде cpio(1) указать шаблон файлов, можно произвести частич- ное восстановление. Если в результате разрушений файловой системы диск hd0s0 не монтируется, можно попытаться исправить положение командой fsck /dev/dsk/hd0s0 и в случае ее успешного завершения вновь произвести попытку монтирования. Если же утилита fsck выдает слишком много сообще- ний об ошибках, придется заново создать файловую систему на диске hd0s0 командой mkfs /dev/dsk/hd0s0 50000 1 216 после чего следует выполнить монтирование и полное восстановле- ние диска. Процесс сохранения и восстановления файловых систем описан так- же в статье backup(8) Справочника администратора. Сохранение и восстановление пользовательской информации можно делать проще, в обычном многопользовательском режиме, с помощью shell-процедур copall(1) и restall(1).

Ё8. СИСТЕМА МЕНЮ

ЁДЛЯ ВЫПОЛНЕНИЯ АДМИНИСТРАТИВНЫХ ДЕЙСТВИЙ

ґ Для интерактивного выполнения административных действий служит меню-ориентированная утилита sysadm(1M). На верхнем уровне меню имеются следующие возможности для выбора:

diskmgmt - меню обслуживания дисковґ

Команды из этого меню позволяют выполнять различ- ные действия со съемными дисками. Сюда входят ко- манды форматирования, копирования дисков и исполь- зование дисков как монтируемых файловых систем. Меню содержит также команды для работы с несъемны- ми носителями.

filemgmt - меню обслуживания файловґ

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

machinemgmt - меню обслуживания машиныґ

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

packagemgmt - меню сопровождения пакетовґ

Команды данной группы предоставляют средства для настройки пакетов, установленных на Вашей системе - например, системы разделения удаленных файлов или стандартной коммуникационной сети.

softwaremgmt - меню сопровождения программных системґ

Команды данной группы позволяют устанавливать но- вое программное обеспечение, удалять его или за- пускать непосредственно со съемного диска.

syssetup - меню установки характеристик системыґ

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

ttymgmt - меню обслуживания терминалаґ

usermgmt - меню для манипуляций со списком пользователейґ

Команды из этого меню позволяют расширять или сок- ращать список пользователей, изменять информацию о группах и об отдельном пользователе. Лучший способ узнать детали работы программы sysadm - восполь- зоваться ей. В качестве упражнения предлагается с помощью sy- sadm получить список 20 самых больших файлов на Вашем компьюте- ре. Именно на большие файлы должен обращать внимание админист- ратор, когда ощущается недостаток дискового пространства.

ЁПРИЛОЖЕНИЕ A

ЁНазначение некоторых каталогов и файлов

ґ Значительная часть приведенной ниже информации специфична для станции БЕСТА.

/.profileґ

Профайл root'а; выполняется не только при явном входе в пользователя, но и при переводе системы в однопользовательский режим.

/bin Каталог наиболее употребительных команд пользова-

теля.

/dev Каталог специальных файлов.

/dss Каталог Интегрированной Среды Разработки Программ

(ИСРП). Подкаталоги соответствуют компонентам ИСРП. Подкаталог delo содержит документацию по ИСРП.

/etc Каталог административных утилит и файлов:

TIMEZONEґ Файл с информацией о часовом поясе, в котором находится вычислительная установка. addprofileґ Shell-процедура, которая выполняется в процессе входа пользователя в систему. Содержит дейст- вия, специфичные для конкретной вычислительной установки или группы установок. checklistґ Список проверяемых по умолчанию файловых сис- тем. fstabґ Список монтируемых по умолчанию файловых систем. gettydefsґ Файл с характеристиками терминалов, устанавли- ваемыми процессом getty. groupґ Файл с информацией о группах пользователей. init.dґ Каталог процедур для терминирования и инициали- зации при переходе на новый уровень выполнения. inittabґ Схема работы процесса init. issueґ Файл, содержимое которого выдается на экран пе- ред приглашением к входу в систему. magicґ Файл с "магическими числами". Магическое число помогает определить вид двоичного файла. mnttabґ Таблица смонтированных файловых систем; файл не является чисто текстовым. motdґ Файл, содержимое которого выдается на экран после приглашения к входу в систему. passwdґ Файл с информацией о пользователях. profileґ Shell-процедура, которая выполняется в начале процесса входа пользователя в систему. rcn.dґ Каталог процедур для терминирования и инициали- зации, которые отрабатывают при переходе на уровень выполнения n. termcapґ Старая база данных с описаниями терминалов. Ис- пользуется некоторыми программами. ttytypeґ Таблица соответствия терминальных линий и типов подключенных к ним терминалов. wtmpґ Файл с информацией о сеансах работы пользовате- лей в системе. Если файл кажется слишком боль- шим, рекомендуется опустошить его.

/installґ

Каталог, используемый при установке пакетов систе- мой sysadm.

/lib Каталог с библиотеками и файлами, используемыми

компиляторами.

/lost+foundґ

Каталог, куда при коррекции файловой системы поме- щаются ссылки на непустые, но недоступные файлы.

/mnt "Дежурный" каталог для монтирования файловых сис-

тем.

/net Каталог сети DMFS.

/shlibґ

Каталог с системными разделяемыми библиотеками.

/tmp Каталог для временных файлов; очищается в процессе

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

/udd Каталог с пользовательской информацией.

/unixґ

Выполняемый файл - ядро ОС UNIX.

/usr Каталог, содержащий подкаталоги, необходимые для

работы системы. admґ Каталог файлов с информацией о работе системы и пользователей. Например, в файле pacct накапли- ваются сведения об используемых командах. Если файлы кажутся слишком большими, их рекомендует- ся опустошить; необходимо убедиться только, что нет процессов, работающих в данный момент с этими файлами. binґ Каталог употребительных пользовательских ко- манд. binbґ Каталог менее употребительных пользовательских команд. includeґ Каталог включаемых файлов. libґ Каталог отлаженных библиотек (системных и поль- зовательских). Подкаталог terminfo содержит ба- зу данных с описаниями терминалов. Подкаталог acct - утилиты для сбора статистики; файл holi- days из этого подкаталога содержит описание праздничных дат. mailґ Каталог почтовой службы [см. mail(1) и ma- ilx(1)]. newsґ Каталог службы новостей [см. news(1)]. spoolґ Каталог для накопления информации (например, при выдаче на принтер или при пересылке на уда- ленную систему). Подкаталог cron/crontabs со- держит файлы с описанием регулярных действий [см. cron(1)]. srcґ Каталог с информацией для перегенеарции систе- мы. tmpґ Каталог временных файлов. Используется компиля- торами и редактором внешних связей. Очищается в процессе загрузки системы.

/utilґ

Каталог утилит, специфичных для станции БЕСТА.

ЁПРИЛОЖЕНИЕ B

ЁКоманды администратора ОС UNIX

ґ В следующем перечне команды сгруппированы в соответствии с тем, какие объекты они обрабатывают. Номер раздела указан только после команд, по имени которых названа статья в Справочнике (в некоторых статьях описано несколько команд). Процедуры инициализации системы:ґ bcheckrc, brc(1M), getty(1M), init(1M), rc2(1M). Процедуры выключения системы:ґ finito(1M), rc0(1M), shutdown(1M). Переконфигурирование ОС UNIX:ґ add(1M), addconf, addkern(1M), config(1M). Отладка ОС и файловой системы:ґ crash(1M), fsdb(1M). Сбор и обработка статистической информации о работе системы:ґ acctcms(1M), acctcon1, acctcon2, acctdisk, acctdusg, acct- merg(1M), accton, acctprc1, acctprc2, acctwtmp, chargefee, ckpacct, diskusg(1M), dodisk, errdead(1M), errdemon(1M), errpt(1M), errstop(1M), fwtmp(1M), lastlogin, monacct, nulladm, prctmp, prdaily, prfdc, prfld, prfpr, prfsnap, prfstat, prtacct, runacct(1M), sa1, sa2, sadc, shutacct, startup, stra- ce(1M), strclean(1M), strerr(1M), turnacct, wtmpfix. Копирование и перемещение информации:ґ bcopy(1M), copyto, dcopy(1M), download(1M), finc(1M), frec(1M), fscv(1M), link(1M), mvdir(1M), saveto(1M), unlink, volcopy(1M). Административные действия с файлами и устройствами:ґ cleall(1M), clri(1M), dfsck, format(1M), fsck(1M), install(1M), labelit(1M), mkfs(1M), mkmini(1M), mknod(1M), mount(1M), moun- tall(1M), pitio(1M), setmnt(1M), swap(1M), sync(1M), tstmo- de(1M), umount, umountall. Получение информации о файлах и устройствах:ґ devnm(1M), ff(1M), fsstat(1M), fstyp(1M), fuser(1M), ncheck(1M), volume(1M). Работа с базой данных терминалов:ґ captoinfo(1M), infocmp(1M), tic(1M). Управление принтерами:ґ accept(1M), lpadmin(1M), lpmove, lpsched(1M), lpshut, reject. Административные действия с процессами:ґ chroot(1M), killall(1M). Администрирование пользователей:ґ grpck, nuser(1M), pwck(1M). Администрирование стандартной коммуникационной сети:ґ uucheck(1M), uucico(1M), uucleanup(1M), uugetty(1M), uusc- hed(1M), uutry(1M), uuxqt(1M). Поддержка выполнения административных действий:ґ helpadm(1M), sysadm(1M), uadmin(1M).

ЁПРИЛОЖЕНИЕ C

ЁСводка синтаксиса команд администратора

ґ accept - разрешение запросов на печатьґ

/usr/lib/accept адресат ...ґ

acctcms - получение статистики использования командґ

/usr/lib/acct/acctcms [-a [-p] [-o]] [-c] [-j] [-n] [-s] [-t] файл ...ґ

-a Выдавать информацию в символьном виде.

-p Выводить статистику только по командам,

выполненным обычными пользователями.

-o Выводить статистику только по командам, выполнен-

ным суперпользователем.

-c Производить сортировку по общему времени ЦП.

-j Объединить все команды, запускавшиеся только один

раз, под именем "***other".

-n Производить сортировку по количеству запусков ко-

манд.

-s Считать, что все последующие файлы уже имеют внут-

ренний формат acctcms.

-t Трактовать все записи как имеющие сводный формат

tacct [см. acct(4)]. acctcon1 - учет сеансов работы в системеґ

/usr/lib/acct/acctcon1 [-p] [-t] [-l файл] [-o файл]ґ

-p Выводить только информацию, содержащуюся в исход-

ных записях.

-t Использовать для незавершенных сеансов в качестве

времени их окончания наибольшее время, найденное в исходном файле. acctcon2 - учет сеансов работы в системеґ

/usr/lib/acct/acctcon2ґ

acctdisk - преобразование статистической информацииґ

/usr/lib/acct/acctdiskґ

acctdusg - выдача сведений об использовании дискового пространстваґ

/usr/lib/acct/acctdusg [-u файл1] [-p файл2]ґ

acctmerg - слияние статистической информацииґ

/usr/lib/acctmerg [-a] [-i] [-p] [-t] [-u] [-v] [файл ...]ґ

-a Порождать результаты в текстовом варианте формата

tacct.

-i Считать, что исходные записи имеют текстовый вари-

ант формата tacct.

-p Выводить исходные данные без обработки.

-t Сгенерировать одну запись, являющуюся суммой всех

исходных записей.

-u Считать ключом только идентификатор пользователя,

а не идентификатор и входное имя.

-v Порождать результаты в текстовом виде, а числовые

величины выводить в вещественном формате. accton - сбор информации о процессахґ

/usr/lib/acct/accton [файл]ґ

acctprc1 - получение статистической информации о процессахґ

/usr/lib/acct/acctprc1 [файл]ґ

acctprc2 - получение статистической информации о процессахґ

/usr/lib/acct/acctprc2ґ

acctwtmp - выдача причины завершения сеансов работы пользователейґ

/usr/lib/acct/acctwtmp "причина

add - добавление драйвера устройства или модуля потока к ядру ОС UNIXґ

/etc/add [-o вых_файл] [-m master_файл] [-d dfile_файл] [-u ядро]

[-t целевой_файл] [-s адрес_таблицы_имен] [-l] объектный_файл ...ґ

-l Использовать существующие файлы conf.o и low.o.

addconf - подготовка информации для утилиты addkernґ

/etc/addconf [-t] [-l файл] [-c файл] [-m master_файл] [-b файл]

[dfile_файл

-t Запросить краткую таблицу старших номеров символь-

ных и блочных устройств. addkern - добавление драйвера устройства или модуля потока к ядру ОС UNIXґ

/etc/addkern [-a размер] [-a выполняемый_файл] [-x адрес]

[-f адрес] [-l

-l Выдать список выделенных и активных в ядре струк-

тур типа addkern. bcheckrc - процедура инициализации системыґ

/etc/bcheckrcґ

bcopy - интерактивное копирование блоковґ

/etc/bcopyґ

brc - процедура инициализации системыґ

/etc/brcґ

captoinfo - преобразование описаний терминалов из формата termcap в формат terminfoґ

captoinfo [-v ...] [-V] [-1] [-w длина] файл ...ґ

-v Выдавать трассировочную информацию о выполнении

утилиты. При задании дополнительных опций -v будет выдаваться более детальная информация.

-V Выдать в стандартный протокол версию утилиты cap-

toinfo и завершиться.

-1 Выдавать каждое поле на отдельной строке.

chargefee - ведение счетов пользователейґ

/usr/lib/acct/chargefee входное_имя числоґ

chroot - смена корневого каталога для командыґ

/etc/chroot новый_корень командаґ

ckpacct - отслеживание размера файла /usr/adm/pacctґ

/usr/lib/acct/ckpacct [число_блоков]ґ

cleall - чистка файловой системыґ

cleallґ

clri - очистка описателя файлаґ

/etc/clri файловая_система номер_описателя ...ґ

config - конфигурирование UNIX-ядраґ

/etc/config [-t] [-l файл] [-c файл] [-m master_файл] [-b файл]

[dfile_файл

-t Запросить краткую таблицу старших номеров символь-

ных и блочных устройств. copyto - сохранение тома или файловой структуры на диске или лентеґ

/etc/copyto [hd*] [mt] [fd*] [cpio] [опции_find]ґ

crash - изучение образа системыґ

/etc/crash [-d файл_с_дампом] [-n файл_с_таблицей_имен]

[-w выходной_файлdcopy - копирование файловых систем для оптимизации времени доступаґ

/etc/dcopy [-s размещ_блоков] [-a [срок]] [-d] [-v]

[-f разм_файл_сист[:разм_списк_опис]] исходная_файловая_система целевая_файловая_системаґ

-d Оставить порядок элементов каталогов неизменным.

-v Сообщить о том, сколько файлов обработано, а также

о том, сколько свободных блоков содержат исходная и целевая файловые системы. devnm - имя устройстваґ

/etc/devnm [полное_имя ...]ґ

dfsck - проверка целостности двух групп файловых систем и интерактивная коррекция ошибокґ

/etc/dfsck [набор_опций_1] файловая_система_1 ...

- [набор_опций_2] файловая_система_2 ...ґ diskusg - сбор сведений о занятом пользователями дисковом пространствеґ

/usr/lib/acct/diskusg [-s] [-v] [-i список_имен_файловых_систем]

[-p файл_с_информацией_о_пользователях] [-u файл_находок] [файл ...]ґ

-s Считать, что исходные данные, содержащиеся в фай-

лах, уже имеют формат результатов утилиты diskusg.

-v Выдать список файлов, владельцы которых не входят

в число пользователей. dodisk - сбор информации об использовании дискового пространстваґ

/usr/lib/acct/dodisk [-o] [файл ...]ґ

-o Применить более медленную процедуру учета исполь-

зования дискового пространства каждым из пользова- телей. download - загрузка объектного файла обычного формата в указанный файлґ

download [-t смещение] [-d смещение] [-b смещение]

[-s адрес_таблицы_имен] выполняемый_файл целевой_файлґ errdead - извлечение из дампа записей об ошибкахґ

/etc/errdead файл_с_дампом [файл_с_таблицей_имен]ґ

errdemon - демон регистрации ошибок системыґ

/usr/lib/errdemon [файл]ґ

errpt - обработка зарегистрированных ошибок системыґ

errpt [-s дата] [-e дата] [-a] [-p число_страниц] [-f] [файл ...]ґ

-a Вывести детальный отчет обо всех видах ошибок.

-f В детальном отчете для блочных устройств выводить

информацию только о неисправимых ошибках. errstop - терминирование демона регистрации ошибок системыґ

/etc/errstop [файл_с_таблицей_имен]ґ

ff - вывод имен файлов и статистической информации о файловой системеґ

/etc/ff [-I] [-l] [-p маршрут] [-s] [-u] [-a число] [-m число]

[-c число] [-n файл] [-i список_номеров_описателей] файловая_системаґ

-I Не выводить номер описателя файла.

-l Выводить все маршрутные имена файлов, на которые

имеется более одной ссылки.

-s Выводить размер файла в байтах.

-u Выводить входное имя владельца файла.

finc - быстрое выборочное копированиеґ

/etc/finc [критерий_выбора] файловая_система магнитофонґ

finito - остановка системы и перезагрузкаґ

/etc/finitoґ

format - форматирование дискового томаґ

/etc/format/ бесструктурное_устройствоґ

frec - извлечение файлов, сохраненных на лентеґ

/etc/frec [-p маршрут] [-f файл_запросов] магнитофон

номер_описателя:имя ...ґ fsck - проверка целостности файловой системы и интерактивная коррекция ошибокґ

/etc/fsck [-y] [-n] [-s[число_блоков_на_цилиндре:промежуток]]

[-S[число_блоков_на_цилиндре:промежуток]] [-t файл] [-q] [-D] [-f] [файловая_система ...]ґ

-y Считать, что на все вопросы дается положительный

ответ.

-n Считать, что на все вопросы дается отрицательный

ответ. Не открывать файловую систему на запись.

-q Не выдавать сообщения о возможных ошибках в разме-

ре файлов о об удалении именованных каналов, на которые нет ссылок.

-D Проверять каталоги на наличие плохих блоков.

-f Выполнить быструю проверку. Проверяются блоки и

размеры (1 фаза) и список свободных блоков (5 фа- за).

-b Выполнять перезагрузку ОС, если корректировалась

корневая файловая система. fscv - преобразование файловых систем между процессорами MC680x0 и VAX-11/780ґ

/etc/fscv [-v] [-m] исходная_файловая_система

[целевая_файловая_система

-v Преобразовать файловую систему из формата MC680x0

в формат VAX.

-m Преобразовать файловую систему из формата VAX в

формат MC680x0. fsdb - отладчик файловых систем

/etc/fsdb файловая_система [-]ґ

- Отключить контроль корректности адресов блоков и

описателей файлов. fsstat - выдача состояния файловой системыґ

/etc/fsstat файловая_системаґ

fstyp - определение идентификатора файловой системыґ

/etc/fstyp файловая_системаґ

fuser - идентификация процессов, использующих файл или файловую системуґ

/etc/fuser [-k] [-u] файл ... [-] [[-k] [-u] файл ...]ґ

-u Выдать за идентификатором входное имя пользователя

(в скобках).

-k Послать процессам сигнал SIGKILL.

- Разделить области действия опций.

fwtmp - манипулирование записями о начале/конце сеансовґ

/usr/lib/acct/fwtmp [-ic]ґ

-ic Преобразовывать данные из текстового вида в двоич-

ный. getty - установка типа терминала, его характеристик и режима работы с линиейґ

/etc/getty [-h] [-t время_ожидания] линия

[скорость [тип_терминала [режим_работы_с_линией]]]

/etc/getty -c файлґ

-h Сразу установить подразумеваемую или заданную ско-

рость. grpck - проверка файла группґ

/etc/grpck [файл_групп]ґ

helpadm - внесение изменений в базу данных справочной службыґ

/etc/helpadmґ

infocmp - сравнение или печать информации о характеристиках терминалов, хранящейся в базе данных terminfoґ

infocmp [-d] [-c] [-n] [-I] [-L] [-C] [-r] [-u] [-s [d] [i] [l] [c]] [-v] [-V] [-1]

[-w ширина] [-A каталог] [-B каталог] [терминал ...]ґ

-d Напечатать список характеристик, по которым терми-

налы различаются.

-c Напечатать список характеристик, являющихся общими

для двух терминалов.

-n Напечатать список характеристик, отсутствующих у

заданных терминалов.

-I Использовать имена terminfo(4).

-L Использовать длинные имена, перечисленные во вклю-

чаемом файле .

-C Использовать имена termcap.

-r Преобразовывать все характеристики к виду termcap.

-u Сгенерировать описание в формате terminfo первого

из перечисленных терминалов относительно описаний остальных терминалов.

-s Отсортировать поля каждого типа в соответствии с

порядком, определяемым следующим аргументом: d оставить поля в том порядке, в каком они хра- нятся в базе данных terminfo; i отсортировать по terminfo-имени; l отсортировать по длинному C-имени; c отсортировать по termcap-имени.

-v Выдавать трассировочную информацию.

-V Выдать версию программы и завершиться.

-1 Выдавать поля по одному в строке.

init - инициализация управления процессамиґ

/etc/init [0] [1] [2] [3] [4] [5] [6] [S] [s] [Q] [q] [a] [b] [c]ґ

install - установка новых версий командґ

/etc/install [-c каталог_1] [-f каталог_2] [-i] [-n каталог_3]

[-m режим_доступа] [-u пользователь] [-g группа] [-o] [-s] файл [каталог ...]ґ

-i Игнорировать стандартный список каталогов.

-o Скопировать старую версию файла в OLDфайл.

-s Подавить выдачу всех сообщений, кроме сообщений об

ошибках. killall - уничтожение всех активных процессовґ

/etc/killall [сигнал]ґ

labelit - присваивание имен файловым системамґ

/etc/labelit файловая_система [имя_системы имя_тома [-n]]ґ

-n Присвоить имя файловой системе на магнитной ленте.

Содержимое ленты теряется. lastlogin - обновление дат последнего входа пользователей в системуґ

/usr/lib/acct/lastloginґ

link - создание ссылки на файл или каталогґ

/etc/link файл1 файл2ґ

lpadmin - конфигурирование системы накопления вывода на строчные принтерыґ

/usr/lib/lpadmin [-pпринтер [[-cкласс] [-eпринтер] [-h]

[-iинтерфейс] [-l] [-mобразец] [-rкласс] [-vустройство]]] [-xадресат] [-d[адресат]]ґ

-h Учесть подсоединение принтера к системе.

-l Считать устройство принтером-терминалом.

lpmove - переадресация запросов на печатьґ

/usr/lib/lpmove запросы адресат

/usr/lib/lpmove адресат1 адресат2ґ

lpsched - планировщик строчных принтеровґ

/usr/lib/lpschedґ

lpshut - терминирование планировщика строчных принтеровґ

/usr/lib/lpshutґ

mkfs - создание файловой системыґ

/etc/mkfs специальный_файл [число_блоков[:число_описателей]]

[прототип] [промежуток число_блоков_на_цилиндреmkmini - создание минимальной файловой системы, достаточной для загрузки ОС UNIXґ

/etc/mkmini блочное_устройство [mkfs_параметры]ґ

mknod - создание специального файлаґ

/etc/mknod имя [b] [c] старший_номер младший_номер

/etc/mknod имя

b Создать блочный специальный файл.

c Создать символьный специальный файл.

p Создать именованный канал.

monacct - подготовка сводки за указанный периодґ

/usr/lib/acct/monacct периодґ

mount - монтирование файловых систем и удаленных ресурсовґ

/etc/mount [[-r] [-f тип_фс] файловая_система каталог]

/etc/mount [[-r] [-d] ресурс каталог]ґ

-r Смонтировать только на чтение.

-d Смонтировать удаленный ресурс.

mountall - монтирование группы файловых системґ

/etc/mountall [-] [таблица_файловых_систем ...]ґ

- Использовать стандартный ввод в качестве таблицы

файловых систем. mvdir - перемещение каталогаґ

/etc/mvdir исходный_каталог целевой_каталогґ

ncheck - генерация маршрутных имен по номерам описателей файловґ

/etc/ncheck [-i номер_описателя ...] [-a] [-s] [файловая_система]ґ

-a Выводить имена . и ...

-s Выдавать имена только для специальных файлов и

файлов с правом на переустановку идентификатора пользователя. nulladm - создание файла для администратораґ

/usr/lib/acct/nulladm файлґ

nuser - регистрация нового пользователяґ

/etc/nuserґ

pitio - установка режима вывода через параллельный портґ

pitio [-c] [-lчисло_строк] [-r] [-t] [параллельный_порт]ґ

-c Установить режим Centronics.

-r Установить режим бесструктурного вывода.

-t Выдать текущий режим параллельного_порта.

prctmp - печать файла с записями о сеансахґ

/usr/lib/acct/prctmp файл ["заголовок"]ґ

prdaily - печать отчета за указанный деньґ

/usr/lib/acct/prdaily [-l] [-c] [ммдд]ґ

-l Вывести сведения о сверхактивных пользователях.

-c Вывести сведения о сверхрасточительных командах.

prfdc - сбор данных об активности компонентов ОС UNIXґ

/etc/prfdc файл [период [час_окончания]]ґ

prfld - инициализация сбора данных об активности компонентов ОС UNIXґ

/etc/prfld [файл_с_системной_таблицей_имен]ґ

prfpr - печать данных об активности компонентов ОС UNIXґ

/etc/prfpr файл [пороговое_значение

[файл_с_системной_таблицей_имен]]ґ prfsnap - добавление данных об активности компонентов ОС UNIXґ

/etc/prfsnap файлґ

prfstat - запуск и остановка регистрационного механизмаґ

/etc/prfstat on

/etc/prfstat offґ

prtacct - распечатка файла с записями в сводном формате tacctґ

/usr/lib/acct/prtacct файл ["заголовок"]ґ

pwck - проверка файла паролейґ

/etc/pwck [файл_паролей]ґ

rc0 - процедура остановки системыґ

/etc/rc0ґ

rc2 - процедура перехода в многопользовательский режимґ

/etc/rc2ґ

reject - запрет запросов на печатьґ

/usr/lib/reject [-r [причина]] адресат ...ґ

runacct - ежедневная обработка статистикиґ

/usr/lib/acct/runacct [ммдд [фаза]]ґ

sa1 - сбор и сохранение данных о функционировании системыґ

/usr/lib/sa/sa1 [сек число]ґ

sa2 - запись ежедневного отчета о функционировании системыґ

/usr/lib/sa/sa2 [-u] [-b] [-d] [-y] [-c] [-w] [-a] [-q] [-v] [-m] [-A]

[-s время] [-e время] [-i сек

-u Использование ЦП.

-b Использование буферов.

-d Использование блочных устройств.

-y Использование терминалов.

-c Использование системных вызовов.

-w Подкачка и переключение процессов.

-a Доступ к файловой системе.

-q Средняя длина очереди и процент занятости.

-v Таблицы сегментов, процессов, описателей, файлов.

-m Использование сообщений и семафоров.

-A Все данные. Эквивалентно -udqbwcayvm.

sadc - сбор и сохранение данных о функционировании системыґ

/usr/lib/sa/sadc [сек число] [вых_файл]ґ

saveto - сохранение тома или файловой структуры на диске или лентеґ

/etc/saveto [hd*] [mt] [fd*] [cpio] [опции_find]ґ

setmnt - обновление таблицы смонтированных файловых системґ

/etc/setmntґ

shutacct - прекращение сбора информации о процессахґ

/usr/lib/acct/shutacct ["причина"]ґ

shutdown - остановка системы, изменение уровня выполненияґ

/etc/shutdown [-y] [-gзадержка] [-iуровень_выполнения]ґ

-y Отменить запрос подтверждения.

startup - возобновление сбора информации о процессахґ

/usr/lib/acct/startupґ

strace - вывод ПОТОКОВЫХ трассировочных сообщенийґ

strace [ид_модуля ид_устройства уровень] ...ґ

strclean - очистка протоколов о ПОТОКОВЫХ ошибкахґ

strclean [-d каталог] [-a возраст]ґ

strerr - демон регистрации ошибок в ПОТОКАХґ

strerrґ

swap - управление областями подкачкиґ

/etc/swap [-a устройство начальный_блок длина]

[-d устройство начальный_блок] [-l

-l Выдать состояние всех областей подкачки.

sync - обновление суперблока на дискеґ

syncґ

sysadm - система меню для интерактивного выполнения функций администратораґ

sysadm [команда ...]ґ

tic - компилятор для базы данных terminfoґ

tic [-v[число]] [-c] файлґ

-c Только проверить файл на наличие ошибок.

tstmode - установка драйвера устройства в тестовый режимґ

/etc/tstmode режим_тестирования бесструктурное_устройствоґ

turnacct - переключение сбора информации о процессахґ

/usr/lib/acct/turnacct [on] [off] [switch]ґ

uadmin - административные действияґ

/etc/uadmin команда функцияґ

umount - размонтирование файловых систем и удаленных ресурсовґ

/etc/umount файловая_система

/etc/umount [-d] ресурсґ

-d Размонтировать удаленный ресурс.

umountall - размонтирование группы файловых системґ

/etc/umountall [-k]ґ

-k Послать всем процессам, имеющим открытые файлы,

сигнал уничтожения SIGKILL. unlink - удаление ссылки на файл или каталогґ

/etc/unlink файлґ

uucheck - проверка каталогов и файлов системы uucpґ

/usr/lib/uucp/uucheck [-v] [-x уровень_отладки]ґ

-v Вывести подробное объяснение того, как uucp ин-

терпретирует содержимое файла Permissions. uucico - программа пересылки файлов в системе uucpґ

/usr/lib/uucp/uucico [-r режим] [-x уровень_отладки] [-i интерфейс]

[-d общий_каталог] -s системаґ uucleanup - очистка рабочих каталогов стандартной сетиґ

/usr/lib/uucp/uucleanup [-C срок] [-D срок] [-W срок] [-X срок]

[-m цепочка_символов] [-o срок] [-s система] [-x уровень_отладкиuugetty - установка типа терминала и его характеристикґ

/usr/lib/uucp/uugetty [-h] [-t время_ожидания] [-r] линия

[скорость [тип_терминала [режим_работы_с_линией]]]

/usr/lib/uucp/uugetty -c файлґ

-h Сразу установить подразумеваемую или заданную ско-

рость.

-r Дождаться ввода символа перед выдачей приглашения.

uusched - планировщик для программы переноса файлов uucpґ

/usr/lib/uucp/uusched [-x уровень_отладки] [-u уровень_отладки]ґ

Uutry - пробная попытка контакта с удаленной системойґ

/usr/lib/uucp/Uutry [-x уровень_отладки] [-r] системаґ

-r Изменить время переспроса.

uuxqt - выполнение удаленных заданийґ

/usr/lib/uucp/uuxqt [-s система] [-x уровень_отладки]ґ

volcopy - буквальное копирование файловой системыґ

/etc/volcopy [-a] [-s] имя_файловой_системы

исходное_устройство имя_тома1 целевое_устройство имя_тома2ґ

-a Требовать явного подтверждения.

-s Использовать стандартный способ подтверждения "DEL

if wrong". volume - вывод таблицы томовґ

/etc/volume [-u] [-t] [-s] [-h] [-c] [-l] [бесструктурное_устройство ...]ґ

-u Вывести номер устройства.

-t Вывести тип диска.

-s Вывести количество секторов на дорожке.

-h Вывести число головок.

-c Вывести число цилиндров.

-l Вывести длину в блоках устройства с младшим номе-

ром. wtmpfix - устранение противоречий в записях о начале/конце сеансовґ /usr/lib/acct/wtmpfix [файл ...]ґ