sudo
语法:
sudo [-bhHpV][-s ][-u <用户>][指令]
sudo [-klv]
参数:
- -b 在后台执行指令。
- -h 显示帮助。
- -H 将HOME环境变量设为新身份的HOME环境变量。
- -k 结束密码的有效期限,也就是下次再执行sudo时便需要输入密码。
- -l 列出目前用户可执行与无法执行的指令。
- -p 改变询问密码的提示符号。
- -s 执行指定的shell。
- -u <用户> 以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份。
- -v 延长密码有效期限5分钟。
- -V 显示版本信息。
- -S 从标准输入流替代终端来获取密码。
Linux下实现不用密码便可关机重启
因为sudo命令默认是通过终端设备读取密码,这样就需与用户交互,等待用户输入密码。但是我们可以修改sudo读取命令的方式,有两种方法,一是重定向,二是使用管道。
重定向:
创建文件 password 用于保存密码
[atguigu@hadoop102 redirect]$ vi password
123456
通过命令行执行
[atguigu@hadoop102 redirect]$ sudo -S shutdown -h now < password
EOF
通过 bash 脚本执行
[atguigu@hadoop102 redirect]$ vi shutdown.sh
#!/bin/bash
sudo -S shutdown -h now < password
EOF
其中选项-S(S是大写的)是使sudo命令用标准输入替代终端输入,这样sudo命令就可以通过重定向读取password了。password为你的密码。
管道:
创建文件restart.sh,内容如下,功能是实现重启:
[atguigu@hadoop102 redirect]$ vi restart.sh
#!/bin/bash
password=123456
echo $password | sudo -S shutdown -r now
注:这里的 password 不能是文件,是root密码,这里的-S选项和password意义同上。