假设Unix系统有两个根用户。
目标是确保如果用户获得根用户访问权限,则无法删除主根用户(即负责系统正确工作的用户),同时允许每个根用户安装包、更改文件权限等(但不能影响"sysadmin“或从系统中删除它们)。
我知道我们可以创建具有特定权限的用户(即使不是root用户),但问题的范围是具有完全系统访问权限的用户。
发布于 2020-09-29 11:30:48
如果一个帐户具有完整的系统访问权限,那么根据定义,您不能阻止它做它选择的任何事情。
理论上,您可以编写一个内核模块,该模块可以在根文件系统上尝试更改/root下的任何内容,并且拒绝卸载它自己,但是仍然有一些方法可以解决这一问题。例如,用救援CD重新启动将完全绕过这样的内核模块。
另一种解决方案可能是虚拟机,其根文件系统可以在每次启动时将自己重置为已知的状态。这可以在VM本身的上下文之外进行管理,因此它内的任何帐户都是不可更改的。您仍然无法阻止VM中的根帐户更改内容,但这可能并不重要,因为您只是在下次重新启动时重新设置它们。
发布于 2020-09-29 13:16:57
根据定义,根用户可以在系统上做任何事情,包括删除/修改其他用户。
允许每个根用户安装软件包、更改文件权限等(但不能影响"sysadmin“或从系统中删除它们)
您可能需要的是sudo设置,这样用户就可以在不完全访问系统的情况下管理系统。
您可以设置sudo以允许运行:
apt install/update/upgrade/remove/purgechown/chmod,但只适用于某些目录/文件useradd/userdel/groupadd/groupdel另一个想法是使用虚拟化(完全或轻型,例如LXC/linux容器),并允许用户完全访问客户操作系统。
https://unix.stackexchange.com/questions/611977
复制相似问题