В su обретёшь ты право root’а

Первый из таких способов -- традиционная для всех UNIX- и UNIX-подобных систем команда su. Имя её иногда трактуют как аббревиатуру от Super User, но на самом деле оно означает Set UID: она позволяет получить права не только администратора, но и любого другого пользователя — достаточно указать его имя в качестве аргумента. Однако без оного команда su предоставляет, по вводе соответствующего пароля, доступ именно к суперпользовательскому аккаунту.

Если мы пароль знаем и введём правильно — казалось бы, ничего не произойдет, никаких сообщений не последует. Правда, присмотревшись, можно увидеть, что изменился вид приглашения командной строки (как — зависит от настроек командной оболочки, по умолчанию для bash — с символа доллара, $, на символ решётки, #). И это должно послужить сигналом к повышенному вниманию — с данного момента наш обычный пользователь наделён полномочиями root’а.

Правда, все настройки среды пользователя, эту команду отдавшего, сохраняются. Если требуется получить доступ к переменным окружения администратора в полном объёме (в частности, к путям поиска исполняемых файлов, которые для root’а и обычного пользователя могут быть разными), используется форма

$ su -l

или, ещё короче,

$ su -

После этого никаких отличий от ситуации, когда мы авторизовались root’ом в ответ на первичное приглашение в консоли, не обнаружится. Обратим внимание на то, что текущий каталог, в котором была отдана команда, сменится на домашний каталог суперпользователя — /root, потому что это довольно распространённый источник ошибок начинающих пользователей.

В Fedora, как и большинстве Linux'ов права администратора посредством команды su может получить любой пользователь, имеющий аккаунт в данной системе. Однако доступ к root-аккаунту можно изменить в любую сторону — как ограничить, так и “демократизировать”. Как — зависит от метода аутентификации пользователей. Так, в Fedora, по умолчанию использующей PAM-аутентификацию, для ограничения административного рвения пользователей следует отредактировать файл /etc/pam.d/su, а именно — снять комментарии со следующих строк:

#auth           sufficient      pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth           required        pam_wheel.so use_uid

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

# usermod -Ga wheel username

данной от лица суперпользователя. Опция -G здесь приписывает аккаунт к новой группе, а опция -a -- сохраняет его членство в группах, к которым он ранее был приписан.

Созданный командой su “сеанс в сеансе” будет продолжаться неограниченно долго, до тех пор, пока не будет завершён явным образом — командой exit, которая вернёт обычное пользовательское окружение, в том числе и текущий каталог, в котором мы находились до начала “вторичного сеанса”.

Нередко, однако, административные полномочия нужны для выполнения одной- единственной команды. Например, нелепо открывать внутренний сеанс суперпользователя для того, чтобы только посмотреть текущую разметку диска командой вроде fdisk -l. Что же, команда su предоставляет нам и такую возможность — посредством опции -c (или --command=), значениями которой будет выступать требуемая команда вместе со всеми необходимыми опциями и аргументами. Например, команды

$ su -c 'fdisk -l /dev/sdb'

или

$ su --command='fdisk -l /dev/sdb'

после ввода пароля суперпользователя выведут нам информацию об указанном диске точно так же, как это было бы после последовательности команд

$ su
[пароль]
fdisk /dev/sdb

Опять же обращаю внимание, что имя команды вместе с опциями и аргументами должно быть экранировано кавычками — иначе, скажем, аргумент /dev/sdb будет воспринят как имя пользователя, чьи права мы желаем получить, что повлечёт за собой сообщение об ошибке. Во всех виденных мной указаниях приводятся именно строгие, одинарные, кавычки (как в нашем примере), однако обычно проходят и нестрогие, двойные.

Неудобство такого способа в том, что после открывающей кавычки в командной строке перестаёт работать автодополнение по нажатию клавиши Tab. То есть сложные команды и пути придётся вводить по памяти. Эта, казалось бы, маловажная, деталь, — та самая соломинка, которая может склонить к использованию sudo вместо su, о чём пойдёт речь на следующей странице.


Главная
Содержание

. .