如何按 CTRL^C 退出密码提示?

如何按 CTRL^C 退出密码提示?

假设我启动了一个su命令,我想取消它。 Control+C不像su它那样工作sudo... 我必须完成提示(要么输入密码错误足够多的次数,要么输入正确的密码)。

我可以输入一些内容来终止密码提示吗?

答案1

你可以CTRL-D su按提示。
此快捷方式在控制台上发出文件结束信号,退出提示符;控制台将显示Authentication error,这是预期的。

答案2

su正在以提升的权限运行,并且您没有看到它响应^C(它发送一个信号你的特权)。你可以 su到另一个 shell 并从另一个 shell 中杀死它。另外(取决于系统),如果您关闭正在进行SIGHUP尴尬的终端会话,它可能会响应(挂断信号) 。su

有不止一种方法su可以忽略你的^C,例如,

  • 建立信号处理程序或
  • 在不同的控制终端下运行。

快速阅读Debian 的su似乎它使用后者。当然,您的系统可能会有所不同。

进一步阅读:

答案3

我发现su在输入错误密码期间杀死的最佳方法是Control+U后跟Control+ D。这应该可以避免令人烦恼的延迟。您也可以使用Control+清除输入U,然后重新尝试输入密码。

Control+U是一个清除当前文本行的命令,并且也可以在 shell 中工作(也可能在其他地方)。它似乎可以用来su清除当前输入的密码,这也很好。

使用Control+C似乎不起作用,似乎由于某种原因su忽略了它。由于 setuid 的原因,启动该进程的用户无法再杀死它是不正确的——如果您使用另一个终端或从另一个终端(作为启动它的用户)su杀死它,那么它就会完全消失。不起作用,所以可能只是忽略它。SIGTERMSIGQUITSIGINTsu

Control+D用空密码输入似乎是唯一的方法即刻Kill a running su- 如果输入任何文本,则按Control+D将导致 3 秒的延迟(除非您实际上输入了正确的密码,在这种情况下......它将启动 root shell)。

相关内容