Как запустить команду Sudo без пароля

Команда 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)}
Команда date добавит текущую дату к имени файла резервной копии.

Откройте файл /etc/sudoers с помощью команды visudo :

sudo visudo

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

В большинстве систем команда visudo открывает файл /etc/sudoers с помощью текстового редактора vim. Если у вас нет опыта работы с vim, вы можете использовать другой текстовый редактор. Например, чтобы изменить редактор на GNU nano, вы должны запустить:

sudo EDITOR=nano visudo

Прокрутите вниз до конца файла и добавьте следующую строку, которая позволит пользователю «linuxize» запускать любую команду с sudo без запроса пароля:

/etc/sudoers
linuxize  ALL=(ALL) NOPASSWD:ALL
Не забудьте заменить «linuxize» на имя пользователя, которому вы хотите предоставить доступ.

Если вы хотите разрешить пользователю запускать только определенные команды без ввода пароля, укажите команды после NOPASSWD слова NOPASSWD .

Например, чтобы разрешить использование только команд mkdir и mv :

/etc/sudoers
linuxize ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/mv

После этого сохраните файл и выйдите из редактора .

Использование /etc/sudoers.d

Вместо редактирования файла sudoers вы можете создать новый файл с правилами авторизации в каталоге /etc/sudoers.d . Такой подход делает управление привилегиями sudo более удобным в обслуживании.

Откройте текстовый редактор и создайте файл:

sudo nano /etc/sudoers.d/linuxize

Вы можете назвать файл по своему усмотрению, но обычно рекомендуется использовать имя пользователя в качестве имени файла.

/etc/sudoers.d/linuxize

Добавьте то же правило, что и в файл sudoers:

linuxize  ALL=(ALL) NOPASSWD:ALL

Наконец, сохраните файл и закройте редактор.

Выводы

Мы показали вам, как отредактировать /etc/sudoers чтобы вы могли запускать команды sudo без ввода пароля. Это полезно, когда у вас есть сценарии, в которых пользователю без полномочий root необходимо выполнять административные задачи.

Если у вас есть вопросы, не стесняйтесь оставлять комментарии.

Оставьте комментарий