有时候我们的客户常常在停电或者需要关闭服务器的时候很生硬的强行press power-key,
所以除了提醒他们不要这么做,还需要给他们一个账号,只能用来关机
————————————————-
使用root登陆,
#useradd pf
#echo /sbin/shutdown -h now > /sbin/shut
#chmod 755 /sbin/shut
#vi /etc/passwd
修改 uid 为0 (比较危险);用户目录为/tmp;shell为/sbin/shut;删除用户密码
如此,ok
可以通过本地或远程使用pf关机
考虑到该用户的实际权限过大,为了防止意外,先测试一下,login提示符下输入pf,成功关机后,再用root用户进入,
#su pf
看是否也正常关机
###有时候也会出现login正常登陆时候用pf可以正常关机,不过普通用户su pf的时候会出现权限泄露,是要注意的.
绝对不推荐–将关机指令写在用户的profile中,(网上有很多这样的做法),这就类似于早期win98的autoexec.bat,在里面写的程序通常都可以在系统启动之前用Ctrl+C来强行中止掉,如果你非要这么做,需要用trap来屏蔽中断.
还有一种方法相对安全一点,不直接修改passwd中的关机用户的uid,而通过在程序中setuid(0)给关机用户一个暂时root的权限,用来执行 system() 里调用的关机指令,不管有没有执行成功,都会回收权限,不过我没有成功,在程序中调用了setuid(0)后,用户的uid没有改变.
另外说明一下: /etc/shutdown.allow 这个文件的用途是允许普通用户可以使[用ctrl][alt][del]来重新启动主机,而不是赋予某个用户关机的权限
^_^,发现自己真的好垃圾,其实sudo完全可以很容易解决这个问题,哈哈