パスワードプロンプトからCTRL ^ Cを削除するにはどうすればよいですか?


8

suコマンドを開始し、それをキャンセルしたいとします。 Control+ Cがのsuように機能しないsudo...プロンプトを終了する必要があります(パスワードを十分に間違えるか、正しくすることにより)。

パスワードプロンプトを強制終了するために入力できるものはありますか?



@DisplayName sudoのようにsuからcを制御することはできません...これは別のシナリオです。
疑問符

答えはcontrol-Dです。
DisplayName

@DisplayNameはい、Gillesの回答を参照してください。私のポイントは、これは重複としてマークされるべきではないということです...
疑問符

複製です。私がリンクした投稿の回答にもcontrol-Dと書かれています。
DisplayName 2016年

回答:


5

su特権で実行されている、とあなたはそれが応答表示されない^C(で信号を送信するあなたの権限)。あなた su別のシェルに行き、他のシェルからそれを殺すことができました。また(システムによっては)、SIGHUPぎこちないことsuが進行中のターミナルセッションを閉じた場合、(ハングアップシグナル)に応答する場合があります。

suを無視できる方法は複数あります^C。たとえば、

  • シグナルハンドラーの確立または
  • 別の制御端末で実行されている。

Debianをsu手短に読むと、後者を使用しているようです。もちろん、システムは異なる場合があります。

参考文献:


su通常のユーザーとして実行し、ユーザーからのパスワード入力を待っている場合、現時点で「昇格された特権で実行」されていますか?
techraf 2016年

1
はい:ps -ef別の端末からを実行すると、自分で確認できます。surootに setuidされているため、自動的に行われます。
Thomas Dickey、

7

CTRL-D suプロンプトを出すことができます。
このショートカットは、コンソールのファイルの終わりを示し、プロンプトを終了します。コンソールにはが表示されますがAuthentication error、これは予想できることです。


3
Control-DはEOFです(QUITは別のものであり、通常はキャッチされます)。しかし、はい、EOFは機能します。
Thomas Dickey、

2

su間違ったパスワードを入力しているときにkillする最善の方法は、Control+のU後にControl+を押すことDです。これにより、迷惑な遅延が回避されます。Control+ Uで入力をクリアして、パスワードを再入力することもできます。

Control+ Uは、現在のテキスト行をクリアするコマンドであり、シェルでも(おそらく他の場所でも)機能します。またsu、現在入力されているパスワードを消去するために動作するように見えるのも良いことです。

Control+ を使用Cしても機能しないようですsu。何らかの理由で無視されているようです。プロセスを開始したユーザーがsetuidのためにそれを強制終了できないことは正しくありません- (それを開始したユーザーとして)別の端末suで、SIGTERMまたはSIGQUIT別の端末から強制終了すると、完全に正常に終了します。SIGINT動作しないので、suおそらく単に無視します。

Control+ D空のパスワード入力を使用して実行を即座に強制終了する唯一の方法のようですsu-テキストが入力されている場合、Control+ Dを押すと3秒の遅延が発生します(実際に正しいパスワードを入力していない場合)。 ..ルートシェルを起動します)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.