一、命令sudo
当用户执行sudo时,系统会主动找/etc/sudoers文件,判断该用户是否有执行sudo权限,确认有权限则让用户输入自己的密码确认,接着就执行sudo后的命令。
在/etc/sudoers文件里可以看到 root ALL=(ALL) ALL,root用户可以不输入密码执行sudo后的命令;/etc/sudoers文件可以为用户授予权力。
二、/etc/sudoers文件的编辑
使用visudo命令对文件进行编辑,它会帮你校验文件配置是否正确,如果不正确,在保存退出时就会提示你哪段配置出错。
visudo -c 检查语法错误
-q 不打印语法等错误
-f 指定sudoers文件
三、四中类型别名
User_Alias
Runas_Alias
Host_Alias
Cmd_Alias
可以将这些类型看成数据类型,用来定义变量,如:
User_Alias NAME=User_List
Runas_Alias NAME=Runas_List
HOST_Alias NAME=Host_List
Cmnd_Alias NAME=Cmnd_List
NAME为变量名,必须以大写字母开头,而且只能包含大写字母,数字,下划线;User_List是一个以“,”分开的数组。
'NOPASSWD:' | 'PASSWD:' | 'NOEXEC:' | 'EXEC:' | 'SETENV:' | 'NOSETENV:' | 'LOG_INPUT:' | 'NOLOG_INPUT:' | 'LOG_OUTPUT:' | 'NOLOG_OUTPUT:'
...(可选项):表示可以有多个(Runas_List1:Runas_List2) SELinux_Spec Tag_Spec Cmnd_List段的意思了。
Notice:如果Runas_List1和Runas_List2都没填的话,默认是以root用户执行。