sudo命令
如果普通用户加入了sudo列表(visudo),则可提升权限来执行命令。但若执行时如果普通用户的$PASH
没有加入此命令,则不能执行。这时候执行需要加命令sudo ,同时以绝对路径执行才会有效果
sudoers安全策略的默认密码提示超时为5分钟。即两次sudo操作间隔在5min内则不用重新输入密码,否则需重输。
sudo -l #列出当前可执行内容
[tom@ton ~]$sudo -l
[sudo] password for tom:
...
User tom may run the following commands on this host:
(root) /bin/su -
sudo -u tom touch /home/test.txt #以tom用户的身份新建test.txt文件
/etc/sudoers文件配置具体内容
用户名
登录者来源主机名=(可切换身份)
可执行命令
root ALL = (ALL) ALL
用户名
登录者来源主机名=(可切换身份:身份所属组)
可执行命令
%tom ALL=(ALL:ALL) ALL (这里为在ubuntu版本上的配置)
这其中的(ALL:ALL)
为 可以切换的用户及其所在的组,整个命令表示为 tom组内所有用户可以-从所有来源-来以所有组中的所有用户的身份-执行所有命令,就等于root
root ALL = (ALL) ALL #配置文件中的默认root权限
%wheel ALL = (ALL) ALL #给组授权加%,此处为设置wheel组权限
tom ALL = /sbin/shutdown -h now #可以指定详细命令运行权限
tom ALL = /bin/vi /etc/httpd/conf/httpd.conf #可编辑权限
ton 192.168.1.110 = /etc/rc.d/init.d/httpd start, /etc/rc.d/init.d/httpd fullstatus, \
/etc/rc.d/init.d/httpd configtest #配置httpd服务器用户及其权限
tom localhost=/sbin/usradd #tom用户只能运行usradd命令
可以设置别名来设置sudo文件Host_Alias
User_Ailas
Cmnd_Ailas
设置别名都需要大写字符表示
User_Alias ADMINS = ton,tom,%server #设置别名里都需要大写字符
ADMINS ALL=(root) /bin/su - #ton,tom,server组内用户等普通用户可以su - 至root进行操作
Cmnd_Alias COMAD = !/usr/bin/passwd,!/usr/bin/passwd root,/usr/bin/passwd [a-zA-Z]*
tom ALL=(root) COMAD #可以sudo,但是不可以修改root密码,也可以写成[a-Z]
%wheel ALL = (ALL) NPASSWD:ALL #在wheel组的用户sudo都不用输入密码
%wheel ALL = (ALL) NPASSWD:/usr/sbin/useradd PASSWD:/usr/sbin/usermod
#在wheel组的用户useradd不用输入密码,delmod需要密码
注意
可执行命令为目录时,可以运行该目录内所有命令。
修改默认密码提示超时时间
[root@2ll ~]#vim /etc/sudoers
Defaults env_reset,timestamp_timeout=20 #改为20min,不建议,反而可以将时间缩短
visudo命令
vim /etc/sudoers
== visudo
都是编辑配置sudo文件
但visudo命令有语法检测功能 ,可以用来检测 sudoer配置文件的语法错误
visudo -c #语法检查现有的sudoers文件
visudo -cq #返回1错误,0无错误,可以用$?来获取
su相关命令执行记录
[root@2ll ~]#ls -lah /var/log/secure
-rw-------. 1 root root 36K Apr 13 07:13 /var/log/secure
[root@2ll ~]#tail /var/log/secure
Apr 13 07:03:09 2ll sshd[4378]: pam_unix(sshd:session): session opened for user tom by (uid=0)
Apr 13 07:08:19 2ll su: pam_unix(su-l:session): session opened for user root by tom(uid=1000)
Apr 13 07:12:33 2ll su: pam_unix(su-l:session): session closed for user root
Apr 13 07:13:00 2ll sshd[4378]: pam_unix(sshd:session): session closed for user tom
Apr 13 07:13:01 2ll sshd[4665]: reverse mapping checking getaddrinfo for bogon [192.168.31.62] failed - POSSIBLE BREAK-IN ATTEMPT!
Apr 13 07:13:01 2ll sshd[4665]: Accepted password for tom from 192.168.31.62 port 63838 ssh2
Apr 13 07:13:02 2ll sshd[4665]: pam_unix(sshd:session): session opened for user tom by (uid=0)
Apr 13 07:13:13 2ll su: pam_unix(su-l:session): session closed for user root
Apr 13 07:13:13 2ll sshd[2429]: pam_unix(sshd:session): session closed for user tom
Apr 13 07:13:25 2ll su: pam_unix(su-l:session): session opened for user root by tom(uid=1000)