sudo” 是Unix/Linux平台上的一个非常有用的工具,允许为非根用户赋予一些合理的“权利”,让他们执行一些只有根用户或特许用户才能完成的任务,从而减少根用户的登陆次数和管理时间同时也提高了系统安全性。
· sudo的目的:为非根用户授予根用户的权限;
· 配置文件:/etc/sudoers
· visudo命令编辑修改/etc/sudoers配置文件
1、一般用户赋权设置:
[root@localhost ~]# visudo 69 ## Syntax: 70 ## 71 ## user MACHINE=COMMANDS 72 ## 73 ## The COMMANDS section may have other options added to it. 74 ## 75 ## Allow root to run any commands anywhere 76 root ALL=(ALL) ALL 77 test ALL=(root) /usr/sbin/useradd //新增加用户行 |
说明:
第一个字段:root为能使用sudo命令的用户;
第二个字段:第一个ALL为允许使用sudo的主机,第二个括号里的ALL为使用sudo后以什么身份(目的用户身份)来执行命令;
第三个字:ALL为以sudo命令允许执行的命令;
上列解释: test ALL=(root) /usr/sbin/useradd
表示允许test用户从任何主机登录,以root的身份执行/usr/sbin/useradd命令。
用户执行命令效果:
[root@server ~]# su - redhat |
2、sudo配置深入:
1)多个用户的设置(非同一群组用户):
u 对于不同需求的用户:可以按照上面的方法依次增加多行,每行对应一个用户。
u 对于相同需求的多个用户
User_Alias UUU=user1,user2…… 定义用户别名;
[root@localhost ~]# visudo 69 ## Syntax: 70 ## 71 ## user MACHINE=COMMANDS 72 ## 73 ## The COMMANDS section may have other options added to it. 74 ## 75 ## Allow root to run any commands anywhere 76 root ALL=(ALL) ALL 77 sudouser ALL=(root) /usr/sbin/useradd 命令行书写格式,用户列用别名 |
对于多个命令的设置:
[root@localhost ~]# visudo 69 ## Syntax: 70 ## 71 ## user MACHINE=COMMANDS 72 ## 73 ## The COMMANDS section may have other options added to it. 74 ## 75 ## Allow root to run any commands anywhere 76 root ALL=(ALL) ALL 77 sudouser ALL=(root) NETWORKING //命令行书写格式,命令列用别名 |
Cmnd_Alias CCC=command1,command2…… 定义命令别名;
对于多主机的设置和多登陆角色的设置:
•修改 Host_Alias HHH=host1,host2……
定义主机别名;
修改后对应的命令行主机列位置也是用别名
•Runas_Alias RRR=role1,role2…… 定义runas别名,指定的是“目的用户”,即sudo 允许转换至的用户;
建立相关别明后,相关命令行相应的列也是用我们定义的别名。
2)多个用户的设置(同一群组用户):
[root@localhost ~]# visudo |
END,希望大家能够合理为个用户账号授权