Linux sudo主要是用于把部分权限分给特定的用户使用,同时又限定特定用户不能超过权限使用范围。
sudo的配置文件:/etc/sudoers(权限为440,意思仅root用户才能使用它),此文件建议不要以vim等命令来编辑,最好直接用命令visudo.
visudo编辑/etc/sudoers条目格式:
who which_hosts=(runas) [TAG:]command
上条目的通俗意思:某个用户(who)能以另一个用户的身份(runas)通过那些(远程来的)主机(which_hosts)执行什么命令(command).
who、which_hosts、runas、command支持别名(相当于组的概念),别名必须全部且只能使用大写英文字母的组合。
who的别名规范:User_Alias USERSALIAS = ......(.....可以是用户的用户名、%组名、其他用用户的别名(也就是嵌入)
which_hosts的别名规范:Host_Alias HOSTALIAS = .....(....可以是主机名、hostIP、network/netmask)
Runas_Alias的别名规范:EXEUSERS = .....(.....可以是用户名、%组名、其他Runas别名)
Cmnd_Alias的别名规范: CMD = .....(.....可以是命令的绝对路径、目录(此目录内的所有命令)、其它事先定义过的命令别名)
TAG主要有NOPASSWD(不要用户输入密码)、PASSWD(用户输入密码;默认是要输入密码,输入密码为who的密码。
sudo命令执行日志记录在/var/log/secure
具体使用和注意事项请参考:man sudoers
例子:(平台redhat5.8-64位系统)
例2:(加入TAG和别名)