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