Привилегированный пользователь
Системным администраторам приходится отменять действие защитных механизмов UNIX в самых разных ситуациях. Для обеспечения такой возможности система выделяет среди всех идентификаторов пользователей один особый, нулевой, который принадлежит привилегированному пользователю. По соглашению UNIX-системы определяют для этого UID пользовательский бюджет под именем <root>.
Вот примеры операций, которые может выполнить только привилегированный пользователь:
- монтирование и демонтирование файловых систем;
- изменение командой chroot корневого каталога процесса;
- создание файлов устройств;
- установка системных часов;
- изменение принадлежности файлов;
- увеличение лимитов использования ресурсов и назначение приоритетов процессов;
- задание host-имени системы;
- конфигурирование сетевых интерфейсов;
- остановка системы.
Примером возможностей привилегированного пользователя может служить способность принадлежащего ему процессора изменять по своему усмотрению параметры принадлежности. Один из таких случаев - программа login; процесс, который приглашает Вас при входе в систему ввести свой пароль. Он изначально выполняется как корневой. Если веденные имя и пароль пользователя правильны, то login заменяет свои UID и GID соответствующими идентификаторами указанного пользователя и запускает интерпретатор команд shell. После того как корневой процесс, изменив свою принадлежность, станет обычным пользовательским процессором, восстановить свое предыдущее привилегированное состояние он не сможет.
Существует несколько способов доступа к бюджету привилегированного пользователя. Самый простой из них - зарегистрироваться под именем root. К сожалению, выход из собственного бюджета и регистрация в качестве привилегированного пользователя часто очень неудобны. Лучше использовать команду su. Будучи вызванной без аргументов, эта команда пригласит Вас ввести пароль привилегированного пользователя, а затем запустит shell с правами привилегированного пользователя. Привилегии этого интерпретатора команд остаются в силе до завершения его работы.
Команда su также может подставлять вместо root имена других пользователей. Зная чей-либо пароль, можно непосредственно войти в его бюджет, выполнив команду
su <имя пользователя>. Как и при входе в бюджет root, система запросит пароль пользователя <имя пользователя>.
Рекомендуется взять за правило при вводе команды использовать полное путевое имя /bin/su, а не просто su. Это в какой-то мере защитит Вас от тех программ с именем su, которые проскользнули в ваш путь поиска, намереваясь собрать хороший урожай паролей.
Важное замечание: Использовать команду su могут только члены группы wheel.