无需改变所有权即可对特定文件进行写入权限

无需改变所有权即可对特定文件进行写入权限

据我了解,要授予用户写入权限,我可以将文件的所有者更改为该用户并授予其“用户写入权限”(我不想这样做),或者保留相同的所有者,但将此用户添加到文件组并授予该组写入权限。但后者将授予此用户对与该组关联的所有其他文件的权限(无论这些权限是什么)。

因此,如果文件归 user1 和 user1 组所有,则大多数 user1 文件也属于 user1 组。如果我将 user2 添加到 user1 组,user2 将获得额外的权限。我能想到的唯一方法是为这个特定文件创建一个组,使用 chown 更改该组,然后将 user2 添加到该组。这是正确的吗?在我看来,如果我必须对每个文件都这样做,这会带来很多复杂性。我来自 Windows 背景,在那里您只需右键单击文件并将用户添加到文件的权限中。因此,无需为 20 个不同的文件创建 20 个组,然后将用户添加到所有 20 个组等。

有人可以启发我吗?

谢谢。

答案1

是的,这是在unix中授予权限的主要方式。

这个想法是,你通常不会为 20 个不同的文件设置 20 个组,并将用户添加到所有 20 个组中。相反,如果你有几个用户需要访问多个文件,你可以添加包含这些用户的组,并且所有 20 个文件都归该组所有。

使用组而不是添加单个用户的优势在于,在组织中,人们在更换工作时会获得或失去特权。然后,您无需在大量文件中添加或删除他们,只需将他们添加到组或从中删除即可。

但是,如果普通用户/组/其他权限不够灵活,无法满足您的需求,则可以使用另一种方法,即访问控制列表或 ACL。除了旧式用户/组权限之外,ACL 还可以授予或撤销用户或组的权限。

要将用户添加到文件的 ACL,请使用setfacl。例如:

setfacl -m u:lisa:r /path/to/file

将授予用户“lisa”对该文件的读取权限。

setfacl和的手册页中有更多信息getfacl

相关内容