说到读取密码,总不能去读取/etc/passwd和/etc/shadow文件吧,里面的密码可不是明文的,那就唯有把自己的密码存储在自己写的脚本中,然后修改sudo命令读取密码的方式,因为sudo命令默认是通过终端设备读取密码,这样就需与用户交互,等待用户输入密码,但偏偏我就不想这么麻烦。于是就修改sudo读取命令的方式,有两种方法,一是重定向,二是使用管道。下面我跟大家分享一下具体如何实现:
首先是重定向,创建文件,命名为guanji(不要命名为shutdown或是与其他已存在命令重名),文件内容如下,功能是实现关机:
- #!/bin/bash
-
sudo -S shutdown -h now <
- password
- EOF
二是管道,创建文件chongqi,内容如下,功能是实现重启:
- #!/bin/bash
- echo password | sudo -S shutdown -r now
接着我们把他们放入搜索路径中,一般是/bin,然后修改执行权限
- cp guanji /bin
- cp chongqi /bin
- chmod 755 /bin/chongqi
- chmod 755 /bin/guanji
不过,这两个脚本可不要随便就给别人知道了,因为你的密码完全暴露,而且别人有权限获得你的密码!