使用 rsync 时目录内文件的默认权限

使用 rsync 时目录内文件的默认权限

我正在尝试配置由特定用户/组创建目录和文件时设置的文件权限,但似乎遇到了一些问题。

我已尝试设置以下内容:

chmod 2770 /path/to/directory
chmod g+rwxs /path/to/directory

但是当我在此目录中创建一个新目录时例如

/path/to/directory/deletemeplease

deletemeplease将拥有权限drwxr-sr-x

在内创建的任何文件/path/to/directory/都有权限rw-r--r--

我也尝试过为目录设置 ACL,如下所示:

setfacl -dm u::rwx,g::rwx,o::r /path/to/directory

设置ACL时,创建的文件和目录的权限越来越rw-rw-r--接近,但执行位仍未设置。

这里我是否遗漏了某个步骤?

编辑

链接的答案仅解释了 umask 和 chmod 之间的区别。我的问题是,设置权限后,它们不会发生。

当创建新目录或文件时,我希望将权限设置为rwxrwxr--。但是,当创建新目录时,目录的权限为rwxr-sr--。当创建新文件时,权限为rw-rw-r--。然后,如果创建新目录并包含文件,则新创建目录中的文件具有权限,rw-r--r--这非常奇怪。

我刚刚发现,在终端内创建文件和目录时,权限会按预期应用(减去文件的执行位)。当通过 rsync 从正在执行的脚本创建目录/文件时,会发生上述奇怪的行为。该脚本是通过 www-data 用户执行的,该用户是应用了 acl 的目录的目录用户和组,因此在 rsync 运行时不应该应用它们吗?

运行 rsync 的脚本正在执行以下命令:

rsync -rltgoDzvO /path/for/files/to/sync /path/to/directory

相关内容