今天我错误地closures了一台生产机器,因为我以为我在我的本地机器上。 我知道,新手错误:-(
作为一个解决scheme,它不会再发生,我正在考虑删除关机命令的执行权限,因为该机器应该始终打开。
这是一个好主意吗? 你能通过这样做看到任何不需要的副作用吗?
干杯,丹
完全另一个问题如何被警告,你在生产机器上工作是标记terminal。 例如user@machine:~#文本可能在生产机器上是红色的,在开发时是绿色的,等等。下面是很好的教程:如何做到这一点: Color Bash Prompt
我可以给你的最好build议是不要以root用户身份login,除非你需要root权限,并且确保你在每台机器上有一个不同的root / sudo密码。
使关机无法进行是一种select,但它不是一个好的select。 要么别名shutdown shutdown -a和touch /etc/shutdown.allow或者chmod ax /sbin/shutdown
另外,它在哪里结束? 你是否也不允许停止,重启和初始化?
有几点需要考虑:
我不认为shutdown权限是处理这种情况的方法。 基本上,你只是吸取了教训。 振奋起来。
我做了同样的事情 – 获得很长的ssh会话链,然后在我通过的其中一台机器上搞乱了路由,把自己关了。 我拙劣了一个rsync请求,导致了系统在世界另一端的系统破坏。 我在生产服务器上运行了rm -rf / path 。 (那个时候我学习了如何恢复工作。)
所以,年纪大得多,希望稍微有点聪明,现在我有自己严格的规定。
我的工作性质要求我花费大量的时间来处理各种各样的根本提示,但是由于我过去的错误,我保持了比当初创build时更好的态势感知。
如果你使用的是Ubuntu,那么试试Molly-guard。 正如这个类似的问题所讨论的。
取决于,真的。 你可以尝试包装命令,但这意味着如果你做了更新或升级,影响可执行文件,你可能会忘记它,并搞砸了一个更新。 使用系统关机命令可以是一个PITA,特别是如果你有新的雇员或replace,结果不知道你在玩系统二进制文件。
就我个人而言,我会考虑将命令封装在一个脚本中,通过名称来标识系统,并让您在运行实际二进制文件之前确认这是您真正想要执行的操作,或者您必须键入一定的字母顺序才能确认关机在运行二进制之前。 这应该给一些暂停。
您可以考虑设置命令提示符以包含机器名称,至less在服务器上。 这可能有助于防止其他命令将来在错误的机器上运行。 如果机器名称被着色以使其突出显示,并且甚至可以使用颜色代码来识别服务器angular色,则更为有效。
一种方法是不使用su和/或直接login到root 。 最好直接login到帐户,并在本地机器和SSH密钥上有不同的密码。
当然,除了看红色的'#'提示符之外。
是的,在shutdown命令中删除执行位是防止意外closures的最简单和最安全的方法,尤其是在计算机上安装了类似KDE的桌面环境时,并且要防止注销时意外closures。
至于新人感到困惑,我认为他们会做的第一件事情是用ls -l /sbin/shutdown来找出为什么它不起作用(特别是如果他们有制表符完成可执行文件名的好习惯的话)。 显然,尽pipe你应该告诉他们你所做的任何改变。
为了更加安全,您可以在/etc/rc.local添加一行来从shutdown命令中删除执行位,以便在重新启动后不要忘记重置它。
你可以从root的path中删除/ sbin /。 这样你就需要input完整的path来执行它,而且通常会修复事故。