Команда sudo
позволяет доверенным пользователям запускать программы от имени другого пользователя, по умолчанию root. Если вы проводите много времени в командной строке, sudo
— одна из команд, которые вы будете часто использовать.
Обычно, чтобы предоставить пользователю доступ к sudo, необходимо добавить пользователя в группу sudo, определенную в файле sudoers
. В Debian, Ubuntu и их производных членам группы sudo
предоставляются привилегии sudo, а в дистрибутивах на основе RedHat, таких как CentOS и Fedora, группа sudo называется wheel
.
Каждому члену этой группы будет предложено ввести пароль перед запуском команды sudo . Это добавляет дополнительный уровень безопасности и является предпочтительным способом предоставления привилегий sudo пользователям.
Однако в некоторых ситуациях, например при запуске автоматических сценариев, вам может потребоваться настроить файл sudoers и разрешить определенным пользователям запускать команды sudo
без запроса пароля.
Содержание
Добавление пользователя в файл Sudoers
Файл sudoers содержит информацию, определяющую права пользователя и группы sudo.
Вы можете настроить доступ пользователя sudo, изменив файл sudoers или добавив файл конфигурации в каталог /etc/sudoers.d
. Файлы, созданные внутри этого каталога, будут включены в файл sudoers.
Перед внесением каких-либо изменений рекомендуется создать резервную копию текущего файла:
sudo cp /etc/sudoers{,.backup_$(date +%Y%m%d)}
Откройте файл /etc/sudoers
с помощью команды visudo
:
sudo visudo
При внесении изменений в файл sudoers всегда используйте visudo
. Эта команда проверяет файл после редактирования и в случае синтаксической ошибки не сохраняет изменения. Если вы откроете файл в текстовом редакторе, синтаксическая ошибка приведет к потере доступа sudo.
В большинстве систем команда visudo
открывает файл /etc/sudoers
с помощью текстового редактора vim. Если у вас нет опыта работы с vim, вы можете использовать другой текстовый редактор. Например, чтобы изменить редактор на GNU nano, вы должны запустить:
sudo EDITOR=nano visudo
Прокрутите вниз до конца файла и добавьте следующую строку, которая позволит пользователю «linuxize» запускать любую команду с sudo
без запроса пароля:
linuxize ALL=(ALL) NOPASSWD:ALL
Если вы хотите разрешить пользователю запускать только определенные команды без ввода пароля, укажите команды после NOPASSWD
слова NOPASSWD
.
Например, чтобы разрешить использование только команд mkdir
и mv
:
linuxize ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/mv
После этого сохраните файл и выйдите из редактора .
Использование /etc/sudoers.d
Вместо редактирования файла sudoers вы можете создать новый файл с правилами авторизации в каталоге /etc/sudoers.d
. Такой подход делает управление привилегиями sudo более удобным в обслуживании.
Откройте текстовый редактор и создайте файл:
sudo nano /etc/sudoers.d/linuxize
Вы можете назвать файл по своему усмотрению, но обычно рекомендуется использовать имя пользователя в качестве имени файла.
Добавьте то же правило, что и в файл sudoers:
linuxize ALL=(ALL) NOPASSWD:ALL
Наконец, сохраните файл и закройте редактор.
Выводы
Мы показали вам, как отредактировать /etc/sudoers
чтобы вы могли запускать команды sudo
без ввода пароля. Это полезно, когда у вас есть сценарии, в которых пользователю без полномочий root необходимо выполнять административные задачи.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии.