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
的密码也可提权。
关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。
有需要技术交流的小伙伴可以加我微信,期待与大家共同成长,本人微信:
最近有一些星友咨询我知识星球的事,我也想继续在星球上发布更优质的内容供大家学习和探讨。运维猫公众号平台致力于为大家提供免费的学习资源。知识星球主要针对于在这方便工作、对运维特别感兴趣、想往运维方面发展的小伙伴。大家可以加入星球,一起探讨工作中的疑惑、技术上的难题、以及未来的发展趋势。
为了保证星球的质量,知识星球每周会发表两篇文章(周三和周末)。
知识星球会不定期的为大家提供更优惠或者免费运维峰会门票的福利。