如何授予对特定文件夹中创建的任何新文件夹/文件/子文件夹的完全访问权限?

如何授予对特定文件夹中创建的任何新文件夹/文件/子文件夹的完全访问权限?

我已授予文件夹的完全访问权限,如下所示:

sudo chmod 777 -R /media/sharedfolder

但是,当用户 A 创建新的子文件夹时,其他用户无法访问该子文件夹。如何自动授予在此文件夹中创建的任何新文件夹/文件/子文件夹的完全访问权限?

我正在运行 Ubuntu 20.04.6 LTS

答案1

您可以设置默认 ACL文件访问控制列表 具体的到这个特定的目录,如下所示:

for i in u g o
  do
    setfacl --default --modify "$i"::7 /media/sharedfolder
    done

...其中ser、roup 和theru g o是,中跳过的空字段表示任何用户/组,是读取(4)、写入(2)和执行(1)的按位组合,在这种情况下,相当于可以替代使用并且 是所需的目标目录。ugo::7rwx/media/sharedfolder

从现在开始,目标目录及其下创建的任何子目录/文件都将默认设置为这些权限。

然而,文件,执行位默认不设置(甚至没有umask 0000)...如果/当需要时,需要在创建文件后手动设置...但是,可以通过默认权限设置读写位。

答案2

用户创建的任何文件/目录的掩码均由用户 umask 定义。umask 通常在用户的 .bashrc 中或通过系统范围内的 /etc/login.def 进行设置。

Ubuntu 中的标准 umask 是 022 - 这导致新文件为 644 而目录为 755。

***注意:仅当您确定希望每个人都有权查看和运行此目录中的文件时才使用 777,在错误的地方使用 777 会带来重大的安全风险。

如果你确实希望用户 A 创建具有 777 的目录,则在用户主目录中的 .bashrc 中修改用户 A 的 umask。

或者,您可以创建一个小脚本,例如:

文件:/usr/bin/mkmediadir

#!/bin/bash
mkdir $1
chmod 777 $1 

设置脚本权限以允许执行。

chmod +x /usr/bin/mkmediadir

现在,当用户 A 想要在 /media/sharedfolder 中创建新目录时,只需运行 mkmediadir 即可设置权限。这将消除用户 A 错误地创建具有开放权限的敏感目录的风险。

相关内容