Tes*_*ter 3 permissions directory groups
我的主文件夹中有一个目录,我希望其他用户能够访问该目录。我为他创建了一个小组,我们都加入了,我也加入了
sudo chgrp -R group folder/
Run Code Online (Sandbox Code Playgroud)
他仍然无法进入该目录,因为权限被拒绝。我也做了
sudo chmod -R 777 folder/
Run Code Online (Sandbox Code Playgroud)
无济于事。为什么这个不工作?谢谢。
你检查一下他对父目录\xc2\xa0有执行权限吗?否则它将无法工作。
\n\n更准确地说,沿着用户引用文件系统对象的路径,其间的所有目录都必须为其设置执行权限。在实践中,通常最好也授予读取权限,因为只有当访问用户前进到所需目录而无法查看这些中间目录时,仅授予执行权限才有效,而事实并非如此。例如,当使用文件管理器或 shell 完成(选项卡)时。
\n\n如果您不介意其他人对父目录具有 read+exec 访问权限,您可能会对这些目录感到满意,或者您也chmod o+rx必须对这些目录进行访问chgrpchmod g+rx和。
或者...或者...您可以使用... POSIX ACL \xc2\xa0!
\n\n您可以使用setfacl和getfacl命令,或使用apt install eicielgnome 文件 ACL 编辑器 Eiciel ( ) 来设置这些 ACL。除此之外,POSIX ACL 可以向特定用户和组授予/撤销权限,而不必坚持传统的 UNIX“ugo”权限模型。更多以 NTFS 方式,如果您不觉得这种比较太下流的话。
man acl可能对您有帮助,但man setfacl似乎更有趣,因为它涵盖了 Linux 特定的部分,例如所谓的默认 ACL,它们由目录中创建的文件系统对象继承。
例如,如果您想授予用户 bob 对目录“work”的“rwx”权限,以及默认(继承)“r”权限,请输入\xc2\xa0:
\n\nsetfacl -m u:bob:rwx,d:u:bob:r work
不过,您仍然必须向 Bob 授予他可能必须跨越才能到达“工作”的任何目录的读取+执行权限(如果他还没有这些权限)\xc2\xa0:
\n\nsetfacl -m u:bob:rx intermediate_directory
附带说明一下,POSIX ACL 并不新鲜。我记得二十多年前在 Digital Unix 系统上使用它们。然而,系统忘记在 TTY 分配/解除分配时重置这些 ACL,仅重置传统权限,这在静态创建设备文件的旧时代启用了一些漏洞利用......
\n\nEDIT\xc2\xa0:您可以将目标目录重新挂载到文件系统上的其他位置,而不必授予中间目录的 +rx 权限。假设您有一个目录“work”,其绝对路径是/x/y/z/work,并且您不想修改x、y或z的权限。您可以创建一个 /shared/work 目录,并使用 \xc2\xa0 重新挂载 /x/y/z/work :
\n\nmkdir -p /shared/work\nmount --bind /x/y/z/work /shared/work\nRun Code Online (Sandbox Code Playgroud)\n\n不过,这不会在重新启动后继续存在,因此如果您希望它持续存在,请将以下行附加到 /etc/fstab\xc2\xa0 中:
\n\n/x/y/z/work /shared/work none bind
这样做将使工作目录内容也可以通过 /x/y/z/work 和 /shared/work 访问。
\n\n但是当然,如果您不介意将 /x/y/z/work 移动到其他地方\xc2\xa0:
\n\nmkdir /shared\nmv /x/y/z/work /shared\nRun Code Online (Sandbox Code Playgroud)\n\n是最简单也是最好的方法。
\n| 归档时间: |
|
| 查看次数: |
29799 次 |
| 最近记录: |