sudo配置文件格式
授权规则格式:用户 登入主机=(代表用户) 命令
示例:
root ALL=(ALL) ALL
格式说明:
user: 运行命令者的身份
host: 通过哪些主机
(runas):以哪个用户的身份
command: 运行哪些命令
以%开头的是组
指定命令
student ALL=(root) /sbin/pidof,/sbin/ifconfig
定义别名
User_Alias NETADMIN = netuser1,netuser2
Cmnd_Alias NETCMD = /usr/sbin/ip
NETADMIN ALL=(root) NETCMD
可以执行目录下除了xxx外的所有命令
#james 可以从136,138主机登录执行/usr/sbin/下的所有命令,除了/usr/sbin/userdel
james 192.168.175.136,192.168.175.138=(root) /usr/sbin/,!/usr/sbin/userdel
sudo用法
切换身份
sudo -i -u xujx
以什么身份执行命令
sudo [-u user] COMMAND
列出用户可用和被禁的命令
sudo -u user -l
其他参数说明
-V 显示版本信息等配置信息
-u user 默认为root
-l,ll 列出用户在主机上可用的和被禁止的命令
-v 再延长密码有效期限5分钟,更新时间戳
-k 清除时间戳(1970-01-01),下次需要重新输密码
-K 与-k类似,还要删除时间戳文件
-b 在后台执行指令
-p 改变询问密码的提示符号
设置su,sudo不用输入密码:
sudo visudo
添加yourUserName ALL=(ALL) NOPASSWD: ALL , 后 ctrl+o, 回车 , ctrl+x 退出:
# User privilege specification
root ALL=(ALL:ALL) ALL
yourUserName ALL=(ALL) NOPASSWD: ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
新启动一个terminal, 测试没有生效。
原因: 设了nopasswd,但是不起作用,原因是被后面的group的设置覆盖了。改为添加在文件最后一行即可。
# User privilege specification
root ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
yourUserName ALL=(ALL) NOPASSWD: ALL