Решение 1: newgrp
простой способ решения вашего варианта использования было бы использовать :NOPASSWD
в сочетании с группой и командой passwd:
добавить строку в sudoers:
%rudo ALL=(ALL:ALL) NOPASSWD:ALL
создать защищенную группу passwd:
groupadd rudo
gpasswd rudo # Enter passwd
теперь, когда вы войти в систему в качестве непривилегированного пользователя (при условии, что ваш уже не в rudo
группа), войдите в rudo
группа, после чего вам будет предложено ввести пароль.
login user
newgrp rudo
теперь вы можете запустить sudo
без пароля, пока вы остаетесь в группе.
решение 2: runaspw
лучше, возможно, более безопасный способ сделать это использует runaspw
. runaspw
связан с runas_default
вариант, так что вы должны добавить эту опцию тоже.
предполагая, что у вас уже есть по умолчанию %sudo
группа запись:
%sudo ALL=(ALL:ALL) ALL
добавить эти строки файл sudoers:
Defaults:%sudo runas_default=sudo
Defaults:%sudo runaspw
теперь добавим новый sudo
пользователь с паролем:
useradd sudo -d /nonexistent -s /usr/sbin/nologin -MNr
passwd sudo
теперь пользователи группы sudo будет предложено для passwd пользователя sudo, но только пользователи в группе sudo смогут sudo (в отличие от решения группы выше, где кто-либо в группе или с группой passwd может sudo).
незначительная проблема-пользователь runas по умолчанию теперь sudo
так sudo, как корень нужно явно указать root:
sudo -u root <cmd>
но достаточно легко определить псевдоним (alias sudo='sudo -u root'
) или косвенная команда sudo.