[other] 如何限制普通账户修改root密码和切换到root
Tofloor
poster avatar
137******87
deepin
2024-01-07 19:52
Author

如题,新建用户是在sudo组,在 /etc/sudoers 里面做了如下修改:

%sudo ALL=(ALL:ALL) !/usr/bin/sudo passwd root,!/usr/bin/passwd root,!/usr/bin/su root,/usr/bin/*

但是没有用,普通用户还是可以执行 sudo su root切换到 root,而且也可以执行 sudo passwd root 修改root密码。

怎么才能实现普通用户不能执行 su root和修改 root 密码呢?

Reply Favorite View the author
All Replies
蔡EEPIN
deepin
2024-01-07 21:33
#1
It has been deleted!
jjcui8595
deepin
2024-01-07 22:07
#2

创建普通用户不就行了吗

Reply View the author
云的眼泪
deepin
2024-01-07 22:38
#3

你都加入sudo组了,还不能修改?

Reply View the author
neko
deepin
Ecological co-builder
2024-01-08 08:29
#4

你都su了为啥要把root密码告诉普通用户

Reply View the author
pkcn
deepin
2024-01-08 08:49
#5

gpasswd 直接将普通用户踢出 sudo 组就好了

Reply View the author
137******87
deepin
2024-01-08 11:08
#6
云的眼泪

你都加入sudo组了,还不能修改?

主要是想 禁止 sudo 的用户使用部分命令,比如 sudo passwd root。

加到 /etc/sudoers 的规则不知为什么没有效果,普通用户还是可以 执行上述命令

Reply View the author
137******87
deepin
2024-01-08 11:11
#7
pkcn

gpasswd 直接将普通用户踢出 sudo 组就好了

踢出 sudo 组的话,普通用户就安装不了软件了。

我想要实现的效果是:其它命令随便用,但有限的几条命令不给用,比如修改root的密码

Reply View the author
137******87
deepin
2024-01-08 11:11
#8
pkcn

gpasswd 直接将普通用户踢出 sudo 组就好了

踢出 sudo 组的话,普通用户就安装不了软件了。

我想要实现的效果是:其它命令随便用,但有限的几条命令不给用,比如修改root的密码

Reply View the author
hotime
deepin
2024-01-08 12:18
#9

作为一个非专业(安全相关)的普通用户,先分析一下:

首先你需要禁止sudo用户组的管理员账户使用sudo passwd命令修改root用户密码,这需要在/etc/sudoers.d/目录中创建配置文件以达到这个目的;

其次,你需要禁止sudo su这样直接切换到root的操作,不然管理员可以这样切换到root用户后修改或删除配置文件,以解除对sudo用户组关于passwd命令的限制,甚至直接在root用户下使用passwd修改root用户密码;

再其次,需要禁止sudo chattr的操作,因为你的配置文件最终需要使用chattr +i来为它加上保护以避免被修改甚至删除,如果管理员可以随意使用sudo chattr -i来解除保护,那就没意义了。而如果不加保护,管理员可以直接使用sudo vim编辑,然后:w!强行保存甚至直接删除这个文件,这样配置文件就成摆设了;

最后,确保你已经设定了root用户的密码,并且不会忘掉它!


操作举例

1、进入到/etc/sudoers.d/目录,并创建配置文件02_limitation_for_sudoers

cd /etc/sudoers.d/
sudo vim 02_limitation_for_sudoers

配置文件02_limitation_for_sudoers内容如下:

%sudo ALL=(ALL) ALL, !/usr/bin/su, !/usr/bin/passwd, !/usr/bin/chattr

2、参照同目录其他配置文件的权限,修改为440

sudo chmod 440 02_limitation_for_sudoers

3、使用root用户密码切换到root,使用chattr命令保护该配置文件

su root
chattr +i 02_limitation_for_sudoers

最终效果:

图片.png


(另外小声提一句,sudo用户组中的用户是管理员账户,而普通用户是不在sudo用户组中的)


如果你还需要更进一步的安全级别,可能还需要为bios添加密码,以防止未经授权的人通过移动设备进入live系统直接修改你的root密码;以及使用全盘加密技术(如果没有硬件加密支持的话会拖慢系统速度);甚至在物理层面禁止未经授权的人接近并使用该设备。(还有关注各类提权漏洞的消息,及时更新修复已知的安全漏洞等等等等太多了)


最最最后,如果sudo用户组的管理员使用pkexec passwd root命令,则仍然可以直接修改root用户密码,这大概需要去了解一下pkexec相关的安全配置了。

Reply View the author