Como ver no terminal que você tem privilégios de sudo? (então, sabendo que tenho esses privilégios, basta digitar sudo -k
) Seria melhor não adicionar muita informação ao terminal também, apenas algum tipo de alerta simples e pequeno!
TEMPO RESTANTE É IMPOSSÍVEL, certo?
Além disso, como ver quanto tempo ainda tenho com esses privilégios nesse terminal específico? (para que eu possa deixar terminar em vez de digitar sudo -k
). Eu acho que o tempo restante pode aparecer sempre que eu pressionar a tecla Enter.
EDIT: Eu pesquisei mais e descobri que /var/lib/sudo/$USER/$nPts
(onde $ nPts é o atual terminal pts a partir de ps -p $$
) tem seu timestamp atualizado toda vez que um comando sudo é emitido, e só é acessível se você usar um comando sudo, portanto o tempo restante será sempre o configurou um ...
PS .: Como alternativa, tentei, alias sudo='sudo -k'
mas não gosto de digitar a senha de todos os comandos ... E também alias sudos='sudo -k'
( isso é alias ssudo='sudo -k'
bom se você digitou uma linha longa, basta pressionar Home e digitar 's') funciona se você deseja emitir apenas um comando digitando sudos
. Mas ainda sinto falta de saber quando tenho privilégios normais de sudo para saber que preciso agir ...
Respostas:
[Eu ainda gostaria de saber se há uma resposta melhor.]
Eu encontrei uma maneira que funciona, e o prompt será mantido em uma única linha:
no final do seu
~/.bashrc
adicione isto:EDIT: Descobri que
sudo -n uptime
atualizará o tempo limite do sudo, portanto, toda vez que você pressionar a tecla Enter, esse tempo será atualizado ... Isso torna inútil o conhecimento do tempo restante, pois ele sempre será o configurado, com padrão de 15min. .e para encontrar a melhor formatação de cores para o seu gosto, você pode usar o ScriptEchoColor com a
--escapedchars
opção:para parar de piscar remova
\E[5m
como em\E[0m\E[93m\E[41m\E[1m SUDO \E[0m
fonte
Seu terminal não "tem privilégios sudo", a menos que você faça algo bobo como
sudo bash
NÃO FAÇA ISSO!Tudo o que você precisa fazer para "ter privilégios normais de sudo" é não digitar
sudo
na frente do comando./usr/bin/id
é uma boa maneira de ver o quesudo
faz. Por exemplo:A
sudo
página do manual diz "A política de sudoers armazena em cache credenciais por 15 minutos, a menos que seja substituída por sudoers (5)". O que isso significa é que, por padrão, se você emitir umsudo
comando (e digitar sua senha), aguarde 14,9 minutos antes de emitir um segundosudo
comando, não precisará digitar sua senha novamente. Se você esperar 15,1 minutos, precisará digitar novamente a senha.sudo -k
simplesmente expira o temporizador de 15 minutos imediatamente. O único uso que posso versudo -k
é se você está prestes a render seu terminal desbloqueado para alguém em quem não confiaUID 0
.fonte
sudo
na frente do comando". Mas se eu quiser verificar minhas regras de firewalliptables -L
, não funcionará, a menos que eu digitesudo iptables -L
. Meu argumento é: como podemos realmente evitar o uso do sudo?sudo -k
, eu estou preocupado com crackers tentando acessar remotamente minha máquina (eu realmente não sei se eles podem fazê-lo de qualquer maneira ...), ou no caso de eu deixar a minha máquina aberta sem bloqueá-lo por alguns momentos ... bem, o ponto real é o seguinte: eu quero fazer desta maneira! Eu não ligo para ter que digitarsudo -k
e minha senha novamente mais tarde quantas vezes eu precisar, me sinto bem quando faço dessa maneira! :)/bin/su
. Tem certeza de que deseja descartá-lo? "Acesse remotamente minha máquina ..." e, suponho, assuma o controle/proc/YourPID/fd/{0,1,2}
. Não. Se sua máquina for acessada remotamente, o bandido terá maneiras mais fáceis de obter o UID 0. Você deve aumentar seu Linux-foo antes desse nível de preocupação.alias k=/usr/bin/sudo -k
, substitua osudo
comando por um apelido ou função bash que encerre a chamada/usr/bin/sudo
com/usr/bin/touch $HOME/tmp/$$/sudotime
e, finalmente, adicione algo para imprimir $ {{time (now) - time ($ HOME / tmp / $ $ / sudotime))) no seu prompt do Bash. Não é trivial, mas se isso fará você se sentir bem, faça isso.sudo
com um alias para qualquer palavra aleatória, eles ainda poderia digitar/usr/bin/sudo
em vez desudo
e seria ainda trabalho como sudo faz :(. De qualquer forma eu gosto da idéia .. Eu me pergunto se eu mudar o real/usr/bin/sudo
ele vai quebrar algo diferente todos os meus scripts que o utilizam .. mesmo se eu fizer isso, eles poderiam, através da leitura dos scripts, adivinhem sudo tornou-se ..