这种情况已经发生过几次了,我想关闭自己的计算机,抓住下一个最好的终端(总是有二十几个在用),然后输入sudo halt
,才意识到我刚刚关闭了我的其中一台服务器,因为我没有关闭半小时前使用的 ssh 连接。
我认为解决这个问题最简单的方法是使用我的 zshrc 文件sudo halt
根据主机名将别名改为其他内容。不过,我不确定您是否可以使用别名来执行此操作。有什么想法吗?
答案1
我认为更好的解决方案是编写一条 sudo 规则,始终要求输入密码才能执行“halt”命令。这应该能提供良好的检查,尤其是当您在生产服务器上使用不同的密码时。
我认为 sudoers 条目看起来像这样,但您可能需要查阅手册页:
全部(本地主机) = 密码:/sbin/halt
答案2
我用来避免在 SSH 主机中运行命令的解决方案不知道我在哪里运行它,就是当我 ssh 进入另一台计算机时使用不同的提示颜色:
autoload -U colors && colors
if [[ $+SSH_TTY -eq 1 ]]; then
prompt_color=%{$fg[green]%}
else
prompt_color=%{$fg[red]%}
fi
# define your prompt here
export PROMPT="$prompt_color %U%2v%u %~ %# %{${reset_color}%}"