web-dev-qa-db-ja.com

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

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

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

8
Questionmark

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

7
joH1

不正なパスワードを入力しているときにsuを強制終了する最善の方法は、 Control+U に続く Control+D。これにより、迷惑な遅延が回避されます。また、入力をクリアすることもできます Control+U パスワードをもう一度入力してください。

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

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

Control+D 空のパスワード入力で瞬時に実行中のsuを殺すための唯一の方法のようです-テキストが入力された場合、 Control+D 3秒の遅延が発生します(実際に正しいパスワードを入力していない場合、この場合...ルートシェルが起動します)。

2
uukgoblin