sudoэто программа командной строки, которая позволяет доверенным пользователям выполнять команды от имени пользователя root или другого пользователя.

В этой статье вы узнаете два способа предоставления привилегий sudo пользователю. 

Первый — добавить пользователя в файл sudoers . Этот файл содержит информацию, которая определяет, каким пользователям и группам предоставляются привилегии sudo, а также уровень привилегий.

Второй вариант — добавить пользователя в группу sudo, указанную в sudoersфайле. По умолчанию в дистрибутивах на основе Debian, таких как Ubuntu и Linux Mint, членам группы «sudo» предоставляется доступ к sudo.

Добавление пользователя в группу sudo

В Ubuntu самый простой способ предоставить пользователю привилегии sudo — добавить пользователя в группу «sudo». Члены этой группы могут выполнять любую команду от имени root через sudoи получать запрос на аутентификацию с помощью своего пароля при использовании sudo. Мы предполагаем, что пользователь уже существует. 

Чтобы добавить пользователя в группу , выполните приведенную ниже команду от имени пользователя root или другого пользователя sudo. Убедитесь, что вы изменили «имя пользователя» на имя пользователя, которому вы хотите предоставить разрешения.

usermod -aG sudo username

Предоставления доступа sudo с помощью этого метода достаточно для большинства случаев использования.

Чтобы убедиться, что у пользователя есть привилегии sudo, выполните whoamiкоманду:

sudo whoami

Вам будет предложено ввести пароль. Если у пользователя есть доступ к sudo, команда напечатает «root»:

root

Если вы получаете сообщение об ошибке «пользователь отсутствует в файле sudoers», это означает, что у пользователя нет привилегий sudo.

Добавление пользователя в файл sudoers

Привилегии sudo пользователей и групп определены в /etc/sudoersфайле. Добавление пользователя в этот файл позволяет предоставить индивидуальный доступ к командам и настроить пользовательские политики безопасности.

Вы можете настроить доступ пользователя к sudo, изменив файл sudoers или создав новый файл конфигурации в /etc/sudoers.dкаталоге. Файлы внутри этого каталога включены в файл sudoers.

Всегда используйте visudoдля редактирования /etc/sudoersфайла. Эта команда проверяет файл на наличие синтаксических ошибок при его сохранении. При наличии ошибок файл не сохраняется. Если вы откроете файл в текстовом редакторе, синтаксическая ошибка может привести к потере доступа к sudo.

Обычно visudoдля открытия файла /etc/sudoers. Если у вас нет опыта работы с vim и вы хотите отредактировать файл с помощью nano , измените редактор по умолчанию, запустив:

EDITOR=nano visudo

Допустим, вы хотите разрешить пользователю выполнять команды sudo без запроса пароля. Для этого откройте /etc/sudoersфайл:

visudo

Прокрутите вниз до конца файла и добавьте следующую строку:

/etc/sudoers

username  ALL=(ALL) NOPASSWD:ALL

Сохраните файл и выйдите из редактора . Не забудьте заменить «имя пользователя» на имя пользователя, которому вы хотите предоставить доступ.

Другой типичный пример — позволить пользователю запускать только определенные команды через файлы sudo . Например, чтобы разрешить только команды mkdir и rmdir , вы должны использовать:

/etc/sudoers

username ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/rmdir

Вместо редактирования файла sudoers вы можете сделать то же самое, создав новый файл с правилами авторизации в /etc/sudoers.dкаталоге. Добавьте то же правило, что и в файл sudoers:

echo "username  ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/username

Такой подход упрощает управление привилегиями sudo. Имя файла не важно. Обычно имя файла совпадает с именем пользователя.