sudo命令用来以其他身份执行命令,预设身份是root。在/etc/sudoers中设置了可执行sudo命令的用户,未经授权的用户使用sudo的时候,系统会想管理员发邮件报警。用户使用sudo命令时要先输入密码,然后在五分钟内有效,超过五分钟后要重新输入密码。
usage:sudo (选项) command
选项:
-b:在后台执行命令
-h:显示帮助
-H:将HOME环境变量设为新身份的HOME环境变量
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。
关于sudo的配置文件在/etc/soduers,只有超级用户可以修改它,vim /etc/soduers或者visudo都可以。
文件里的内容:
1、Ai ALL=(ALL) ALL;第一个ALL代表网络中的主机,第二个ALL代表以何种身份执行,第三个代表可以执行的命令
Ai用户在任何主机上可以以任何身份执行任何命令
2、Ai localhost= /sbin/ifconfig, /bin/ls
Ai用户可以在当前主机上以预设身份执行ifconfig和ls命令
3、Ai linux=(TO,KO) /bin/ls
Ai用户可以在linux主机上以TO或KO的身份执行ls命令操作
sudo -u TO ls /;sudo -u KO ls /
我们可以不必每次加-u,把TO或KO设为默认的目标用户即可。再在上面加一行:
Defaults:foobar runas_default=TO
Defaults后面如果有冒号,是对后面用户的默认,如果没有,则是对所有用户的默认。就像配置文件中自带的一行:
Defaults env_reset
4、Ai localhost=NOPASSWD: /bin/ls
指定Ai用户在sudo ls的时候不用输入密码
sudo还有记录日志的功能,但需要由管理员来开启:
touch /var/log/sudo
vi /etc/syslog.conf
在syslog最后一行添加(必须用tab分割)并保存:
local2.debug /var/log/sudo
重启日志守护进程:
ps aux grep syslogd
把得到的syslogd的pid填入下面:
kill -HUP PID
这样sudo就可以记录日志啦!
网友评论