将文件夹的写权限授予文件夹


34

如何授予1组写权限?
我有2个用户(alexben)。
alex是group alex和group的成员consult
ben是group ben和group的成员consult

我想授予对该文件夹alexben文件夹的读写权限consult_documents

我认为alex,如果我成为目录的所有者consult_documents并授予775对目录的访问权限consult_documentsben并且alex能够访问该文件夹。

但这还会允许ben访问alex的其他文件夹吗?如果用户位于两个组中,是否意味着两个组中的所有成员都对所有文件夹具有相同的权限?


您是否希望alex和ben能够在Consult_documents中创建文件,并允许它们对这些文档都具有读/写访问权限?
X田

Answers:


42

在目录上授予775权限并不能自动意味着某个组中的所有用户都可以rwx访问该目录。他们必须是目录的所有者或属于目录的组:

$ ls -ld some_dir
drwxrwxr-x 2 alex consult 4096 Feb 20 10:10 some_dir/
              ^     ^
              |     |_____ directory's group
              |___________ directory's owner

因此,为了允许alex和ben都具有对的写访问权some_dirsome_dir目录本身必须属于该consult组。如果不是这种情况,则目录的所有者(在您的示例中为alex)应发出以下命令:

$ chgrp consult some_dir/

或更改目录内所有内容的组所有权:

$ chgrp -R consult some_dir/

仅当alex是该consult组的成员时,这才起作用,在您的示例中似乎是这种情况。

出于以下两个原因,这将不允许ben访问alex的所有目录:

  1. 并非alex的所有目录都属于该consult
  2. alex的某些目录可能属于该consult组,但alex可能尚未选择允许rwx组访问它们。

简而言之,答案取决于组所有权和为目录设置的组权限位。

所有这些都是在不使用系统上任何其他强制性访问控制措施的前提下提供的。


consult_documents是一个目录,那么您如何将其指定为一个组?
巴宾·隆斯顿

@Babinlonston你不能。您指定consult为组。
Joseph R.

谢谢,我一直在寻找如何将一个目录的访问权限授予一个组。我没有意识到chgrp命令可以做到这一点。我以为chgrp只是将用户添加/删除到组中。
anatak

1
@anatak修改组成员身份的方式usermod不是通过chgrp
Joseph R.

这和一样chown -R :consult some_dir/吗?
亚伦·弗兰克

7

这将使Alex和Ben在此Directory中彼此协作,并且他们无法与其他Dir合作。

修改用户组使用

# usermod -a -G alex,ben alex

然后更改文件夹权限

# chown alex:ben consult_documents

检查这里我已经解决了

$ sudo usermod -a -G alex,ben alex

$ sudo chown alex:ben consult_documents/

cd consult_documents/

$ touch babin

drwxrwxr-x 2 alex ben  4096 Feb 20 15:19 .
drwxr-xr-x 3 alex alex 4096 Feb 20 15:17 ..
-rw-rw-r-- 1 alex alex    0 Feb 20 15:19 babin

$ su - ben

cd /home/alex/consult_documents/

ben@system99:/home/alex/consult_documents$ touch babin1
ben@system99:/home/alex/consult_documents$ ls -la
total 8
drwxrwxr-x 2 alex ben  4096 Feb 20 15:19 .
drwxr-xr-x 3 alex alex 4096 Feb 20 15:17 ..
-rw-rw-r-- 1 alex alex    0 Feb 20 15:19 babin
-rw-rw-r-- 1 ben  ben     0 Feb 20 15:19 babin1
ben@system99:/home/alex/consult_documents$

在这里看看


6

如果我正确理解了您的问题,答案是肯定的。

让我解释:

您的文件夹和文件访问权限分为三类:

xxxyyyzzz
xxx are access rights for the owner
yyy are access rights for the owner's group
zzz are the access rights for everyone else

每个文件和文件夹都必须由用户拥有。

这意味着,如果您有一个名为Consult_documents的文件夹,并且希望从Consult组中的每个人都可以访问该文件夹,则将具有此权限(具有755个访问权限):

drwxrwxr-x Alex Consult [......]

该目录归Alex拥有,组为Consult。Alex具有RWX访问权限。Group Consult具有RWX访问权限。其他用户具有接收权限。

由于您的用户Alex有多个组,因此您可以选择要共享的组。

例如,如果您的文件夹归Alex组的Alex拥有:

drwxrwxr-x Alex Alex [......]

做到:

chown Alex:Consult your_folder

它将变为:

drwxrwxr-x Alex Consult [......]

然后该目录可用于组Consult。

请注意,据我所知,您可以添加一个非所有者组之一的组。但是我不确定是否建议这样做(阅读访问权限时不清楚)。


3

setfacl -mg:debian-transmission:rwx -R / mnt / sra

发现此命令很好,而不是chown,它将完全改变文件或目录的所有者!

你会看到,一个一个“LS -Al” +符号将被添加到显示,有超过一个的主人!

drwxr-xr-x 2根根4096 Nov 8 19:11 sdc1 /

drwxrwxr-x + 3根根4096 Feb 17 19:16 sra /

然后,您可以使用getfacl查看谁可以写入或读取文件或目录!

#文件:sra

#所有者:root

#组:root用户:: rwx

组:: RX

组:debian-transmission:rwx

面具:: rwx

其他:: rx

默认值:user :: rwx

默认值:group :: rx

默认值:group:debian-transmission:rwx

默认值:mask :: rwx

默认值:other :: RX

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.