记录日常点点滴滴,欢迎来到我的小站。

0%

CentOS普通用户使用sudo(用户不在sudoers文件中的解决方法)

安装完CentOS后日常使用建议使用普通用户登录,因为root权限太高,即使在测试环境也不要用root用户登录,防止习惯使用root后在生产环境操作时产生意想不到的后果。

当普通用户需要临时提权时用sudo命令,仅需要输入当前用户的密码,便可完成临时的权限提升。用户第一次执行sudo时会要求输入密码来验正用户身份,成功后用户会获得一个有固定存活时长的“令牌”;5分钟。但是sudo命令过程中可能会提示以下报错:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[winbug@centos7 ~]$ sudo ls
[sudo] winbug 的密码:
winbug 不在 sudoers 文件中。此事将被报告。

or

[winbug@centos8 ~]$ sudo ls

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。

[sudo] winbug 的密码:
winbug 不在 sudoers 文件中。此事将被报告。

出现以上问题解决很简单,通过修改/etc/sudoers文件增加用户到配置文件,即可生效。

1、切换到root用户下:

1
2
3
[winbug@centos7 ~]$ su
密码:
[root@centos7 winbug]#

2、查看/etc/sudoers文件的读写权限

1
2
[root@centos7 winbug]# ll /etc/sudoers
-r--r-----. 1 root root 4328 11月 28 02:38 /etc/sudoers

查看为440权限无写权限,需要添加可写权限。

3、为/etc/sudoers文件添加可写权限,目前是root用户,只需要给root用户添加读写执行权限即可。

1
2
3
[root@centos7 winbug]# chmod 740 /etc/sudoers
[root@centos7 winbug]# ll /etc/sudoers
-rwxr-----. 1 root root 4328 11月 28 02:38 /etc/sudoers

4、用文本编辑器打开配置文件(这里我用的是vim),编辑/etc/sudoers文件,添加要提升权限的用户;在文件中找到root ALL=(ALL) ALL,在该行下添加提升权限的用户信息,如:

1
2
3
4
5
[root@centos7 winbug]# vim /etc/sudoers
...
root ALL=(ALL) ALL
winbug ALL=(ALL) ALL
...

说明:格式为(用户名 网络中的主机=(执行命令的目标用户) 执行的命令范围)

3、保存退出,并恢复/etc/sudoers的访问权限为440

1
2
3
[root@centos7 winbug]# chmod 440 /etc/sudoers
[root@centos7 winbug]# ll /etc/sudoers
-r--r-----. 1 root root 4328 11月 28 02:38 /etc/sudoers

4、切换到普通用户,测试用户权限提升功能

1
2
3
4
5
6
[root@centos7 winbug]# exit
exit
[winbug@centos7 ~]$ sudo ls
[sudo] winbug 的密码:
公共 模板 视频 图片 文档 下载 音乐 桌面
[winbug@centos7 ~]$