Текст подготовлен НПО "КЛОТО"
?
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
?
Администрирование ОС UNIX - большая и сложная тема. В данном
руководстве затрагиваются лишь некоторые ее аспекты. В первую
очередь подробно рассматриваются процессы загрузки системы и ее
выключения. Цель рассмотрения - научиться управлять этими про-
цессами. Далее с той же целью рассматриваются регистрация новых
пользователей и процесс входа пользователя в систему. Следующая
тема - перегенерация системы, создание минимального варианта
системы на флоппи-диске и стримерной ленте. Кратко описана сис-
тема для интерактивного выполнения административных функций sy-
sadm(1M). В приложении описывается назначение некоторых катало-
гов и файлов.
Вне рассмотрения остались такие темы, как администрирование
принтеров, сбор и обработка статистики, работа с удаленными
системами и некоторые другие.
Ё2. ПРОЦЕСС ЗАГРУЗКИ СИСТЕМЫ
?
Ё2.1. Задание загружаемого файла
?
После включения питания станции БЕСТА на экране консольного
терминала появляется приглашение
boot:
которое выдает программа начальной загрузки, хранящаяся в ПЗУ.
Сразу же отметим, что строка, которая набирается в ответ, долж-
на заканчиваться символом <CR>.
В качестве ответа нужно задать имя файла, который будет загру-
жен в оперативную память и начнет выполняться. Вообще говоря,
файл задается с помощью конструкции
Для стандартной конфигурации станции БЕСТА устройство должно
выбираться из следующего списка:
Обычно в качестве имени_файла указывается 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) Спра-
вочника администратора.
?
Файл /etc/inittab - это таблица, которая управляет программой
init(1M) как главным диспетчером процессов. Программа init пе-
риодически просматривает строки файла inittab и, если нужно,
запускает заданные в некоторых строках процессы.
Первая строка файла inittab задает начальный уровень выполне-
ния, на который система перейдет после загрузки. Эта строка
должна иметь следующий формат:
имя:уровень_выполнения:initdefault:
Если в качестве уровня_выполнения задана двойка, после загрузки
система окажется в многопользовательском режиме. Если посмот-
реть на первую строку файла /etc/inittab , расположенного на
винчестерском диске, то окажется, что она выглядит так:
is:2:initdefault:
Файл /etc/inittab из минимального варианта системы на флоппи-
диске или ленте в качестве первой строки содержит
is:S:initdefault:
В результате после загрузки минимального варианта система ока-
зывается в однопользовательском режиме.
Последующие строки файла inittab должны иметь такой формат:
имя:уровень_выполнения:действие:процесс
Перечисленные поля имеют следующий смысл. Назначение имени -
однозначно идентифицировать строку.
Поле уровень_выполнения содержит перечень уровней, на которых
процесс из данной строки может существовать. При переходе на
новый уровень, вообще говоря, запускаются новые процессы и
уничтожается часть старых.
Поле действие определяет дисциплину обработки процесса, указан-
ного в данной строке. Программа init среди прочих распознает
следующие действия:
Эта строка будет обработана один раз при переходе
init из однопользовательского режима в многополь-
зовательский после загрузки системы. (Если дейст-
вие initdefault соответствует уровню выполнения 2,
то указанный в строке процесс будет запущен сразу
после загрузки системы). Программа init запускает
процесс, дожидается его завершения и после этого
не перезапускает процесс.
При переходе на уровень_выполнения, совпадающий с
указанным в строке, запустить процесс и ожидать
его завершения. При всех последующих просмотрах
файла inittab на том же уровне выполнения игнори-
ровать строку.
Если процесс не существует, то запустить его, не
ждать завершения (продолжать просмотр файла init-
tab), после завершения процесса перезапустить его.
Если процесс уже существует, ничего не делать и
продолжать просмотр файла inittab.
Если процесс, ассоциированный с данной строкой,
выполняется, ему посылается предупреждающий сигнал
SIGTERM и дается 20 секунд на завершение, после
чего он принудительно терминируется сигналом SIG-
KILL. Если процесс не существует, строка игнориру-
ется.
Выполнять указанный в строке процесс только при
получении 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.
?
Чтобы начать процесс выключения системы БЕСТА, следует войти с
консольного терминала в пользователя 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 секунд; такая же задержка
выполняется между финальным сообщением и запросом
подтверждения.
Изменить стандартную величину задержки. Новая за-
держка задается в секундах. Например, аргумент -g0
означает отсутствие задержки.
Уровень_выполнения передается утилите init(1М).
Система перейдет на этот уровень после всех сооб-
щений, задержек и подтверждений. Подразумеваемый
уровень есть S.
Рекомендуемые уровни_выполнения и действия при переходе на них:
0 Остановить систему, подготовив ее к безопасному
выключению питания. Выключить питание, если позво-
ляет аппаратура. Для выполнения этих действий вы-
зывается shell-процедура /etc/rc0.
Перевести систему в однопользовательский режим,
используя процедуру /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 является основной каталог пользователя.
?
Файл /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, в которую
обычно выносят обслуживающие действия, специфичные для конкрет-
ной вычислительной установки или группы установок.
?
В 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 система будет выключена без
дальнейшего вмешательства оператора. С другой стороны, при та-
ком профайле обычный переход в однопользовательский режим
также приведет к автоматическому выключению системы. Если это
нежелательно, файл /.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.
Поясним смысл некоторых настраиваемых параметров.
Размер системного буфера для блочного ввода/вывода
(в блоках по 1 Кб). В стандартной конфигурации
станции БЕСТА это значение составляет около 10%
размера оперативной памяти.
Максимальное число процессов в системе.
Число параллельных процессов, которые может запус-
тить один пользователь, не являющийся суперпользо-
вателем.
Максимальное число открытых дескрипторов файлов в
рамках одного процесса.
Максимальный размер файла (в блоках по 1 Кб), в
который пользовательский процесс может записывать
информацию.
Максимальное число очередей сообщений в системе.
Максимальный размер очереди сообщений (в байтах).
Максимальный размер одного сообщения.
Максимальное число множеств семафоров в системе.
Максимальное общее число семафоров в системе.
Максимальное число семафоров в множестве.
Максимальное число разделяемых сегментов памяти в
системе.
Максимальный размер разделяемого сегмента (в бай-
тах).
Если значение какого-либо настраиваемого параметра нужно изме-
нить, то прежде всего следует отредактировать или добавить со-
ответствующую строку в файл 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 и выполнить команду
После этого выполняется команда
создающая в каталоге /usr/src/uts файл unix - ядро новой опера-
ционной системы. При редактировании системных файлов следует
обращать внимание на правильность установки даты, поскольку
утилита make анализирует время последнего изменения файлов.
Когда новое ядро создано, нужно перезагрузить систему и в ответ
на приглашение boot: ввести
(с нажатием <CR> в конце). Будет загружено новое ядро, после
чего следует войти в систему под именем root, перейти в каталог
/usr/src/uts и выполнить команду
При этом будут выполнены два действия:
mv /unix /unixold
mv unix /
то есть старое ядро сохранится под именем /unixold, а новое пе-
реместится в корневой каталог.
Теперь новый вариант системы готов к употреблению. Теоретически
корректнее перемещение нового ядра выполнять, загрузившись с
флоппи-диска или ленты, но практически этим можно пренебречь.
Отметим, что во время работы системы желательно, чтобы ядро на-
ходилось в файле /unix, поскольку некоторые команды [например,
ps(1)] читают оттуда таблицу имен. Иными словами, если система
загружена не из файла /unix, команда ps может не работать.
Если новый вариант системы оказался неработоспособным, придется
вернуть старое ядро из файла /unixold в файл /unix.
Более детально процесс создания нового ядра ОС UNIX описан в
статье mkuts(8) Справочника администратора.
Ё7. СОХРАНЕНИЕ И ВОССТАНОВЛЕНИЕ СИСТЕМЫ
?
Станция БЕСТА в целом и магнитные накопители в частности харак-
теризуются высокой надежностью. Тем не менее необходимо иметь
на ленте хотя бы одну копию системной информации (не говоря уже
о пользовательской), чтобы защититься в первую очередь от
собственных ошибок, а также от поломок оборудования.
Сохранение и восстановление системной информации связано с ис-
пользованием минимального варианта ОС UNIX на флоппи-диске или
ленте, поэтому в следующем пункте описано, как такой вариант
получить.
Ё7.1. Создание минимального варианта системы
Ёна флоппи-диске и ленте
?
Для получения минимального варианта ОС UNIX на флоппи-диске
достаточно вставить дискету в дисковод и от имени пользователя
root выполнить команду
Утилита 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).
ЁДЛЯ ВЫПОЛНЕНИЯ АДМИНИСТРАТИВНЫХ ДЕЙСТВИЙ
?
Для интерактивного выполнения административных действий служит
меню-ориентированная утилита sysadm(1M). На верхнем уровне меню
имеются следующие возможности для выбора:
diskmgmt - меню обслуживания дисков?
Команды из этого меню позволяют выполнять различ-
ные действия со съемными дисками. Сюда входят ко-
манды форматирования, копирования дисков и исполь-
зование дисков как монтируемых файловых систем.
Меню содержит также команды для работы с несъемны-
ми носителями.
filemgmt - меню обслуживания файлов?
Команды из этого меню позволяют сохранять файлы,
копируя их на съемный диск или ленту, а также
восстанавливать файлы с этих носителей. Команды
дают также возможность получить сведения о возрас-
те и размере файлов.
machinemgmt - меню обслуживания машины?
Под обслуживанием машины здесь понимается ее вык-
лючение, перезагрузка или передача управления мо-
нитору, хранящемуся в ПЗУ.
packagemgmt - меню сопровождения пакетов?
Команды данной группы предоставляют средства для
настройки пакетов, установленных на Вашей системе
- например, системы разделения удаленных файлов
или стандартной коммуникационной сети.
softwaremgmt - меню сопровождения программных систем?
Команды данной группы позволяют устанавливать но-
вое программное обеспечение, удалять его или за-
пускать непосредственно со съемного диска.
syssetup - меню установки характеристик системы?
Команды данной группы позволяют задать дату, вре-
мя, часовой пояс, пароли для администраторов и
системных программистов, имя машины и т.д. Предос-
тавляется также возможность начальной установки
характеристик системы.
ttymgmt - меню обслуживания терминала?
usermgmt - меню для манипуляций со списком пользователей?
Команды из этого меню позволяют расширять или сок-
ращать список пользователей, изменять информацию о
группах и об отдельном пользователе.
Лучший способ узнать детали работы программы sysadm - восполь-
зоваться ей. В качестве упражнения предлагается с помощью sy-
sadm получить список 20 самых больших файлов на Вашем компьюте-
ре. Именно на большие файлы должен обращать внимание админист-
ратор, когда ощущается недостаток дискового пространства.
ЁНазначение некоторых каталогов и файлов
?
Значительная часть приведенной ниже информации специфична для
станции БЕСТА.
Профайл 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?
Файл с информацией о сеансах работы пользовате-
лей в системе. Если файл кажется слишком боль-
шим, рекомендуется опустошить его.
Каталог, используемый при установке пакетов систе-
мой sysadm.
/lib Каталог с библиотеками и файлами, используемыми
компиляторами.
Каталог, куда при коррекции файловой системы поме-
щаются ссылки на непустые, но недоступные файлы.
/mnt "Дежурный" каталог для монтирования файловых сис-
тем.
Каталог с системными разделяемыми библиотеками.
/tmp Каталог для временных файлов; очищается в процессе
загрузки системы.
/udd Каталог с пользовательской информацией.
Выполняемый файл - ядро ОС 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?
Каталог временных файлов. Используется компиля-
торами и редактором внешних связей. Очищается в
процессе загрузки системы.
Каталог утилит, специфичных для станции БЕСТА.
ЁКоманды администратора ОС 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).
ЁСводка синтаксиса команд администратора
?
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 - учет сеансов работы в системе?
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 - получение статистической информации о процессах?
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 - процедура инициализации системы?
bcopy - интерактивное копирование блоков?
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 - чистка файловой системы?
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 - остановка системы и перезагрузка?
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 время_ожидания] линия
[скорость [тип_терминала [режим_работы_с_линией]]]
-h Сразу установить подразумеваемую или заданную ско-
рость.
grpck - проверка файла групп?
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 - уничтожение всех активных процессов?
labelit - присваивание имен файловым системам?
/etc/labelit файловая_система [имя_системы имя_тома [-n]]?
-n Присвоить имя файловой системе на магнитной ленте.
Содержимое ленты теряется.
lastlogin - обновление дат последнего входа пользователей в систему?
link - создание ссылки на файл или каталог?
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 - планировщик строчных принтеров?
lpshut - терминирование планировщика строчных принтеров?
mkfs - создание файловой системы?
/etc/mkfs специальный_файл [число_блоков[:число_описателей]]
[прототип] [промежуток число_блоков_на_цилиндре]?
mkmini - создание минимальной файловой системы, достаточной для загрузки ОС UNIX?
/etc/mkmini блочное_устройство [mkfs_параметры]?
mknod - создание специального файла?
/etc/mknod имя [b] [c] старший_номер младший_номер
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 - регистрация нового пользователя?
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?
prfstat - запуск и остановка регистрационного механизма?
prtacct - распечатка файла с записями в сводном формате tacct?
/usr/lib/acct/prtacct файл ["заголовок"]?
pwck - проверка файла паролей?
/etc/pwck [файл_паролей]?
rc0 - процедура остановки системы?
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 сек]?
-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 - обновление таблицы смонтированных файловых систем?
shutacct - прекращение сбора информации о процессах?
/usr/lib/acct/shutacct ["причина"]?
shutdown - остановка системы, изменение уровня выполнения?
/etc/shutdown [-y] [-gзадержка] [-iуровень_выполнения]?
-y Отменить запрос подтверждения.
startup - возобновление сбора информации о процессах?
strace - вывод ПОТОКОВЫХ трассировочных сообщений?
strace [ид_модуля ид_устройства уровень] ...?
strclean - очистка протоколов о ПОТОКОВЫХ ошибках?
strclean [-d каталог] [-a возраст]?
strerr - демон регистрации ошибок в ПОТОКАХ?
swap - управление областями подкачки?
/etc/swap [-a устройство начальный_блок длина]
[-d устройство начальный_блок] [-l]?
-l Выдать состояние всех областей подкачки.
sync - обновление суперблока на диске?
sysadm - система меню для интерактивного выполнения функций администратора?
tic - компилятор для базы данных terminfo?
tic [-v[число]] [-c] файл?
-c Только проверить файл на наличие ошибок.
tstmode - установка драйвера устройства в тестовый режим?
/etc/tstmode режим_тестирования бесструктурное_устройство?
turnacct - переключение сбора информации о процессах?
/usr/lib/acct/turnacct [on] [off] [switch]?
uadmin - административные действия?
/etc/uadmin команда функция?
umount - размонтирование файловых систем и удаленных ресурсов?
/etc/umount файловая_система
-d Размонтировать удаленный ресурс.
umountall - размонтирование группы файловых систем?
-k Послать всем процессам, имеющим открытые файлы,
сигнал уничтожения SIGKILL.
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 Вывести номер устройства.
-s Вывести количество секторов на дорожке.
-h Вывести число головок.
-c Вывести число цилиндров.
-l Вывести длину в блоках устройства с младшим номе-
ром.
wtmpfix - устранение противоречий в записях о начале/конце сеансов?
/usr/lib/acct/wtmpfix [файл ...]?
Популярность: 18, Last-modified: Tue, 25 Nov 1997 06:59:54 GmT