授予用户访问其他用户主文件夹中目录的权限

授予用户访问其他用户主文件夹中目录的权限

我的主文件夹中有一个目录,我希望其他用户能够访问。我为他创建了一个群组,我们都加入了,我做到了

sudo chgrp -R group folder/

他仍然无法进入目录,权限被拒绝。我也这样做了

sudo chmod -R 777 folder/

毫无效果。为什么这不起作用?谢谢。

答案1

您是否检查过他是否具有对父目录的执行权限?否则它将无法工作。

更准确地说,在用户引用文件系统对象的路径上,中间的所有目录都必须为其设置执行权限。实际上,通常最好也授予读取权限,因为只有当访问用户进入所需目录而无法查看这些中间目录时,仅授予执行权限才会起作用,而使用文件管理器或 shell 补全(制表符)时情况并非如此。

如果您不介意其他人对父目录具有读取+执行访问权限,您可能会对chmod o+rx这些目录感到满意,或者您也必须对chgrp这些目录具有访问权限chmod g+rx

或者...或者...您可以使用...POSIX ACL !

您可以使用setfaclgetfacl命令,或使用 Eiciel ( apt install eiciel)(gnome 文件 ACL 编辑器)来设置这些 ACL。除其他功能外,POSIX ACL 允许向特定用户和组授予/撤销权限,而不必遵守传统的 UNIX“ugo”权限模型。如果您不觉得这种比较太过分,可以采用 NTFS 方式。

man acl可能会对您有所帮助,但man setfacl似乎更有趣,因为它涵盖了 Linux 特定的部分,例如所谓的默认 ACL,这些部分由目录中创建的文件系统对象继承。

例如,如果您想授予用户 bob 对目录“work”的“rwx”权限,并使用默认(继承)“r”权限,请输入:

setfacl -m u:bob:rwx,d:u:bob:r work

但是,您仍然需要授予 bob 对他可能需要跨越的任何目录的读取+执行权限才能达到“工作”目的(如果他还不具备这些权限):

setfacl -m u:bob:rx intermediate_directory

顺便提一下,POSIX ACL 并不新鲜。我记得二十多年前在 Digital Unix 系统上使用过它们。但是,系统忘记在 TTY 分配/释放时重置这些 ACL,只重置传统权限,这在设备文件静态创建的旧时代引发了一些漏洞...

编辑:您不必授予中间目录的 +rx 权限,而是可以将目标目录重新挂载到文件系统上的其他位置。假设您有一个目录“work”,其绝对路径为 /x/y/z/work,并且您不想修改 x、y 或 z 的权限。您可以创建一个 /shared/work 目录,然后使用以下命令将 /x/y/z/work 重新挂载到该目录:

mkdir -p /shared/work
mount --bind /x/y/z/work /shared/work

但是,该设置不会在系统重启后继续保留,因此如果您希望它继续保留,请将以下行附加到 /etc/fstab :

/x/y/z/work /shared/work none bind

这样做将使得工作目录内容可以通过 /x/y/z/work 和 /shared/work 访问。

但是当然,如​​果您不介意将 /x/y/z/work 移动到其他地方:

mkdir /shared
mv /x/y/z/work /shared

是最简单且最好的方法。

答案2

打开 Nautilus 并导航到您想要共享的文件夹(在我的示例中,该文件夹是视频)。

右键单击 Nautilus 中的文件夹图标并选择属性。

选择“权限' 选项卡并根据您的要求设置组和访问权限。例如,设置'使用权' 下拉至'创建和删除文件'

在此处输入图片描述

下一步:

选择'本地网络共享' 标签并选择'共享该文件夹'

如果尚未安装共享服务,则您需要在此阶段安装它。

选择“创建共享”

在此处输入图片描述

这将允许其他人在您选择的文件夹中创建和删除文件。

相关内容