РЕШЕНИЕ 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 будет предложено ввести пароль пользователя sudo, но sudo смогут использовать только пользователи из группы sudo (в отличие от вышеуказанного решения для группы, где любой пользователь в группе или группе passwd может использовать sudo).
Незначительной проблемой является то, что по умолчанию пользователь runas имеет sudo поэтому для sudo в качестве пользователя root необходимо явно указать root:
sudo -u root <cmd>
Но достаточно просто определить псевдоним (alias sudo='sudo -u root') или косвенную команду sudo.