授予组对文件夹的写权限

ana*_*tak 47 permissions group files

如何向一组授予写权限?

我有两个用户(alexben)。

alex是 groupalex和 group 的成员consult

ben是 groupben和 group 的成员consult

我想授予对文件夹alex和的读写访问权限。benconsult_documents

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

但这是否也允许ben访问alex的其他文件夹?如果用户在两个组中,这是否意味着来自两个组的所有成员对所有文件夹都获得相同的权限?

Jos*_* R. 51

授予对目录的 775 权限并不自动意味着某个组中的所有用户都将获得对该目录的rwx访问权限。他们需要是目录的所有者或属于目录的组:

$ ls -ld some_dir
drwxrwxr-x 2 alex consult 4096 Feb 20 10:10 some_dir/
              ^     ^
              |     |_____ directory's group
              |___________ directory's owner
Run Code Online (Sandbox Code Playgroud)

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

$ chgrp consult some_dir/
Run Code Online (Sandbox Code Playgroud)

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

$ chgrp -R consult some_dir/
Run Code Online (Sandbox Code Playgroud)

这仅在 alex 是该consult组的成员时才有效,在您的示例中似乎就是这种情况。

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

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

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

所有这些前提是您不在系统上使用任何额外的强制性访问控制措施。

  • @anatak修改组成员身份是通过“usermod”而不是“chgrp”完成的 (2认同)

Bab*_*ton 7

这将使 alex 和 ben 在此目录中相互协作,而他们不能在其他目录中协作..

使用修改用户组

# usermod -a -G alex,ben alex
Run Code Online (Sandbox Code Playgroud)

然后更改文件夹的权限

# chown alex:ben consult_documents
Run Code Online (Sandbox Code Playgroud)

在这里检查我已经解决了

$ 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$
Run Code Online (Sandbox Code Playgroud)

看看这里


Lau*_* C. 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
Run Code Online (Sandbox Code Playgroud)

每个文件和文件夹都必须归用户所有。

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

drwxrwxr-x Alex Consult [......]
Run Code Online (Sandbox Code Playgroud)

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

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

例如,如果您的文件夹归来自 groupe Alex 的 Alex 所有:

drwxrwxr-x Alex Alex [......]
Run Code Online (Sandbox Code Playgroud)

这样做:

chown Alex:Consult your_folder
Run Code Online (Sandbox Code Playgroud)

它会变成:

drwxrwxr-x Alex Consult [......]
Run Code Online (Sandbox Code Playgroud)

然后该目录可用于咨询组。

请注意,据我所知,您可以添加一个不属于所有者组的组。但我不确定是否推荐(读取访问权限时不清楚)。


小智 6

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

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

您将在“ls -Al”上看到将添加一个+号以表明有多个所有者!

drwxr-xr-x 2 根 4096 十一月 8 日 19:11 sdc1/

drwxrwxr-x+ 3 根 4096 二月 17 日 19:16 sra/

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

# 文件:sra

# 所有者:root

# 组:root 用户::rwx

组::接收

组:debian-传输:rwx

面具::rwx

其他::接收

默认值:用户::rwx

默认值:组::rx

默认:组:debian-传输:rwx

默认值:掩码::rwx

默认值:其他::rx