Como faço para aumentar o tempo limite para lembrar a senha do sudo?

61

Eu já sei que preciso ajustar o arquivo / etc / sudoers, mas gostaria de ver informações completas e também uma solução que não exija que eu use o vieditor.

Atualização: nunca, tente editar o arquivo com outra coisa que não visudo.

sorin
fonte
11
você pode definir o EDITOR env var ao usar visudo :: sudo env EDITOR = nano visudo
Boa pessoa

Respostas:

86

Execute sudo visudoe adicione esta linha:

Defaults    timestamp_timeout=-1

Veja man 5 sudoers. -1faz com que a senha nunca exceda o tempo limite. Você pode alterar o número para o que quiser em minutos.

A página do manual sudodiz que sudo -v"estende o tempo limite do sudo por mais 5 minutos".

A execução de 'sudo visudo' em vez de editar o arquivo diretamente faz com que o sistema valide o arquivo sudoers antes de confirmar as alterações. Por exemplo, se você deixar um caractere perdido em algum lugar, ao salvar e sair, ele dirá "há um erro no arquivo sudoers, o que você gostaria de fazer?" ... portanto, você terá a chance de voltar e editar. Isso realmente aconteceu comigo há 10 minutos.

lhf
fonte
20
Sim, mas visudoexecuta algumas verificações básicas de integridade no arquivo sudoers antes de salvar. Se você bagunçar o arquivo usando vidiretamente, você poderá se impedir de usar o sudo, tornando muito difícil desfazer a alteração.
nohillside
4
Os privilégios são assim em outros sistemas, então nada a ver com a Apple. visudoenvolve o editor padrão do sistema (eu acho que o usuário root padrão se o root substituiu o padrão), então não tem nada a ver com vi bar no nome. No meu sistema (não entre a Apple), fico nano. Experimente export EDITOR='/bin/nano'o editor que desejar e use o visudo.
20412 Chris
4
Um ... Você não pode usar o root para corrigi-lo, porque você não pode obtê-lo, porque acabou de empacotar seu arquivo sudo ... Esse é o ponto.
Davisales
11
Em uma função profissional, você pode ter acesso ao sudo, mas não a senha de root. Seu servidor pode estar em um datacenter em todo o país, dificultando o acesso ao modo de usuário único. Mas, se você fosse profissional, provavelmente não receberia esses avisos. O ponto é que você deve aprender com os profissionais. Não procure maneiras de evitar formar bons hábitos. Então temos que ouvir seus gritos frenéticos no Stack Exchange e no IRC.
de Bruno Bronosky
11
(Talvez seja óbvio para todos, mas adicionando): timestamp_timeout é em minutos, pode incluir um componente fracionário.
usuário
3

Tenha muito cuidado ao modificar /etc/sudoersdiretamente!

Por exemplo, tentei diretamente a sugestão acima:

sudo sh -c 'echo "\nDefaults timestamp_timeout=-1">>/etc/sudoers'

que estragou meu /etc/sudoersarquivo (em uma VM do CentOS Virtualbox). Deveria ter ficado:

sudo sh -c 'echo -e "\nDefaults timestamp_timeout=-1">>/etc/sudoers'

Felizmente, eu tive acesso à conta root, logada como root, usei visudoe consertei o problema! Então, eu concordo com os comentários acima para usar visudo.

user304227
fonte
1

Todas as informações para sudoers podem ser encontradas no terminal com o comando

man sudoers

Você pode até usar um texto simples para editar arquivos, mas os privs dificultam isso. sudoers é-r--r----- (Octal 0440)

Isso indica que a Apple realmente não quer que você mexa com o arquivo. Essa é realmente a segurança principal do sistema operacional.

As opções para edição são vi, emacs ou meu BBEdit favorito.

Andrei Freeman
fonte
5
Há uma razão para esses privilégios serem definidos. Eles são definidos na tentativa de forçá-lo a usar, em visudovez de editar o arquivo você mesmo. Além disso, isso não tem nada a ver com o OS X. É padrão * nix. Além disso, se você deseja usar um editor não padrão, basta definir a $EDITORvariável de ambiente antes de chamar visudo. por exemplo EDITOR=nano sudo visudo.
Davisales
1

Desative sudo timeout com este comando:

sudo sh -c 'echo "\nDefaults timestamp_timeout=-1">>/etc/sudoers'

Para reativar o tempo limite do sudo com este método:

sudo sed -i "/Defaults timestamp_timeout=-1/d" /etc/sudoers
tapinha
fonte
8
Na página do manual sudoers: o arquivo sudoers deve sempre ser editado pelo comando visudo que bloqueia o arquivo e faz a verificação gramatical. É imperativo que os sudoers estejam livres de erros de sintaxe, pois o sudo não será executado com um arquivo de sudoers sintaticamente incorreto.
Matteo
@ Matteo Bem, você pode fazer o que quiser em sua propriedade, desde que esteja ciente das consequências. Em algumas situações, isso é bom, por exemplo, eu o uso em versões novas do Mac, que não possuem dados valiosos como parte de um script de automação. Sugeri uma edição desta resposta para fornecer um aviso. Idealmente, sudodeve haver uma maneira única de alterar isso sem precisar editar um arquivo!
precisa saber é o seguinte
11
Cuidado, este é um conselho perigoso. Use o visudo.
Will Sheppard