Como inserir automaticamente o período de graça do sudo no login do CLI? [duplicado]

9

O que eu gostaria de fazer é poder fazer login e sudo comandos imediatamente, sem precisar digitar uma senha novamente. É muito redundante digitar minha senha duas vezes seguidas quando preciso fazer login e executar um comando privilegiado. Eu entendo o risco de segurança que exige que nós digitemos novamente uma senha quando estivermos fora por algum tempo, mas parece que o login deve definir essa sessão automaticamente por padrão para evitar isso, mas isso não acontece por algum motivo.

Estou ciente de estas soluções mas ambos confiam no gdm e parece que tenho apenas o LightDM instalado para iniciantes. Além disso, não faço login em uma interface GUI e o AFAIK no console não usa nenhum desses para gerenciar logins em primeiro lugar.

Estou usando o Ubuntu 13.04 no VMware, se isso é importante. Eu tenho um KDE instalado, mas normalmente não o carrego a menos que eu tenha um motivo para isso.

A solução ideal também funcionaria a partir de logins SSH.

Atualizar :

Com base nas sugestões de Gilles, tenho agora esta configuração de trabalho:

~ tail -n1 /etc/pam.d/sshd
session optional pam_exec.so seteuid /usr/local/sbin/update_sudo_ticket

e ( certifique-se de usar sudo visudo para editar os sudoers)

~  sudo head -n12 /etc/sudoers|tail -n1
Defaults        !tty_tickets

e crie um novo script

~ cat /usr/local/sbin/update_sudo_ticket
#!/bin/sh
touch -c "/var/lib/sudo/$PAM_USER" 2>/dev/null

e torne-o executável ( sudo chmod u=+rwx,g=+rx-w,o=-rwx /usr/local/sbin/update_sudo_ticket ):

~  ls -la /usr/local/sbin/update_sudo_ticket
-rwxr-x--- 1 root root 57 Sep 21 20:52 /usr/local/sbin/update_sudo_ticket
    
por krowe 21.09.2013 / 17:24

2 respostas

7

Você pode usar pam_exec para invocar um comando externo. Tenha em atenção que pam_exec é executado num ambiente que está sob o controlo do utilizador que chama o serviço de início de sessão, pelo que não o invoque a partir de su , apenas de serviços com um ambiente previsível, como sshd ou login .

sudo não tem opção de atualizar o carimbo de data / hora de um usuário, apenas para removê-lo. Então você terá que atualizar o carimbo de hora manualmente. Se você não estiver usando a opção tty_tickets (que não é muito útil), tudo o que você precisa fazer é atualizar o registro de data e hora no diretório.

session optional pam_exec.so seteuid /usr/local/sbin/update_sudo_ticket

onde /usr/local/sbin/update_sudo_ticket é algo como

#!/bin/sh
touch -c "/var/lib/sudo/$PAM_USER" 2>/dev/null
    
por 22.09.2013 / 03:41
-2

Edite seu arquivo / etc / sudoers com visudo e adicione esta linha:

%wheel ALL=(ALL) NOPASSWD: ALL

Depois, verifique se seu usuário faz parte do grupo wheel :

usermod -a -G wheel USERNAME_HERE
    
por 21.09.2013 / 23:29