将权限写入特定文件而不更改所有权

据我所知,给一个用户的写权限,我可以改变文件的所有者给该用户,并给它“用户写权限”(我不想这样做),或保持同一个所有者,但将此用户添加到文件的中,并为该组提供写入权限。 但是后者会给这个用户权限给与这个组关联的所有其他文件(无论这些权限是什么)。

所以说,如果文件是由user1和组user1拥有,则大多数user1文件也有user1组。 如果我将用户2添加到组user1,用户2将获得额外的权限。 我能想到的唯一方法是为这个特定文件创build一个组,使用chown改变组,然后将user2添加到这个组中。 它是否正确? 在我看来,如果我必须为每个文件执行此操作,会造成很多复杂性。 我来自一个窗口背景,在那里你只需右键单击该文件,并将用户添加到该文件的权限。 因此,不需要为20个不同的文件创build20个组,然后将用户添加到所有20个组等。

任何人都可以启发我吗?

谢谢。

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

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

使用组而不是添加单个用户的好处是在一个组织中,人们在更换工作时会获得或失去特权。 然后,而不是添加或从大量的文件中删除它们,你只需要添加或从一个组中删除它们。

但是,对于正常用户/组/其他权限不够灵活的情况,您可以select使用访问控制列表或ACL。 除了旧式用户/组权限之外,ACL还会为用户或组授予或撤销权限。

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

 setfacl -mu:lisa:r /path/to/file 

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

在手册页中有更多关于setfaclgetfacl