Чтобы произвести сколь-нибудь значимые изменения в настройках операционной системы своего сервера, администратор должен обладать доступом к этой самой системе с соответствующими правами. Это относится ко всем операционным системам. В Linux учётная запись, которая может всё, это – root. Эту учётную запись ещё называют суперпользователь. И для администрирования Linux-системы необходимо либо использовать учётную запись root’а, либо получить его полномочия при работе со своей учётной записью.
В первом случае администратор должен подключаться с паролем root’а напрямую или используя команду su
. Во втором – пароль root’а не нужен. Для получения привилегий суперпользователя потребуется команда sudo
.
Что такое sudo?
Sudo
– это утилита для операционных систем семейства Linux, позволяющая пользователю запускать программы с привилегиями другой учётной записи, как правило, суперпользователя. В части запуска команд от имени root’а sudo
является альтернативой утилите su
. Правда, в отличие от su
, которая запускает оболочку root’а и предоставляет суперполномочия всем дальнейшим инструкциям, sudo
предоставляет только временное повышение привилегий. Таким образом, включая полномочия root’а только когда это действительно необходимо, применение команды sudo
снижает вероятность того, что опечатка или ошибка в вызываемой команде причинит какой-нибудь вред системе.
Непривилегированная учётная запись должна иметь некоторые полномочия в системе для того, чтобы иметь возможность воспользоваться командой sudo
. Если быть более точным, такой пользователь должен состоять в определённой группе безопасности. Для добавления пользователя в данную группу в Ubuntu/Debian применяется следующая команда:
# usermod -aG sudo your-user
Для CentOs такая команда имеет вид:
# usermod -a -G wheel your-user
Инструкции, предназначенные для добавления учётным записям дополнительных прав, следует запускать от имени root’а, либо пользователя уже владеющего правами на запуск sudo
.
Использование sudo
Чтобы выполнять команды с привилегиями суперпользователя, непривилегированный пользователь должен предварить свою команду утилитой sudo
:
$ sudo command-you-want-to-run
Например, запуск команды для обновления списка доступных пакетов в Debian из-под учётной записи не имеющей полномочий root’а выглядит как:
$ sudo apt update
Может получиться так, что на вашем сервере утилита sudo
отсутствует в дистрибутиве операционной системы.

Поэтому, для установки пакета sudo
, необходимо залогиниться в систему root’ом и запустить следующие команды:
# apt update
# apt install sudo


Чтобы не набирать sudo
в каждой команде, можно при помощи sudo
авторизоваться под именем другой учётной записи. Для этого применяется опция -i
:
$ sudo -i
Такая команда залогинит вас под пользователем root. Чтобы авторизоваться в системе учётной записью, например, user2, команда должна выглядеть так:
$ sudo -i -u user2
Чтобы посмотреть текущие настройки sudo
, используйте команду с опцией -l
. Вывод будет содержать информацию по разрешённым к запуску командам. В данном случае нашему пользователю разрешено всё:

Конфигурация sudo
содержится в файле /etc/sudoers
. В этом файле можно изменить такие настройки как, например, какой учётной записи можно запускать команды от имени суперпользователя, или какие команды может выполнять пользователь, и так далее. Для внесения изменений в конфигурационный файл наберите следующую команду, подключившись к системе root’ом:
# visudo
Заключение
Вкратце, мы ознакомились с весьма полезной и популярной в Linux-системах утилитой sudo
. Её функционал и возможности намного шире, чем то, что описано в данной статье. И если вам нужна более подробная информация по настройке и использованию команды, то добро пожаловать в другие разделы нашего справочника.