Como posso CTRL ^ C sair de um prompt de senha?

7

Digamos que iniciei o comando su e quero cancelá-lo. Controle + C não funciona para su como acontece para sudo ... Eu tenho que terminar o prompt (seja obtendo a senha errada o suficiente ou acertando).

Existe algo que eu possa digitar para matar um aviso de senha?

    
por Questionmark 02.03.2016 / 02:05

3 respostas

5

su está sendo executado com privilégios elevados, e você não está vendo responder a ^C (que envia um sinal com seus privilégios). Você poderia su para outro shell e eliminá-lo do outro shell. Além disso (dependendo do sistema), ele pode responder a SIGHUP (um sinal de desligamento) se você fechou a sessão de terminal onde o su está em andamento.

Há mais de uma maneira pela qual su pode ignorar seu ^C , por exemplo,

  • estabelecendo manipuladores de sinais ou
  • executando sob um terminal de controle diferente.

Uma rápida leitura de % desu parece que usa o último. Seu sistema, claro, pode ser diferente.

Leitura adicional:

por 02.03.2016 / 02:20
7

Você pode CTRL-D su 's prompt.
Esse atalho sinaliza um fim de arquivo no console, encerrando o prompt; o console exibirá Authentication error , o que é esperado.

    
por 02.03.2016 / 03:22
2

Eu descobri que a melhor maneira de matar su durante a digitação de uma senha incorreta é Controle + U seguido por Controle + D . Isso deve evitar atrasos irritantes. Você também pode limpar a entrada com Controle + U e tentar digitar novamente a senha.

Controle + U é um comando que limpa a linha atual do texto, e também funciona em um shell (e provavelmente em outros lugares também). Também é bom que pareça funcionar com su para limpar a senha inserida no momento.

Usando o Controle + C parece não funcionar, parece que por algum motivo su apenas o ignora. Não é verdade que o usuário que iniciou o processo não pode mais matá-lo por causa do setuid - su morre perfeitamente se você o matar com SIGTERM ou SIGQUIT de outro terminal (como um usuário que o iniciou). SIGINT não funciona, então su provavelmente apenas o ignora.

Controle + D com uma entrada de senha vazia parece ser a única maneira de instantaneamente matar a execução su - se algum texto é digitado, então pressionar Controle + D irá induzir um atraso de 3 segundos (a menos que você tenha digitado a senha correta, neste caso ... iniciar um shell de root).

    
por 08.04.2018 / 18:54