CentOS 普通用户提升root权限

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权限。。。。

原文地址:https://www.cnblogs.com/asker009/p/10264340.html