善意提醒

如果您打开本站很慢,布局排版混乱,并且看不到图片,那么可能是因为您还没有掌握用科学的方法上网的本领。

2017-12-27

Linux关机权限的特殊情况

很多Linux教程都说shutdown/reboot需要root权限。其实这不是完全正确的。

正常想来没错:shutdown/reboot如果可以不用root权限那还了得?然而其实至少在RHEL 7.2上并不绝对是这样子。当出现以下的特殊情况时:
1.是当前唯一登录的用户;
2.直接调用reboot,或shutdown带了now参数;
3.登录会话来自本地物理终端。
同时满足以上所有条件的话,就可以无需root权限以任何用户的身份关机或重启服务器。

我用RHEL 7.2默认安装的「基础设施服务器」进行的测试。Debian 9没有这个问题。我想这样的做法大概思路是:「如果你都摸到物理服务器边上,急着要马上关机,并且我认为这不会影响到其他人,那么当然可以让你关机,因为就算不让你关机你也可以拔电源线对吧?」

当然,这种想法应该没有考虑到服务器上运行爬虫之类的情况。我没有做更多测试,也许如果有一个别人的daemon进程就会使得结果不一样。不过我想这个事情可以提醒我们的是:Linux的事情不要想当然,也不要网上说什么都信。不要把一切都交给系统默认安全性设置,对于普通用户还是乖乖地把权限控制严格点比较好。