Организация UNIX-систем и ОС Solaris

Как стать привилегированным пользователем


В UNIX можно "перевоплотиться" в любого пользователя. Для этого служит команда su (switch user):

su имя_пользователя

Команда su без параметров эквивалентна su root.

Для перевоплощения в другого пользователя нужно знать его пароль. В некоторых системах UNIX дать команду su для того, чтобы работать от имени root, по умолчанию может только член группы wheel. Так, например, установлено во FreeBSD. В системах, где для аутентификации используется подсистема PAM, такой эффект достигается следующей строкой в файле /etc/pam.d/su:

auth required /lib/security/pam_wheel.so

Подсистема PAM в настоящее время поддерживается во всех основных системах UNIX: Solaris, HP-UX, FreeBSD и всех новых версиях Linux. Более подробно эта подсистема рассматривается в лекции 10 курса "Администрирование ОС Solaris".

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

Команда su по умолчанию запускает командный процессор от имени другого пользователя, но сохраняет среду окружения старого, т.е. среда окружения наследуется от того командного процессора, в котором выполнена команда su. Это мешает перевоплотиться полностью. Например, если пользователь alen выполнил команду su, то работать от имени root он сможет, а читать почту из почтового ящика root - нет. Потому что почтовая программа проверяет переменную mail и (или) user, которая унаследуется от старого командного процессора.

Чтобы получить среду окружения в том виде, в котором ее получает другой пользователь при своем входе в систему, следует дать команду

su - имя_пользователя

Обратите внимание на знак - (минус) после команды su.

Например, для полного перевоплощения в пользователя breatney следует дать команду

su - breatney

В некоторых системах UNIX есть программа sudo, с помощью которой любой пользователь может выполнить команду от имени другого пользователя. Системный администратор должен заранее отредактировать файл /etc/sudoers, в котором определяется, кто и что может запускать от чужого имени. При выполнении программа sudo спросит у пользователя его пароль, чтобы убедиться, что ее запускает не тот, кто случайно подошел к терминалу с незакрытой сессией работы.

В Solaris нет sudo, зато есть более сложный способ делегирования части полномочий администратора другим пользователям. Для этого используется управление доступом на основе ролей (RBAC - role based access control). Его смысл состоит в том, что среди всех полномочий системного администратора выделяются их группы, а затем некоторые пользователи наделяются таким подмножеством полномочий, которое соответствует их реальной роли в администрировании системы. Более подробно RBAC рассматривается в лекции 11 курса "Администрирование ОС Solaris".



Содержание раздела