SOLUÇÃO 1: newgrp
Uma maneira simples de abordar seu caso de uso seria usar :NOPASSWDem combinação com uma senha de grupo e grupo:
Adicione uma linha aos sudoers:
%rudo ALL=(ALL:ALL) NOPASSWD:ALL
Crie um grupo protegido por senha:
groupadd rudo
gpasswd rudo # Enter passwd
Agora, quando você fizer login como um usuário sem privilégios (supondo que você ainda não esteja no rudogrupo), faça login no rudogrupo; nesse momento, a senha será solicitada.
login user
newgrp rudo
Agora você pode executar sem sudosenha, desde que permaneça conectado ao grupo.
SOLUÇÃO 2: runaspw
Uma maneira melhor e possivelmente mais segura de fazer isso runaspw. runaspwestá associado à runas_defaultopção, então você deve adicionar essa opção também.
Supondo que você já tenha a %sudoentrada de grupo padrão :
%sudo ALL=(ALL:ALL) ALL
adicione estas linhas ao arquivo sudoers:
Defaults:%sudo runas_default=sudo
Defaults:%sudo runaspw
Agora adicione um novo sudousuário com uma senha:
useradd sudo -d /nonexistent -s /usr/sbin/nologin -MNr
passwd sudo
Agora, os usuários do grupo sudo serão solicitados a senha do usuário sudo, mas apenas os usuários do grupo sudo poderão fazer o sudo (diferente da solução do grupo acima, onde qualquer pessoa do grupo ou a senha do grupo poderia sudo).
Um pequeno problema é o usuário padrão de runas, agora sudo, para sudo como root, você precisa especificar explicitamente o root:
sudo -u root <cmd>
Mas fácil o suficiente para definir um alias sudo='sudo -u root'comando alias ( ) ou indireto sudo.