su или sudo? — в чем разница

Keep Calm And SudoЕсли Вы пользователь Linux, то периодически Вам приходится выполнять действия из-под учётной записи суперпользователя root. Скорее всего, в этом случае Вы использовали одну из двух команд — su или sudo. Многие начинающие пользователи могут знать лишь одну команду и не подозревать о другой. Между тем, функционируют они по-разному.

Сперва о механизме работы команды su. Если ввести её без опций, она переключит вас в сеанс суперпользователя (естественно, нужно знать пароль). На самом деле, команда su может переключить в сеанс любого пользователя в системе, не только root. Для этого нужно ввести команду вида

su petrov

Команду выше можно использовать для переключения в сеанс пользователя petrov.

Для выхода из сеанса нужно использовать команду

exit

Команду su можно назвать традиционным способом выполнения команд из-под суперпользователя. Впрочем, и sudo используется давно. Главным популяризатором sudo можно назвать компанию Canonical с их дистрибутивом Ubuntu.

Принципиальное отличие sudo от susudo не открывает сеанс другого пользователя, а выполняет одну конкретно указанную команду от root. Это, безусловно, является более безопасным вариантом.

Впрочем, и su, и sudo это довольно гибкие инструменты. Например, если нужно выполнить от su одну конкретную команду, используйте:

su -c [команда]

В свою очередь, и sudo можно использовать для открытия сеанса root:

sudo -i

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

Если нам надо, к примеру, перейти в сеанс пользователя petrov:

sudo -i -u petrov

Отметим, что по умолчанию в Ubuntu аккаунт root не включен как полноценный пользователь. Его пароль не задаётся при установке, и, как следствие, зайти в эту учётную запись нельзя. Поэтому в команде sudo используется пароль от учётки обычного пользователя, создаваемой при установке системы. Конечно, это удобно, т.к. достаточно помнить всего один пароль, но не подойдёт, если нужно ограничить права пользователя.

Активировать учётную запись root в Ubuntu можно командой

sudo passwd root

Сперва система спросит текущий пароль пользователя, затем предложит задать пароль для root. Тем не менее, некоторые ограничения останутся. Например, под root нельзя будет залогиниться в графическом окружении. Зато под ним можно будет авторизоваться в терминале или использовать в команде su.

Добавить комментарий

Ваш адрес email не будет опубликован.