1、sudo命令可以使普通用户具备root用户的权限,使用前,需要先配置/etc/sudoers文件。
#sudoers文件是只读,一般情况下都是用visudo来修改,visudo也一定程度上可以保证修改sudoers文件是安全的,避免同时修改的冲突情况 [root@bigdata-senior01 ~]# ll /etc/sudoers -r--r----- 1 root root 4093 11月 28 22:35 /etc/sudoers [root@bigdata-senior01 ~]# visudo #找到这行 ## Allow root to run any commands anywhere root ALL=(ALL) ALL 然后可以添加其他用户 hadoop ALL=(root) NOPASSWD:ALL xu.dm ALL=(root) ALL es ALL=(ALL) ALL
amy ALL=(root) /usr/sbin/useradd
#配置字段说明 root ALL=(ALL) ALL 第一个字段:root为能使用sudo命令的用户; 第二个字段:第一个ALL为允许使用sudo的主机,第二个括号里的ALL为使用sudo后以什么身份来执行命令; 第三个字:ALL为以sudo命令允许执行的命令;
解释: amy ALL=(root) /usr/sbin/useradd,/usr/sbin/userdel 表示允许amy用户从任何主机登录,以root的身份执行/usr/sbin/useradd和userdel命令。
NOPASSWD:表示使用sudo提升权限的时候不用输入密码
注意:命令必须是全路径
2、sudoers的其他配置
2.1 非同组的多个用户配置
#对于不同需求的用户:可以按照上面的方法依次增加多行,每行对应一个用户。 #对于相同需求的多个用户,可以定义别名,统一用户 User_Alias UUU=user1,user2…… #定义用户别名; ## User Aliases ## These aren't often necessary, as you can use regular groups ## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname ## rather than USERALIAS # User_Alias ADMINS = jsmith, mikem User_Alisa s1=user1,user2,user3,user4 //s1代表四个用户 ... ... #像上面的配置一样加入,用户列用别名就可以 s1 ALL=(root) /usr/sbin/useradd
2.2 类似的别名情况
可以有主机别名,命令别名等等,在/etc/sudoers文件里都有例子
2.3 对于组的配置,多了一个百分号%
## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL 允许wheel组的用户执行所有命令。 ## Allows members of the users group to mount and unmount the ## cdrom as root %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom ## Allows members of the users group to shutdown this system %users localhost=/sbin/shutdown -h now
3、其他办法
修改 /etc/passwd 文件,把用户UID修改成0就可以。UID=0,代表着root权限,而不是用户名root代表root权限。。。。