Forçando o sudo a solicitar uma senha

26

Se eu fizer o seguinte:

sudo su -
//enter password
exit
exit
//login again straight away
sudo su -

A segunda chamada do sudo não solicita uma senha, porque, apesar de ter desconectado novamente, ainda estou dentro de um prazo, o que significa que não preciso ser solicitada novamente.

Como estou testando novos privs para garantir que eles funcionem, isso está me atrasando muito enquanto espero o tempo limite acontecer.

Existe um comando que eu possa executar para redefinir o tempo limite?

A propósito, não quero alterar o tempo limite ou afetar outros usuários!

Rico
fonte
Se você ainda não pode forçar o sudo a solicitar a senha, também pode ser necessário comentar as regras do usuário mencionando "NOPASSWD" se elas estiverem presentes no /etc/sudoers.d/diretório. Eu tenho a linha #includedir /etc/sudoers.dem /etc/sudoerse apesar de que a linha está desativada por um comentário, mas parece que o #antes includedirnão é lido como um comentário!
baptx

Respostas:

40

sudo -kMatará o timestamp de tempo limite. Você pode até colocar o comando depois, comosudo -k test_my_privileges.sh

De man sudo:

-K A opção -K (com certeza mata) é como -k, exceto que remove completamente o carimbo de data e hora do usuário e não pode ser usada em conjunto com um comando ou outra opção. Esta opção não requer uma senha.

-k Quando usada por si só, a opção -k (kill) para sudo invalida o registro de data e hora do usuário, definindo o horário para a época. Na próxima vez que o sudo for executado, será necessária uma senha. Esta opção não requer uma senha e foi adicionada para permitir que um usuário revogue as permissões do sudo de um arquivo .logout.

Você também pode alterá-lo permanentemente. De man sudoers:

timestamp_timeout

O número de minutos que pode decorrer antes do sudo solicitará uma senha novamente. O tempo limite pode incluir um componente fracionário se a granularidade minuto for insuficiente, por exemplo 2.5. O padrão é 5. Defina como 0 para sempre solicitar uma senha. Se definido como um valor menor que 0, o registro de data e hora do usuário nunca expirará. Isso pode ser usado para permitir que os usuários criem ou excluam seus próprios registros de data e hora via sudo -v e sudo -k, respectivamente.

Shawn J. Goff
fonte
2
Tome cuidado sudo -k commandpara não remover as credenciais. Apenas ignora as credenciais atuais e não as armazena.
user1346466
Apenas para adicionar a isso. Se você deseja alterar o tempo limite do registro de data e hora, é necessário editar o sudoersarquivo com sudo visudo. Em seguida, você adiciona a linha Defaults timestamp_timeout = 0no final da lista de outras Defaultsno arquivo. Retire a linha novamente para voltar ao tempo limite "normal".
22617 Floris
Minha pergunta de acompanhamento: unix.stackexchange.com/q/416039/26152
UlfR
5

A resposta de Shawn é ótima, mas há uma opção de configuração adicional que pode ser útil nessa situação.

De man sudoers:

tty_tickets

Se definido, os usuários devem se autenticar em uma base por tty. Com esse sinalizador ativado, o sudo usará um arquivo nomeado para o tty em que o usuário está conectado no diretório de carimbo de data / hora do usuário. Se desativado, o registro de data e hora do diretório será usado.

Esse sinalizador está ativado por padrão.

De man sudo:

Quando a opção tty_tickets está ativada em sudoers, o carimbo de data / hora tem granularidade por tty, mas ainda pode sobreviver à sessão do usuário. Nos sistemas Linux em que o sistema de arquivos devpts é usado, os sistemas Solaris com o sistema de arquivos dispositivos, bem como outros sistemas que utilizam um sistema de arquivos devfs que aumentam monotonicamente o número de inodes de dispositivos à medida que são criados (como o Mac OS X), o sudo pode para determinar quando um arquivo de carimbo de data / hora baseado em tty está obsoleto e o ignorará. Os administradores não devem confiar nesse recurso, pois ele não está disponível universalmente.

Eu acho que é relativamente novo. Se o seu sistema suportar, se você sair do sistema, o sudo solicitará sua senha novamente. (Eu também tenho sudo -Kno script de logoff do meu shell.)

Arrowmaster
fonte