1、为什么要为用户添加root权限

几乎所有的linux教程中都会写到不要直接使用root用户登录系统。原因不外乎就是风险太大,容易误操作造成不可挽回的影响。如果是在个人娱乐学习的主机上,并没太大关系,系统玩坏了损失也可接受,但如果是在公共主机上,或是跑了正式应用的主机上,root用户还是需要保护起来的。但是在实际使用中,经常会遇到需要root权限方可执行的操作,这就引出了一个为用户添加root权限的需求。最常见的方式就是让用户以 sudo的方式来提权。

2、root提权有什么好处

大致来说,有以下几点:

1.可带入用户环境变量,在使用root权限时,仍可使用自己的个性化设置

2.系统日志中会记录具体用户执行过的操作,方便审计

3.不需要告知用户root密码,仍可让其拥有root权限

4.可以设置用户能够拥有的root权限范围


3、创建用户

 [root@ansible ~]# useradd exampleuser
 [root@ansible ~]# passwd exampleuser

4、赋予用户root权限

方法一:将用户加入 wheel 组

1.首先确保文件 /etc/sudoers 中,这行代码未被注释。

 107%wheel  ALL=(ALL)       ALL

2.然后执行命令。

 [root@ansible ~]# usermod -g wheel exampleuser

以用户 exampleuser 登录系统,使用 sudo 命令来提权,提权时需输入 exampleuser 的密码,默认情况下,一次提权有5分钟有效期。

 [exampleuser@ansible ~]$ sudoyum install httpd
 
 We trust you have received the usual lecture from the local System
 Administrator. It usually boils down to these three things:
 
    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.
 
 [sudo] password forexampleuser:
方法二:单独设置用户权限

1.编辑文件 /etc/sudoers ,找到如下代码:

 100root    ALL=(ALL)       ALL

在底下增加一行:

 101exampleuser ALL=(ALL) ALL

保存后退出。

 [exampleuser@ansible ~]$ sudoyum install httpd
 Loaded plugins: fastestmirror
 Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * epel: mirrors.aliyun.com
 * extras: mirrors.cn99.com
 * updates: mirrors.cn99.com
 Resolving Dependencies
 --> Running transaction check
 ---> Package httpd.x86_64 0:2.4.6-90.el7.centos will be installed
 --> Processing Dependency: httpd-tools =2.4.6-90.el7.centos forpackage: httpd-2.4.6-90.el7.centos.x86_64

使用效果与将用户加入 wheel 组一样。如将代码改为:

 [root@ansible ~]# exampleuser ALL=(ALL) NOPASSWD:ALL

sudo 时不输入 exampleuser 的密码也可提权。