SOLUÇÃO 1: newgrp
Uma maneira simples de abordar seu caso de uso seria usar :NOPASSWD
em 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 rudo
grupo), faça login no rudo
grupo; nesse momento, a senha será solicitada.
login user
newgrp rudo
Agora você pode executar sem sudo
senha, desde que permaneça conectado ao grupo.
SOLUÇÃO 2: runaspw
Uma maneira melhor e possivelmente mais segura de fazer isso runaspw
. runaspw
está associado à runas_default
opção, então você deve adicionar essa opção também.
Supondo que você já tenha a %sudo
entrada 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 sudo
usuá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.