Como posso CTRL ^ C em um prompt de senha?

8

Digamos que iniciei um sucomando e quero cancelá-lo. ControlO + Cnão funciona da sumesma maneira que para sudo... Tenho que terminar o prompt (digitando a senha várias vezes ou corrigindo a senha).

Existe algo que eu possa digitar para eliminar um prompt de senha?

Ponto de interrogação
fonte
@DisplayName Você não pode controlar-c de um su como você pode um sudo ... esse é um cenário diferente.
Questionmark
a resposta é control-D.
DisplayName
@DisplayName Sim, consulte a resposta de Gilles. Meu ponto é que isso não deve ser marcado como uma duplicata ...
Questionmark
É uma duplicata. A resposta para o post que eu vinculei também diz control-D.
DisplayName

Respostas:

5

suestá sendo executado com privilégios elevados e você não está vendo a resposta ^C(que envia um sinal com seus privilégios). Você poderia su para outro shell e matá-lo do outro shell. Além disso (dependendo do sistema), ele poderá responder a SIGHUP(um sinal de interrupção) se você fechar a sessão do terminal em que o incômodo suestá em andamento.

Há mais de uma maneira de suignorar o seu ^C, por exemplo,

  • estabelecimento de manipuladores de sinal ou
  • funcionando sob um terminal de controle diferente.

Uma rápida leitura do Debiansu parece que ele usa o último. Seu sistema, é claro, pode ser diferente.

Leitura adicional:

Thomas Dickey
fonte
Se eu executar sucomo um usuário comum e ele estiver aguardando uma entrada de senha do usuário, ele está "executando com privilégios elevados" neste momento?
techraf
1
Sim: você pode ver por si mesmo fazendo um a ps -efpartir de outro terminal. Isso acontece automaticamente porque sufoi configurado para fazer root .
Thomas Dickey
7

Você pode CTRL-D supedir.
Este atalho sinaliza um final de arquivo no console, encerrando o prompt; o console será exibido Authentication error, o que é esperado.

joH1
fonte
3
Control-D seria um EOF (QUIT é uma coisa diferente e geralmente é capturado ). Mas sim, o EOF poderia funcionar.
Thomas Dickey
2

Eu encontrei a melhor maneira de matar sudurante a digitação de uma senha incorreta é Control+ Useguido por Control+ D. Isso deve evitar atrasos irritantes. Você também pode limpar a entrada com Control+ Ue tentar digitar a senha novamente.

Control+ Ué um comando que limpa a linha de texto atual e também funciona em um shell (e provavelmente em outros lugares também). Também é bom que pareça funcionar supara limpar a senha inserida no momento.

Usar Control+ Cnão parece funcionar, parece que, por algum motivo, susimplesmente o ignora. Não é verdade que o usuário que iniciou o processo não pode mais matá-lo por causa de setuid - sumorre perfeitamente se você o matar com SIGTERMou SIGQUITde outro terminal (como um usuário que o iniciou). SIGINTnão funciona, então suprovavelmente apenas o ignora.

Control+ Dcom uma entrada de senha vazia parece ser a única maneira de interromper instantaneamente uma corrida su- se algum texto for digitado, pressionar Control+ Dinduzirá um atraso de 3 segundos (a menos que você realmente tenha digitado a senha correta, nesse caso. .. ele iniciará um shell raiz).

uukgoblin
fonte