Всем привет!
В этой статье речь пойдет о команде su в Linux. Команда su используется для того, чтобы пользователь имел возможность стать другим пользователем в текущей сессии. Если su вызывается без имени пользователя, то это по умолчанию делает пользователя суперпользователем. Необязательный параметр “-” можно использовать для воссоздания рабочей среды, такой же как если бы настоящий пользователь выполнял вход в систему.
Как стать другим пользователем
Команда su (сокращение от switch user – переключение пользователя, и вопреки бытующему мнению, отнюдь не super user – суперпользователь) позволяет одному пользователю временно работать от имени другого пользователя.
Выполнить команду su несложно. Достаточно ввести ее имя, а затем указать пользователя, от имени которого вы собираетесь выступить.
Код:
|
$ pwd
/home/hub-lex
$ whoami
hub-lex
$ su testing
Пароль:
$ pwd
/home/hub-lex
$ whoami
testing |
В этом примере встретилась команда
whoami, которая используется нечасто и сообщает пользователю, кем он является с точки зрения оболочки. В данном примере мы применяем ее для того, чтобы убедиться, что команда su работает так, как мы того ожидаем.
Команда
pwd отображает рабочий каталог пользователя.
Как превратиться в другого пользователя и использовать его переменные окружения
Для этого можно воспользоваться опцией
-l (или –login), как показано ниже:
Код:
|
$ pwd
/home/hub-lex
$ whoami
hub-lex
$ su -l testing
Пароль:
$ pwd
/home/testing
$ whoami
testing |
На первый взгляд, все происходит точно так же, как и в предыдущем примере, но на самом деле различия огромны. Уже тот факт, что вы находитесь в рабочем каталоге пользователя testing, говорит о том, что что то изменилось. Опция -l сообщает su о необходимости использовать оболочку, предусмотренную в процедуре регистрации. Т.е. поступать так, как будто testing на самом деле прошел регистрацию в системе.
Теперь вы не только носите имя testing, вы используйте его переменные окружения, находитесь в его рабочем каталоге, одним словом, чувствуйте себя так же, как пользователь testing после регистрации в системе.
Как превратиться в пользователя root
Вы уже знаете, что команда su чаще всего используется для временного получения полномочий root. Для решения этой задачи вы можете задать команду su root или, еще лучше su -l root. Однако существует более быстрый способ, как показано ниже:
Код:
|
$ whoami
hub-lex
$ su
Пароль:
# whoami
root |
Как стать пользователем root и использовать его переменные окружения
Команда su эквивалентна команде su root. Выполнив ее, вы получаете полномочия root, но этим ваши возможности исчерпываются. Вы по прежнему работаете с переменными окружения другого пользователя.
Код:
|
$ pwd
/home/hub-lex
$ whoami
hub-lex
$ su
Пароль:
# whoami
root
# pwd
/home/hub-lex |
Добавив дефис после команды su -, вы получите тот же результат, что и от выполнения команды su -l root:
Код:
|
$ pwd
/home/hub-lex
$ whoami
hub-lex
$ su -
Пароль:
# pwd
/root
# whoami
root |
Теперь вы носите имя root и работайте с его переменными окружения, т.е. становитесь полноценным суперпользователем. Все, что может делать суперпользователь root, доступно так же и вам. Но помните, что работать под суперпользователем root нужно очень и очень аккуратно! Одна ошибка может стоить вам потерянных данных.