Безпарольный sudo для выполнения одной команды


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

имя_пользователя ALL = (ALL) NOPASSWD: /path/to/binary

После этого пользователь сможет выполнить binary без ввода пароля следующим образом:

sudo /path/to/binary

Небольшой хак для того, чтобы и sudo вводить не пришлось. очень хорошо подходит docker для примера. По умолчанию все docker команды выполняются с правами суперпользователя. Для того чтобы обычный пользователь в системе смог выполнять docker-команды без необходимости вводить sudo и пароль каждый раз нужно сначала отредактировать /etc/sudoers следующей строкой:

имя_пользователя ALL = (ALL) NOPASSWD: /usr/bin/docker

В файл .bashrc в домашнем каталоге пользователя, нужно добавить следующую функцию:

docker () {
	sudo docker "$@"
}

Для применения изменений выполните следующее:

source /home/имя_пользователя/.bashrc

Можно объявить эту функцию глобально отредактировав файл /etc/profile

Share Button
(Visited 39 times, 1 visits today)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.