Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Redaktsia_4_UP_Linux_-_Osnovnaya_chast.doc
Скачиваний:
57
Добавлен:
06.11.2018
Размер:
2.02 Mб
Скачать
    1. Использование механизма sudo

В ОС Linux пользователи бесправны, и любое ответственное действие требует полномочий администратора. Администратор по определению должен быть в системе один (операционная система не позволяет обычным путем создать еще одну учетную запись с UID = 0), а обязанностей у него чрезмерно много. Достаточно часто у администратора возникает потребность доверить избранным пользователям выполнение каких-либо ответственных операций. Но для этого администратор должен доверить другим святая святых – свой пароль. Чтобы избежать таких ситуаций, в ОС UNIX был разработан своеобразный механизм, позволяющий выборочно предоставлять определенным пользователям права на запуск ответственных команд. Этот механизм реализован в утилите sudo (superuser do) и конфигурационном файле /etc/sudoers, который должен быть недоступным для всех, кроме администратора.

В качестве параметра команды sudo вводится команда, которую надо исполнить. Обычно, если это явно не определено в файле конфигурации, от пользователя потребуют ввести его собственный пароль, но только один раз в течение терминального сеанса, в последующем запрос пароля производиться не будет. При этом правильно написанная команда будет исполнена оболочкой с правами привилегированного пользователя (администратора).

Названия команд составляются администратором и записываются в файл /etc/sudoers в виде специальных строк. Строка должна связывать конкретного пользователя, работающего на определенном сетевом узле или локальном компьютере, с ответственными командами. Запись в строке должна содержать ответы на вопросы:

  • кто? (зарегистрированное имя пользователя или группы);

  • где? (доменное имя или IP-адрес компьютера);

  • от чьего имени? (имя привилегированного пользователя);

  • команды (полный перечень разрешенных команд, разделенных запятыми).

Приведем образцы записей в файле /etc/sudoers :

petrov ALL=/bin/shutdown, /bin/halt

– пользователю petrov на всех компьютерах, работающих под управлением данной операционной системы, можно принудительно завершать работу системы и всех пользователей;

john localhost=/usr/sbin/lpc, /usr/sbin/lprm

– пользователь john на своем компьютере имеет право распечатки документов;

braun 192.168.1.1=/bin/useradd,/bin/passwd,/bin/usermod

– пользователь braun на компьютере, который идентифицируется IP-адресом, имеет право создавать и модифицировать учетные записи пользователей, а также назначать им первичные пароли. Здесь допущен очевидный перебор в предоставлении прав, поскольку пользователь braun может сменить пароль самому администратору;

%alfa ALL=/bin/mount /dev/cdrom, umount /dev/cdrom

– пользователям группы alfa на всех компьютерах сети разрешено монтировать и размонтировать компакт-диски. Кстати, аналогичное право пользователям можно предоставить с помощью записи в конфигурационном файле /etc/fstab.

В файле /etc/sudoers могут быть определены псевдонимы (алиасы):

  • для пользователей:

User_Alias WEBMASTERS=sidorov,sazonov,bormotov

  • для сетевых узлов:

Host_Alias WEBSERVERS=www.web_dis.com, 192.168.3.14

  • для команд:

Cmnd_Alias APACHE=/usr/local/apache/bin/apachectl

C помощью псевдонимов разрешающая запись приобретает более компактный вид:

WEBMASTERS WEBSERVERS=APACHE

Пользователь, наделенный временными полномочиями, должен знать, какую команду ему разрешено выполнять с правами администратора и как эта команда пишется. Команды, перечисленные в файле /etc/sudoers, должны приводиться с полными путевыми именами, чтобы пользователи были лишены возможности запускать свои экземпляры утилит или сценариев от имени администратора.

Механизм избирательного предоставления полномочий предусматривает исполнение команд без ввода паролей. Для этого администратор в соответствующей строке между именем хоста и именем команды должен указать ключевое слово NOPASSWD:

ivanov 192.168.4.15=NOPASSWD: /bin/mount /dev/fd0

Вызов утилиты sudo по умолчанию протоколируется системой в одном из журналов аудита. Выяснить, в каком именно журнале, можно с помощью команды lsof, предоставляющей информацию об открытых файлах.

lsofc sudo

Более подробно о возможностях команды lsof будет сказано ниже.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]