Como cancelar o tempo limite restante do sudo atualmente aplicado?

38

Quando acabei de executar sudoe não quero que ele permaneça ativo durante o tempo limite normal, como posso cancelar esse tempo limite ativo restante ?

sudo -k mata-o para a sessão de terminal atual, mas se um processo estiver em execução no momento e não puder ser executado sudo -k, existe uma maneira de cancelá-lo de outra sessão de terminal?

E existe uma maneira de cancelar todos os sudotempos atualmente aplicados (para todas as sessões do terminal e todos os aplicativos em execução do gksudo, etc.?

Embora, pense bem, uma GUI em execução pode simplesmente precisar ser desligada, mas verifiquei se o Alt+ F2mantém o gksu ativo para chamadas subseqüentes.

Peter.O
fonte

Respostas:

38

Não tenho certeza se você deseja eliminar um tempo limite do sudo para que ele não atinja o tempo limite ou o tempo limite seja imediato, mas se você deseja remover o registro de data e hora restante, pode usar sudo -k

Caso contrário, se você estiver tentando cancelar um tempo limite para que o sudo não atinja o tempo limite, acho que isso não é possível em uma sessão atual. A única maneira que eu sei seria alterar timestamp_timeouto sudoersarquivo e reiniciar a sessão.

wajiw
fonte
oops .. fiquei um pouco lento com os detalhes: acabei de adicionar um pouco mais à minha pergunta .. sobre "-k" ... e, sim, estou me referindo a uma situação pontual , embora agora traga a questão de um "one-off" em todo o sistema. ... Obrigado (+1) pela resposta que foi perfeita para a minha pergunta original (sem detalhes) .. #
315 Peter.O
1
Eu não entendo como -Ké praticamente diferente de -k(quando -k é usado por seu campo) .., mas -ktem uma dupla utilização: 1. por si só (invalida o registro de data e hora) ... 2. quando usado com um comando, ele solicita uma senha, independentemente de um tempo limite do sudo expirar ou não ..... A propósito: sudo -k trabalha em Alt + F2 para eliminar o registro de data e hora de uma chamada anterior do sudo / gksu.
Peter.O
Sim, eu não tenho idéia de quando eu usaria um sobre o outro.
wajiw
Além do problema "eliminar todos os carimbos de data / hora existentes" .... Sem alterar as configurações subjacentes do sudoers , a única maneira que vejo de executar um sudo "garantido` único e único é sudo -k; sudo -k appname... porque, embora sudo -k appnameobriga o usuário a digite a senha, ele deixa inalterado um carimbo de data / hora pré-existente ... (eu menciono isso como "griss to the mill") ... e talvez a maneira mais simples de "matar" todos os timestamps existentes seja simplesmente evitar o problema inteiramente e pressione Ctrl + Alt + L para bloquear a tela :).
Peter.O
hahaha, se você tem a habilidade, eu iria com essa opção
wajiw
8

Apenas em um de seus pontos:

mas se um processo estiver em execução nessa sessão e não puder executar o sudo -k

Isso é específico da linha de comando. Se você quiser fazer alguma coisa enquanto outro processo estiver em execução, pressione Ctrl+ Zpara pausar o processo; você terá acesso ao terminal atual novamente, faça o que quiser. Quando terminar, você pode digitar jobspara obter uma lista de processos, com um número ao lado deles. Digite fg 1(por exemplo - e simplesmente fgse houver apenas um trabalho) para reiniciar um processo, elevando-o para o primeiro plano. Da mesma forma, bgpara fazer a mesma coisa, mas deixando o processo em execução em segundo plano.

Sessão de exemplo

$ sudo apt-get install hello
<CTRL+Z>
[1]+  Stopped    sudo apt-get install hello
$ sudo -k
$ jobs
[1]+  Stopped    sudo apt-get install hello
$ fg 1
Loading database...
....
Stefano Palazzo
fonte
1
Stefano: Obrigado ... isso é tão bom ... O Linux fica me dizendo: "Sim, é claro que posso fazê-lo" :) ... e, pensando bem, eu estava meio consciente desse Ctrl + Z, mas metade não é suficiente!) ... Agora que encontrei uma situação "real" em que não se trata apenas de texto na tela, tenho certeza que nunca esquecerei ... deve ir .. Eu tenho algumas Cntrl + Z-ing a fazer ...
Peter.O
2

Eu encontrei uma solução. como minha pesquisa não mostrou nada parecido e esta é uma pergunta frequente: o sudo armazena em algum lugar no sistema de arquivos (por exemplo, em / var / run / sudo), um diretório por nome de usuário, vários arquivos que funcionam como carimbo de data / hora , um arquivo para cada terminal. exclua esses arquivos e seu sistema estará seguro novamente. apenas lembre-se de que esses arquivos são visíveis apenas para o root (caso contrário, um invasor pode ler o carimbo de data e hora e voltar ao ponto em que eles ainda eram válidos - conceder root-ls a qualquer pessoa é perigoso). portanto, no meu / etc / pm / sleep / e talvez também no protetor de tela, corro:

rm -f /var/db/sudo/*/*

como raiz, é claro ...

piotr5
fonte