Linux学习之路我用 LinuxLinux

Linux之sudo命令

2017-04-29  本文已影响107人  ifcoder

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就可以记录日志啦!

上一篇 下一篇

猜你喜欢

热点阅读