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
的密码也可提权。