Введение
Команда sudo позволяет пользователям запускать программы от имени другого пользователя, по умолчанию от имени пользователя root.
Как правило, чтобы предоставить пользователю доступ к 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)}
Команда date добавит текущую дату к имени файла резервной копии.
Откройте файл /etc/sudoers командой visudo:
sudo visudo
При внесении изменений в файл sudoers всегда используйте visudo. Эта команда проверяет файл после модификации и, если возникает синтаксическая ошибка, не сохраняет изменения. Если вы откроете файл в текстовом редакторе, синтаксическая ошибка приведет к потере доступа к sudo.
В большинстве систем команда visudo открывает файл /etc/sudoers с помощью текстового редактора vim. Если вы новичок в vim, вы можете использовать другой текстовый редактор. Например, чтобы отредактировать файл sudoers с помощью команды visudo с помощью другого редактора, такого как GNU nano, вам нужно будет запустить:
sudo EDITOR=nano visudo
Прокрутите файл вниз и добавьте следующую строку, которая позволит пользователю выполнять любую команду sudo без запроса пароля:
nome_utente ALL=(ALL) NOPASSWD:ALL
Не забудьте изменить « имя пользователя » на имя пользователя, которому вы хотите предоставить доступ.
Если вы хотите разрешить пользователю выполнять только определенные команды без ввода пароля, укажите команды после ключевого слова NOPASSWD.
Например, чтобы разрешить только команды mkdir и mv, вам нужно будет использовать:
nome_utente ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/mv
Когда закончите, сохраните и закройте файл, нажав CTRL + X, затем Y, чтобы сохранить изменения, а затем ENTER, если вы используете nano.
Используйте файл /etc/sudoers.d
Вместо изменения файла sudoers вы можете создать новый файл правил авторизации в каталоге /etc/sudoers.d. Такой подход делает управление привилегиями sudo более управляемым.
Откройте текстовый редактор и создайте файл:
sudo nano /etc/sudoers.d/nome_utente
Вы можете дать файлу имя, обычно рекомендуется использовать имя пользователя в качестве имени файла. Добавьте то же правило, которое вы хотели бы добавить в файл sudoers:
nome_utente ALL=(ALL) NOPASSWD:ALL
Когда закончите, сохраните и закройте файл, нажав CTRL + X, затем Y, чтобы сохранить изменения, а затем ENTER, если вы используете nano.
Вывод
Мы увидели, как изменить файл sudoers, чтобы вы могли выполнять команды sudo без ввода пароля. Это полезно, когда у вас есть сценарии, в которых пользователь без полномочий root должен выполнять административные задачи.