ядра описываются в пункте "Авторизации" раздела "Средства обес-
печения безопасности системы" данной главы. Если демон выполняет
другие программы 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:. Введите имя пользователя,
или нажмите для получения списка возможных пользователей.
Когда имя пользователя выбрано, на экране появятся следующие
"радио-клавиши":
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:. Введите имя пользователя,
или нажмите для получения списка возможных пользователей.
Когда имя пользователя выбрано, на экране появятся следующие
"радио-клавиши":
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 Текущий каталог пользователя в момент запуска