前言
- 日常服务器开发中经常需要赋予普通用户root权限,即超级管理员权限
- 在此记录一下Linux中如何设置管理员权限给普通用户
ps:赋予管理员权限的方法有三种,这里只记录比较常用的两种
ps2:两种方法大致都是将用户次要组群添加到管理组中,不同的是第一种的wheel组群是默认存在的,第二种则需要我们自己添加,用哪种都一样,第一种方便快捷点
方法一
- 创建普通用户并将wheel群添加进次要组群
[root@centos83 mysql]# visudo
// 如果%wheel前面有“#”则删除,然后保存后退出
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
[root@centos83 mysql]# useradd -G wheel suhai //添加新用户并设置次要组群为管理群wheel
[root@centos83 mysql]# passwd suhai
//此时用户suhai便拥有了管理员权限,使用sudo+命令即可
- 查看群组下有那些管理员
[root@centos83 mysql]# cat /etc/group |grep wheel
wheel:x:10:suhai
- 删除某用户的管理员权限
[root@centos83 mysql]# gpasswd -d suhai wheel
正在将用户“suhai”从“wheel”组中删除
[root@centos83 mysql]# cat /etc/group |grep wheel
wheel:x:10:
//删除权限后,如果又想添加回来,使用 gpasswd -a suhai wheel 命令即可
方法二
- 创建普通用户suhai并赋予密码
[root@centos83 ~]# useradd suhai
[root@centos83 ~]# passwd suhai
更改用户 test 的密码 。
新的 密码:***
无效的密码: 密码少于 8 个字符
重新输入新的 密码:***
passwd:所有的身份验证令牌已经成功更新。
- 切换到suhai用户,分别使用和不使用sudo命令访问/etc/shadow(密码映射文件)【测试权限步骤,可跳过】
[root@centos83 ~]# su - suhai //切换到suhai账户环境
[suhai@centos83 ~]$ ll /etc/shadow
//此时可以看到shadow文件权限为000,只有root账户才可以访问
----------. 1 root root 940 1月 5 21:59 /etc/shadow
//没有赋予root权限时普通账户无法访问
[suhai@centos83 ~]$ cat /etc/shadow
cat: /etc/shadow: 权限不够
[suhai@centos83 ~]$ sudo cat /etc/shadow
[sudo] suhai 的密码:
suhai 不在 sudoers 文件中。此事将被报告。
- 切换到root账户下使用
visudo
命令修改/etc/sudoers配置文件,赋予管理员权限
[suhai@centos83 ~]$ su - //切换到root账户环境
[root@centos83 ~]# visudo
//找到如下内容位置,在root那行下添加相同内容,并修改用户名为suhai,修改后保存并退出
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
suhai ALL=(ALL) ALL
- 修改后切换到suhai用户下,查看/etc/shadow文件
[root@centos83 ~]# su - suhai
上一次登录:二 1月 5 22:03:56 CST 2021pts/1 上
[suhai@centos83 ~]$ cat /etc/shadow
cat: /etc/shadow: 权限不够
[suhai@centos83 ~]$ sudo cat /etc/shadow //使用管理员权限务必在命令前加上sudo
[sudo] suhai 的密码:
root:$6$bOvtr3SEDmKnR1sP$eL98pSpNMPakWsk9QsjqnU/XSZZMeU5YwDr4U9l4eoC9u/Ard6N..UtT5pdcO5xroLKvOpe6OcUKWp2WdUDug/::0:99999:7:::
bin:*:18397:0:99999:7:::
。。。。。。。。。。。。省略。。。。。。。。
suhai:$6$Vh9/o5kehkhaw8MT$q/5XSOa5zt45kP5e2zZcQGDgDa4uQgxwjcaG5blkJkOFy/64AF0MsKhpr415ck6VOhJRlXf5tcTH25wLjuGB61:18632:0:99999:7:::
- 虽然是管理员权限,但每次都需要输入用户密码,此时可以修改sudoers配置文件,免除密码验证
// 此时直接在suhai账户下使用sudo管理员权限修改即可,不需要切换root
[suhai@centos83 ~]$ sudo visudo
// 找到如下内容,在%where行下方添加相同内容,修改为suhai用户名,修改后保存并退出
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
suhai ALL=(ALL) NOPASSWD: ALL
// 此时再在suhai账户下使用命令sudo cat /etc/shadow时即可免密直接查看内容
- 这种方法设置的,查看有哪些管理员只需要去visudo文件查看即可,删除的话就把原先添加的地方删除就行