我正在寻找一种方法,以便特定用户或组不应该被授予删除系统中任何文件的权限,而只能读取/执行该文件。
答案1
我的系统上有一些用户对电脑一无所知,因此他们尝试探索它只是为了学习目的。我的目的是,我可以给他们一个单独的帐户,他们可以通过该帐户探索系统,而不会意外删除或更改系统上的任何文件,但我作为另一个用户应该能够对系统进行任何更改。
这就是 Unix/Linux 系统正常工作的大致方式。用户仅有权删除或修改(a)他拥有的文件或目录,或(b)他所在的组具有写入权限的文件或目录。
系统管理员(我想就是你)可以控制一切。因此,只需确保这些新用户位于他们自己的组中即可。
Unix 被设计成一个多用户系统。所以,从一开始,Unix/Linux 只给予普通用户有限的权限。一般来说,普通用户不能乱动系统文件。只有名为 的系统管理员root
才能执行此操作。
有些系统允许普通用户通过运行sudo
.确保您的/etc/sudoers
文件没有向他们提供该功能。
如果你想严格一点,就不要给他们甚至主目录的所有权。他们仍然拥有 和 的写入权限/tmp
,/var/tmp
但这不会造成麻烦,除非他们创建的文件太大以至于填满了分区。
答案2
看到您的需求后,您可以使用该setfacl
工具来限制对某些重要文件/目录(例如/etc
,,,/lib
)的访问/bin)
。这样新用户将无法删除或修改任何重要的系统文件。
命令 :
setfacl -m u:{user_name}:{permission} {file/directory}
限制学习者的主目录并不是一个好主意。