Red Hat Enterprise Linux 使用sudo临时授予普通用户Root权限/ 用户不在sudoers文件中解决办法
在系统管理中,为了系统安全性,最高管理员一般不会告知一般用户Root账户密码,但一般用户有时又需要用到Root权限进行一些操作,这里就用到“sudo”了命令,来临时授予普通用户Root权限,同时还可一在sudoers文件里限制一般用户的权限,这样就有了安全保证,也方便了系统的运维。
问题
- 如何临时授予普通用户Root权限
- 如何解决解决用户不在sudoers文件中的问题
其实,这里提到的两个问题,实际上是一个问题,当我们使用“sudo su [用户名]”这个命令时候,提示[ ]用户不在sudoers文件中,实际上就是该用户没有被授予Root的权限
环境
Red Hat Enterprise Linux
尝试使用“sudo”进入普通用户Root权限
- 语法:sudo su 用户名
[chenxin@localhost ~]$ sudo su chenxin
[sudo] chenxin的密码: > >这里输入授权账户的密码,不是Root的密码
> > 输入后系统如提示如下,就是该账户没有被授权
chenxin不在sudo文件中。此事将被报告。
接下来,开始讲如何临时授予普通用户Root权限
操作步骤
一、为预授权账户授权
>>说明:以下展示命令语法,大括号和中括号中的内容均为单选项
1、登录Root账户
- 语法:su root
[chenxin@localhost ~]$ su root
>>su登录账户的命令,如后面不输入用户名的话,默认登录为Root账户
密码:
>>密码输入正确后就进入到Root账户下了,提示符将变为
[root@localhost etc]#
1、查看sudoers文件权限
语法:
- ls -all 目录/文件
- ls -all 文件
[root@localhost /]# ls -all /etc/sudoers >>执行成功后提示如下信息
-r--r-----. 1 root root 4328 4月 28 2020 /etc/sudoers
>>该文件分别为文件所有者和所在组赋予了读取的权限,没有为其他用户赋予任何权限
该提示类信息,第一列“-r–r-----.”是表示权限的信息,可分为三个字段,分别用“–”隔开,代表三种角色,
第一个字段表示文件所有者(u)的权限,
第二段表示所属组(g)的权限,
第三段表示其他账户(o)的权限,
文件权限有三类,分别是读取(r),写入(w),执行(x)
2、编辑(修改)文件权限
这里为大家介绍两种修改权限的方法
2.1
语法:
- chmod [u/g/o] [+/-/=] [r/w/x] {[目录/文件] /[文件 ]}
可以一次性编辑多个权限,中间用","隔开
+增加权限 -减去权限 = 赋予权限
[root@localhost /]# chmod u+w,u+x,g+w,g+x,o=rwx /etc/sudoers
>>执行成功后会直接换行
[root@localhost /]#
[root@localhost /]# ls -all /etc/sudoers >>再次查看文件权限
-rwxrwxrwx. 1 root root 4328 4月 28 2020 /etc/sudoers
2.2用数字方式修改权限
语法:
- chmod [0/1/2/4/5/6/7] [0/1/2/4/5/6/7] [0/1/2/4/5/6/7] {[目录/文件] /[文件 ]}
权限与数字的对应关系 :读取(r)4,写入(w) 2,执行 (x) 1
也可以用权限对应的数字相加表示所有的权限如:
7=4+2+1 即 7就代表rwx权限,5=4+1就代表rx权限
设置权限时用一个三位数来表示,三位数字按照字段顺序(u,g,o)分别对应一个角色
[root@localhost etc]# chmod 765 /etc/sudoers
[root@localhost etc]# ls -all /etc/sudoers >>查看文件权限
-rwx-rx-rw. 1 root root 4328 4月 28 2020 /etc/sudoers
3、修改sudoers文件(添加预授权用户至sudoers文件)
3.1查看文件
我们可以先列出文件所在目录,并查看文件,sudoers文件存放在“/etc”目录下;
语法:
- cd 目录
- ls
- cat {[目录名/文件名] / [ 文件名]}
[root@localhost /]# cd /etc >>进入目录后,提示符也会发生变化
[root@localhost etc]
[root@localhost etc] ls >>执行后,系统将会列出/etc目录下的所有文件和子目录
............
cron.daily fwupd ksmtuned.conf nfsmount.conf rc3.d sudo.conf
cron.deny gconf ld.so.cache nftables rc4.d sudoers
cron.hourly gcrypt ld.so.conf nsswitch.conf rc5.d sudoers.d
........... >>这里为大家展示部分文件
[root@localhost etc] cat sudoers >>执行后展示结果如下
............
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
## Allows members of the 'sys' group to run networking, software,
............. >>这里为大家展示部分内容
3.1编辑文件
语法:
- vim 目录/文件
- vim 文件
[root@localhost etc] vim sudoers
>>执行后展示出的内容与查看到的内容一样,但是环境不一样,
>>执行"vim"后就进入到文件内部了,此使,我们可以对文件进行编辑了
>>想要对文件进行编辑,按下键盘上的字母"i",就进入输入模式了
>>进入输入模式后,下发会出现一行提示符"---插入----"
>>然后用'↑' '↓' '←' '→'光标进行操作
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL >>找到这一行
chenxin ALL=(ALL) ALL >>添加这一行内容
语法:[预授权的用户名] ALL=ALL=(ALL) ALL
注意: Linux严格区分大小写
## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
>>编辑结束后按下"ESC"退出编辑模式
>> 保存并退出文件 语法 :wq
>>退出编辑模式后,直接输入冒号":",后面接着输入"wq",即为保存并推出
w:保存 q:退出 后面加"!"为强制执行
3.2改回sudoers文件权限并退出Root用户模式
>>这次我们用数字是方式改回权限
[root@localhost etc]# chmod 440 /etc/sudoers
[root@localhost etc]# ls -all /etc/sudoers
-rwxrwxrwx. 1 root root 4328 4月 28 2020 /etc/sudoers >>可以看到权限已经改回去了
[root@localhost etc]# lexit >>退出Root用户模式
[chenxin@localhost etc]$
我们这里之所以要将sudoers文件的权限该回去,是因为如果收入文件最高的权限后,将无法使用"sudo"命令
4、使用sudo临时授予普通用户Root权限
[chenxin@localhost etc]$ cd / >>退到根目录
[chenxin@localhost /]$ sudo su chenxin
[sudo] chenxin 的密码:
[chenxin@localhost /]$
>>现在我们的普通用户已经获得Root用户权限了
到这里,Red Hat Enterprise Linux 使用sudo临时授予普通用户Root权限的方法,以及用户不在sudoers文件中解决办法就讲解完成了,也请大家多多指教。
参考文献
[1]Red Hat Enterprise Linux 8.0运维与管理.[B].中国工信出版社.电子工业出版社.2020.11
[2]gaoyi445.添加用户到sudoers.[cp].CSDN.2018-05-28