Жанр: Учеба
SCO: Пособие администратора системы Unix
...а или ошибки ввода-вывода. С помощью вы-
бора System-"Audit-"Disable в sysadmsh прекратите контроль,
если это еще не сделано. Проанализируйте причину проблемы и
найдите решение, прежде чем возобновлять контроль.
Authentication database contains an inconsistency
(Несовместимость в базе данных аутентификации)
Это сообщение появляется при выполнении одной из программ,
связанной с TCB или с защищенной подсистемой. Под вопросом
оказывается целостность базы данных аутентификации. Эта ба-
за данных состоит из базы данных защищенных паролей, базы
данных управления терминалами, базы данных управления фай-
лами, базы данных управления командами, базы данных защи-
щенных подсистем и файла системных параметров, принимаемых
по умолчанию; сообщение относится ко всем этим компонентам.
Здесь либо отсутствует ожидаемый элемент данных, либо не-
корректны объекты в некотором элементе. Данное сообщение
носит неопределенный характер, и сделано это намеренно.
Внимание пользователя к проблеме возбуждено, но достаточной
информации о причине ошибки ему не дается, чтобы дать поль-
зователям возможность исследовать проблему целостности в
границах секретности. Действительная причина проблемы может
быть обнаружена в контрольном журнале, если для пользовате-
ля, сгенерировавшего сообщение, была разрешена регистрация
событий базы данных.
Проблемы авторизации
You do not have authorization to run ... .
(У вас нет авторизации на выполнение ...)
Данная команда является частью защищенной подсистемы. Для
этой подсистемы Администратор аутентификации не дал вам ав-
торизацию ядра, необходимую для выполнения этой команды
и/или связанных с ней команд. Администратор аутентификации,
используя выбор Accounts-"User-"Examine-"Authorizations в
sysadmsh, предоставляет такую авторизацию или отказывает в
ней.
Проблема: Выполняемая вами команда не дает нужной вам полной
информации, или вы не можете выполнить какие-либо действия.
Вы знаете, что еще существуют данные, которые можно получить или
запросить.
Команда может быть частью защищенной подсистемы. Хотя вы не
лишены доступа к команде полностью, вы не можете использо-
вать все ее опции или увидеть все данные. Как и в вышеупо-
мянутом случае, Администратор аутентификации должен предос-
тавить дополнительные авторизации.
- 5-62 -
ФУНКЦИОНИРОВАНИЕ ДЕМОНОВ В НАДЕЖНОЙ СИСТЕМЕ
Поскольку операционная система дополнена средствами надежности
для улучшения учитываемости, идентификации и аутентификации
и уменьшения привилегий, немного изменяется система создания
и сопровождения демонов, выполняющихся в виде фоновых процессов.
В данном разделе отмечены те средства, которые затрагивают системные
демоны, и приводятся примеры процедурных и программных
изменений, которые необходимо внести для того, чтобы вводить новые
демоны в безопасную систему и правильно их выполнять. Благодаря
этому демоны запускаются с соответствующей идентификацией и
привилегиями, не сталкиваются с проблемами при изменении работы
системы из-за средств секретности, и правильно обрабатывают граничные
условия и сбойные ситуации.
Принцип учитываемости для операционной системы гласит, что
каждый процесс должен быть снабжен постоянным идентификатором -
регистрационным идентификатором пользователя (LUID). Единственное
исключение из этого правила составляют процессы, которые сами
проставляют идентификатор в процессах, а именно программы
init(M), login(M) и cron(M). Все надежные утилиты либо проставляют
свой LUID (например, auditd(ADM)), либо считают, что их
LUID был проставлен до их выполнения (например, lpsched(ADM)).
Системные вызовы setuid(S) и setgid(S) заканчиваются неудачно,
если LUID не установлен.
Вы как администратор должны обеспечить предоставление LUID
каждому вводимому демону, если он стартует из системных файлов
запуска (/tcb/files/rc?.d/*). Правильная процедура заключается в
установке файлов /etc/passwd и /etc/group с надлежащими бюджетами
псевдо-пользователя и группы, а также элемента базы данных
защищенных паролей для данного бюджета. Если демон должен стартовать
из сценария запуска, добавьте в него строку (см. ниже),
задающую выполнение программы из su(C), так чтобы идентификация
процесса была установлена правильно. Это та же процедура, что и
выполнение демонов в некотором бюджете с помощью традиционных
сценариев запуска. Например, демон устройства построчной печати
lpsched стартует с помощью следующей строки:
/tcb/bin/su - lp -c /usr/lib/lpsched " /dev/null 2"&1
Программа su дополнена логикой установки LUID для процесса в
случае, если он еще не установлен.
Заметим, что стандартный вывод и стандартная ошибка в приведенной
команде были переназначены в фиктивное устройство. В
операционной системе имеется возможность, которая затрудняет обработку
консольного вывода от демона, и вы должны соответственно
планировать вывод демона. Для любого терминального устройства
может быть выдан новый системный вызов stopio(S), который введен
для того, чтобы подсистеме идентификации и аутентификации было
легче предотвращать обман при входе в систему. Когда пользова.
- 5-63 -
тель выходит из системы, процесс getty, возрождаемый на данной
линии терминала, вызывает stopio с именем терминального устройства
в качестве аргумента. Все процессы, в которых это устройство
открыто, уничтожаются (сигнал SIGHUP), если они пытаются
вновь писать в это устройство. Демоны, выполняющие запись на
консоль, получают этот сигнал, если выход из системы произошел
на консоли в период между запуском демона и его выводом. Так как
большинство демонов игнорируют SIGHUP, вывод их сообщений просто
теряется. Поэтому вам надо переназначить вывод демона в файл,
если его нужно сохранить, или в фиктивное устройство, как в нашем
примере.
Процессы в операционной системе выполняются, имея набор авторизаций
ядра, которые управляют особыми правами процесса на
определенные привилегированные системные действия. Если демон
должен выполнить действие, требующее наличия одной из таких привилегий,
данный бюджет должен быть установлен таким образом,
чтобы процесс демона обладал такими привилегиями. Авторизации
ядра описываются в пункте "Авторизации" раздела "Средства обеспечения
безопасности системы" данной главы. Если демон выполняет
другие программы SUID, он должен обладать авторизацией execsuid,
а для выполнения программ и доступа к файлам вне текущего каталога
запуска (подробнее см. promain(M)) - авторизацией nopromain.
Если процесс создает файлы с битом SUID, он должен иметь авторизацию
chmodsugid. Если он использует chown, чтобы отдавать файлы,
он должен иметь авторизацию chown. Процессы, которые не установлены
с помощью TCB, не должны выполняться с какой-либо авторизацией
контроля (audit). Остальные авторизации предназначены
для особых случаев и не должны выдаваться демонам, не принадлежащим
TCB.
И, наконец, последнее, что может повлиять на работу демонов,
- это новая семантика, связанная со sticky-каталогами. Если
режим каталога включает бит сохранения текста (sticky-бит), то
только владелец файла может удалить его из этого каталога. Демоны,
манипулирующие временными каталогами, могут работать неправильно,
если файлы, которые они могли (как они считали) удалять,
на самом деле не могут быть удалены.
Из этой ситуации можно выйти двумя способами. Вначале удалите
sticky-бит каталога. Это решит проблему с демоном, но пользователей
следует предостеречь о возможных неприятностях с секретностью,
если такой каталог будет использоваться для хранения
временных файлов. Другой способ состоит в том, чтобы модифицировать
демон и соответствующую ему программу диалоговой документации
согласно новым условиям совместного использования файлов. В
этой второй ситуации предполагается, что вам доступен исходный
код и у вас есть знания и возможности, необходимые для модификации
прикладной программы.
Следует внимательно рассмотреть программы всех демонов и
убедиться, что они выполняются правильно и безопасно. Прежде чем
предоставлять демон в общее пользование, его нужно тщательно
протестировать в управляемой среде и проверить, правильно ли он
работает. Тем меньше проблем с секретностью будет введено в систему,
и тем меньше сюрпризов ожидает пользователей, пытающихся
воспользоваться демоном и получающих непредвиденные результаты.
- 5-64 -
ВКЛЮЧЕНИЕ ЗАЩИТЫ С ПОМОЩЬЮ КОДОВОГО ПАРОЛЯ
В случае необходимости вы можете задать специальные кодовые
пароли (dial-in passwords) для выбранных линий tty, которые вводились
бы пользователями определенных классов. Информацию о регистрации
в системе, в том числе время последнего соединения,
можно сохранить для последующего использования.
Конкретные коммутируемые линии, требующие задания паролей,
определены в файле /etc/dialups. Его формат - одно имя устройства
tty для каждой линии; например:
/dev/tty1A
/dev/tty5C
Актуальные кодовые пароли находятся в файле /etc/d_passwd.
Формат такого пароля - тот же, что и используемый в файле
/etc/passwd. Первое поле ("имя пользователя") в /etc/d_passwd -
на самом деле не имя пользователя, а имя программы командного
процессора (например, /bin/sh), использованной в /etc/passwd.
Если командный процессор регистрации пользователя, пытающегося
войти в систему (по линии tty из списка /etc/dialups) включен в
/etc/d_passwd, то пользователь получает приглашение ввести кодовый
пароль, хранящийся в /etc/d_passwd.
При создании кодового пароля используется следующий синтаксис:
passwd -d dialname
Измените пароль для командного процессора кодового вызова с
именем dialname (включенного в /etc/d_passwd). Если dialname начинается
с косой черты ("/"), то ему должно соответствовать полное
имя командного процессора. В противном случае будет изменен
пароль для каждого командного процессора с базовым именем
dialname. Только супер-пользователь может менять пароль командного
процессора кодового вызова.
- 5-65 -
РАЗРЕШЕНИЕ ПОЛЬЗОВАТЕЛЯМ МОНТИРОВАТЬ ФАЙЛОВЫЕ СИСТЕМЫ
Командой mount может пользоваться только супер-пользователь.
Однако супер-пользователь в случае необходимости может задать
параметры, определяющие для некоторых файловых систем возможность
их монтирования пользователями по команде mnt(C), включая
возможность использования пароля на доступ.
Для каждой файловой системы должна существовать строка в
файле /etc/default/filesys. Вот примерный набор таких строк:
bdev=/dev/root cdev=/dev/rroot mountdir=/ \
desc="The Root Filesystem" rcmount=no mount=no
bdev=/dev/u cdev=/dev/ru mountdir=/u rcmount=yes \
fsckflags=-y desc="The User Filesystem"
bdev=/dev/x cdev=/dev/rx mountdir=/x mount=yes \
rcmount=yes fsckflags=-y desc="The Extra Filesystem"
Проще говоря, эти строки определяют следующее:
Файловая Момент Может монтировать
система монтирования пользователь?
----------------------------------------------------
root при загрузке нет
/u в мультипользователе нет
/x любое время да
Если вы хотите, чтобы любую некорневую файловую систему
могли монтировать пользователи, просто добавьте "mount=yes" в
строку для этой файловой системы. Кроме того, когда команда mnt
активизируется без аргумента (имя файловой системы), программа
проверит все некорневые файловые системы - можно ли их монтировать,
- и если можно, она это сделает. В случае опции
"mount=prompt" программа для каждой файловой системы будет спрашивать
пользователя, хочет ли он ее монтировать, если монтирование
разрешено.
Для файловых систем также обеспечена защита по паролю, с
помощью опции -f команды passwd(C). Например, пароль для файловой
системы /u создается таким образом:
passwd -f /dev/u
Подробнее о команде mnt, в том числе полный список опций,
см. в описании mnt(C) в "Справочнике пользователя" (User's
Reference).
- 5-66 -
АВТОРИЗАЦИЯ ИСПОЛЬЗОВАНИЯ КОМАНД ПЛАНИРОВАНИЯ ЗАДАНИЙ
В данном разделе описывается, как разрешить или запретить
пользователям использовать команды планирования заданий. Выбор
Jobs-"Authorization в sysadmsh содержит функции авторизации.
Кроме того, можно управлять командами at и batch, создавая файлпрототип,
определяющий среду выполнения этих команд. Сами команды
описаны в разделе "Использование команд планирования заданий:
at, cron и batch" в "Руководстве пользователя" (User's Guide).
Изменение авторизации на планирование заданий, принятой по
умолчанию
Начальная конфигурация системы устанавливается таким образом,
что использование команд планирования заданий разрешено
только для root, а доступ пользователей отвергается.
Изменение параметров cron, принятых по умолчанию
Чтобы изменить параметры cron, принимаемые системой по
умолчанию, сделайте в sysadmsh следующий выбор:
Jobs-"Authorize-"Scheduled-"Default
На экране появятся три "радио-клавиши":
None Выполнение не разрешено никаким пользователям
Allow Всем пользователям разрешено выполнять cron
Deny Всем пользователям запрещен доступ к команде cron
Текущий режим выделен повышенной яркостью.
С помощью клавиш перемещения курсора высветите нужный режим,
или введите его первую букву. Помните, что и отдельным
пользователям можно разрешить/запретить доступ (это описано ниже).
Установленные значения для отдельных пользователей имеют
приоритет по сравнению с системными значениями, принятыми по
умолчанию.
- 5-67 -
Изменение параметров at/batch, принятых по умолчанию
Чтобы изменить параметры at/batch, принимаемые системой по
умолчанию, сделайте в sysadmsh следующий выбор:
Jobs-"Authorize-"Delayed-"Default
На экране появятся три "радио-клавиши":
None Выполнение не разрешено никаким пользователям
Allow Всем пользователям разрешено выполнять at/batch
Deny Всем пользователям запрещен доступ к at/batch
Текущий режим выделен повышенной яркостью.
С помощью клавиш перемещения курсора высветите нужный режим,
или введите его первую букву. Помните, что и отдельным
пользователям можно разрешить/запретить доступ (это описано ниже).
Установленные значения для отдельных пользователей имеют
приоритет по сравнению с системными значениями, принятыми по
умолчанию.
Разрешение/запрещение использования cron отдельными пользователями
Чтобы изменить параметры cron, принимаемые системой по
умолчанию, сделайте в sysadmsh следующий выбор:
Jobs-"Authorize-"Scheduled-"User
Курсор перемещается в поле User:. Введите имя пользователя,
или нажмите "F3" для получения списка возможных пользователей.
Когда имя пользователя выбрано, на экране появятся следующие
"радио-клавиши":
Allow Данному пользователю разрешено выполнять cron
Deny Данному пользователю запрещен доступ к cron
С помощью клавиш перемещения курсора высветите нужный режим,
или введите его первую букву. Установленное значение перекрывает
системное значение, принятое по умолчанию.
- 5-68 -
Просмотр пользовательских разрешений на cron
Чтобы посмотреть список пользователей, которым разрешено/запрещено
пользоваться cron, нужно в sysadmsh выбрать
Jobs-"Authorize-"Scheduled-"View
Если по умолчанию в системе принято allow, то на экран выводится
список пользователей, которым доступ запрещен; если deny,
то список пользователей, которым доступ разрешен.
Разрешение/запрещение использования at/batch отдельными
пользователями
Чтобы изменить параметры at/batch, принимаемые системой по
умолчанию, сделайте в sysadmsh следующий выбор:
Jobs-"Authorize-"Delayed-"User
Курсор перемещается в поле User:. Введите имя пользователя,
или нажмите "F3" для получения списка возможных пользователей.
Когда имя пользователя выбрано, на экране появятся следующие
"радио-клавиши":
Allow Данному пользователю разрешено выполнять at/batch
Deny Данному пользователю запрещен доступ к at/batch
С помощью клавиш перемещения курсора высветите нужный режим.
Установленное значение перекрывает системное значение, принятое
по умолчанию.
Просмотр пользовательских разрешений на at/batch
Чтобы посмотреть список пользователей, которым разрешено/запрещено
пользоваться at/batch, нужно в sysadmsh выбрать
Jobs-"Authorize-"Delayed-"View
Как и в случае с cron, если по умолчанию в системе принято
allow, то на экран выводится список пользователей, которым доступ
запрещен; если deny, то список пользователей, которым доступ
разрешен.
- 5-69 -
Использование файлов среды для команд at/batch
Можно также определить среду, в которой будут выполняться
команды at и batch. Для редактирования файлов-прототипов at и
batch используются, соответственно, следующие выборы sysadmsh:
Jobs-"Authorize-"Environment-"At
Jobs-"Authorize-"Environment-"Batch
Эти опции редактируют файлы /usr/lib/cron/.proto (at) или
/usr/lib/cron/.proto.b (batch). Эти файлы помещаются в начале
сценария командного процессора, формируемого для всех заданий at
и batch. Этот сценарий должен соответствовать обычному синтаксису
/bin/sh и содержать некоторые переменные, специфические для
файла-прототипа. Это следующие переменные:
$d Текущий каталог пользователя в момент запуска
$l Значение ulimit для пользователя в момент запуска
$m Значение umask для пользователя в момент запуска
$t Время (в секундах, считая от 1 января 1970 г.) начала
выполнения сценария
$" Эту переменную замещает весь сценарий, представляемый
пользователем. Обычно она является последней в файле,
после сформированного вами пролога. Если вы решили
включить информацию в файл после этой переменной, сце-
нарий командного процессора может кончить работу, не
дойдя до нее.
- 5-70 -
Примеры использования файлов среды
Имеется много путей использования файлов-прототипов; вот
два примера.
1. Выполнение заданий в некоторой очереди с меньшим приоритетом,
используя команду nice(C):
nice -5 /bin/sh/ "" 'END_OF_FILE'
$"
END_OF_FILE
2. Очередь для выполнения команд через альтернативный командный
процессор:
/bin/csh "" 'END_OF_FILE_'
$"
END_OF_FILE
ГЛАВА 6
ДУБЛИРОВАНИЕ ФАЙЛОВЫХ СИСТЕМ
Введение 6-1
Стратегии дублирования с использованием sysadmsh 6-2
Использование авторизации backup для дублирования 6-2
Дублирование на гибких дисках и большие системы 6-2
Краткие сведения об используемых утилитах 6-3
Подготовка к запланированному дублированию 6-4
Составление расписания дублирования 6-4
Маркировка резервных копий 6-8
Ведение журнала 6-9
Выполнение запланированного дублирования 6-11
Использование отформатированного носителя 6-11
Запуск дублирования 6-11
Выполнение незапланированного дублирования 6-14
Проверка резервной копии 6-17
Получение листинга дублирования 6-19
Восстановление отдельных файлов и каталогов с резервной
копии 6-21
Восстановление всей файловой системы с томов cpio 6-25
Восстановление всей файловой системы с томов xbackup 6-25
Описание уровней дублирования 6-32
Принципы уровней инкрементного дублирования 6-32
Как работает расписание, принятое по умолчанию 6-33
Как используются резервные копии для
восстановления файловой системы 6-35
- 6-1 -
ВВЕДЕНИЕ
Основная задача администратора системы - обеспечить постоянную
целостность информации, хранимой в системе. Существует
несколько способов повреждения файлов и файловых систем и потери
данных:
* прерывания от питания (убедитесь в наличии предохранителя
от бросков питания);
* аппаратные сбои (например, жесткий диск);
* ошибки пользователя (случайное удаление важных файлов).
Нельзя переоценить важность наличия актуальных резервных
копий. Если в вашей системе есть несколько активных пользователей,
копии надо делать ежедневно. Последствия простой потери
данных трудно оценить до тех пор, пока не произойдет инцидент и
мгновенно будут потеряны результаты недельной или месячной работы.
Резервная копия файловых систем - это выполненная на гибких
дисках или лентах копия файлов корневой файловой системы и других
регулярно монтируемых файловых систем (например, файловой
системы /u). (Описание файловых систем см. в главе "Использование
файловых систем" настоящего руководства.) Резервная копия
позволяет администратору системы (или пользователю с авторизацией
backup) иметь экземпляр файловой системы на некоторый момент
времени.
В настоящей главе описывается, как использовать sysadmsh
для дублирования (изготовления резервных копий) корневого каталога
и других файловых систем, и как восстанавливать файлы с резервных
копий. (Еще одна утилита, используемая для простого дублирования,
tar(C), подробно описана в разделе "Изготовление
резервных копий" главы "Обслуживание" в "Учебнике" (Tutorial).
Эта утилита не подходит для выполнения планируемого дублирования;
ею удобно пользоваться для архивирования групп файлов.)
Средства, обсуждаемые в данной главе, представляют собой
меню с простыми опциями, в отличие от утилит tar(C), cpio(C),
backup(ADM) и restore(ADM), где используются сложные командные
строки. Ключ к эффективному дублированию состоит в том, чтобы
сохранять только то, что изменилось за день, а для этого (при
использовании backup и restore) обычно требуется дополнительная
бухгалтерия.
- 6-2 -
СТРАТЕГИИ ДУБЛИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ SYSADMSH
Вы как администратор системы должны ознакомиться с содержанием
этой главы и составить расписание в соответствии с изложенными
правилами. После этого вам, чтобы выполнить ежедневное дублирование,
нужно будет только установить носитель и ответить на
несколько приглашений.
Главная цель выбора "Дублирование файловых систем" в
sysadmsh состоит в том, чтобы предоставить надежное расписание
дублирования файловых систем в тех системах, где много пользователей
и большие файловые системы. Программа автоматически отыскивает
модифицированные файлы и копирует их на резервный носитель.
Если в вашей системе много пользователей и большое число
ежедневно обновляемых файлов, используйте опцию "планируемого"
дублирования, которая с помощью заранее составленного расписания
будет делать регулярное дублирование. Если сделан выбор Backups,
программа представит каждую задачу как опцию меню. Чтобы выполнить
задачу, просто выберите соответствующую опцию из меню и
предоставьте требуемую информацию.
Для менее формального дублирования в sysadmsh имеется опция
"незапланированного" дублирования. Она позволяет администратору
системы однократно сделать полную резервную копию файловой системы.
(Заметьте, что этот тип дублирования охватывает всю файловую
систему, а не только измененные файлы, и здесь может потребоваться
несколько томов носителей.) Если вы решили обойтись
непланируемыми дублированиями, обеспечьте их выполнение по крайней
мере раз в месяц.
Использование авторизации backup для дублирования
Для создания или восстановления резервных копий вы должны
назначить пользователю авторизацию backup. (Восстановление всей
файловой системы может делать только root.) Обычный пользователь
не может делать резервные копии, так как у него нет разрешений
на доступ ко всем файлам. Если дублирование выполняет root, файлы
могут быть случайно разрушены, так как root имеет неограниченные
разрешения для каждого файла в системе. Авторизация
backup разрешает эту дилемму, предоставляя ограниченные разрешения
root.
Дублирование на гибких дисках и большие системы
Если в вашей системе имеется только дисковод для гибких
дисков, то дублирование больших систем с несколькими пользователями
может оказаться очень долгим и потребовать множества
носителей. Полная резервная копия 20-мегабайтной файловой системы
требует пятнадцати дискет 96tpi по 1.2 MB, тогда как на одну
- 6-3 -
450-футовую кассетную ленту можно записать вдвое больше данных.
Более существенно, что использование дискет требует присутствия
оператора для их замены, а кассетная лента только ставится вначале,
и оператор может не оставаться при системе. Если в вашей
системе много пользователей и только дисковод для гибких дисков,
постарайтесь подключить лентопротяжное устройство, или же делайте
полную копию системы раз в неделю, предупредив пользователей,
чтобы они сами регулярно делали резервные копии своих файлов.
Краткие сведения об используемых утилитах
В процессе дублирования sysadmsh обращается к нескольким
утилитам. Вам не обязательно знакомиться с ними. Однако если вы
решите использовать дополнительные опции, не описанные в данной
главе, вам понадобится знать, как они применяются и где о них
можно прочитать. sysadmsh обращается к следующим утилитам:
* fsphoto(ADM): главная утилита, управляющая автоматизированными
средствами дублирования;
* fsave(ADM): программа, взаимодействующая с пользователем
для выполнения дублирования;
* schedule(ADM): база данных дублирования;
* xbackup и xrestore(ADM): утилиты дублирования XENIX. Они
используются, если в поле Method таб
...Закладка в соц.сетях