Mel*_*res 83 ssh terminal ubuntu
你如何禁用可怕的终端命令?
我使用 SSH 访问远程 Ubuntu 服务器,而无需访问物理服务器。我以为我是shutdown在 Ubuntu 操作系统上运行的 NoSQL 服务器中输入“ ”,但实际上我告诉 Ubuntu 服务器关闭。然后我必须告诉服务器管理员我做了什么,以便他可以为我启动物理服务器。那太尴尬了!
我怎样才能避免这种情况再次发生?
gma*_*tht 203
标准答案是“不要以 root 身份登录”。以 root 身份运行的所有命令都很可怕。如果这不是一个选项,您可以将一些别名命令放入您.bashrc的禁用命令中,您觉得特别可怕。例如:
for scary in shutdown halt reboot rm
do
alias $scary="echo If you really want to do that, type: `which $scary`"
done
Run Code Online (Sandbox Code Playgroud)
然后,如果您键入 shutdown 您将收到以下消息:
If you really want to do that, type: /sbin/shutdown
Run Code Online (Sandbox Code Playgroud)
(在生产服务器上尝试之前,请确保您.bashrc已先加载)
退出当前ssh会话并再次登录,或使用. ~/.bashrc应加载/运行 .bashrc。也许尝试在rm没有任何参数的情况下运行以确保您的服务器没有禁用.bashrc登录或类似的自动加载。
请注意,如果您主要关心暂停和关机,您可以考虑安装molly-guard,这将使您在关闭机器之前输入主机名。如果您定期在命令行上关闭整个操作系统,但要确保关闭正确的操作系统,这将更有用。
你也可以用一个不那么可怕的命令来测试试试这个,比如注销或退出。
Att*_*tie 73
sudo存在是有原因的——使用它。当您的命令(在本例中为交互式 CLI)完成后,您将被转储回用户级 shell,而不是 root shell。很少有值得使用 root shell 的理由。(我很惊讶这还不是答案......)
话虽如此,不要成为一个布偶,使用sudo了一切。了解您在做什么,并了解为什么它不需要/不需要 root 权限。
此外,您可以区分对 root / 用户 shell 的提示。这也使您更明显地返回到 shell 提示符而不是“其他一些 CLI ”。我的非常丰富多彩,并且有很多有用的信息(例如主机名),这使得知道命令将在哪个主机上执行变得非常简单,并且还可以更轻松地回顾历史和定位提示 - 根shell 使用默认提示。
这更适合在“您的”帐户上使用,但如果您认真对待安全/系统管理,那么您将不会共享密码/帐户,并且您不会在没有完全意识到的情况下坐在 root shell 中。
正如人们一遍又一遍地说的那样“使用别名命令来营造安全环境是一个坏主意”。你会在安全的环境中感到舒适,在不应该输入那些“可怕”的命令的地方。然后有一天你会换工作,或者登录一台新机器,然后轰隆一声“哎呀,我不是故意的,对不起”......
CSM*_*CSM 44
'molly-guard' 包(至少在 Debian 派生系统上)将在关机、暂停、关机和重启周围安装一个包装器。如果检测到终端是远程终端,则会提示输入主机名。如果不匹配,则取消该命令。
| 归档时间: |
|
| 查看次数: |
23082 次 |
| 最近记录: |