SOLUCIÓN 1: newgrp
Una forma sencilla de abordar su caso de uso sería usarlo :NOPASSWDen combinación con un grupo y contraseña de grupo:
Agregue una línea a los sudoers:
%rudo ALL=(ALL:ALL) NOPASSWD:ALL
Cree un grupo protegido con contraseña:
groupadd rudo
gpasswd rudo # Enter passwd
Ahora, cuando inicie sesión como un usuario sin privilegios (suponiendo que aún no esté en el rudogrupo), inicie sesión en el rudogrupo, momento en el que se le solicitará la contraseña.
login user
newgrp rudo
Ahora puede ejecutar sin sudocontraseña, siempre y cuando permanezca conectado al grupo.
SOLUCIÓN 2: runaspw
Una forma mejor y posiblemente más segura de hacer esto runaspw. runaspwestá asociado con la runas_defaultopción, por lo que también debe agregar esa opción.
Suponiendo que ya tiene la %sudoentrada de grupo predeterminada :
%sudo ALL=(ALL:ALL) ALL
agregue estas líneas al archivo sudoers:
Defaults:%sudo runas_default=sudo
Defaults:%sudo runaspw
Ahora agregue un nuevo sudousuario con una contraseña:
useradd sudo -d /nonexistent -s /usr/sbin/nologin -MNr
passwd sudo
Ahora se solicitará a los usuarios del grupo sudo la contraseña del usuario de sudo, pero solo los usuarios del grupo sudo podrán sudo (a diferencia de la solución de grupo anterior, donde cualquiera en el grupo o con la contraseña del grupo podría sudo).
Un problema menor es que el usuario de runas predeterminado ahora es sudoasí que para sudo como root, debe especificar explícitamente root:
sudo -u root <cmd>
Pero es bastante fácil definir un alias ( alias sudo='sudo -u root') o un comando sudo indirecto.