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