了解使用ProFTPD的权限(尤其是组写入)

我有proftpd在用户proftpd下运行。 我在ProFTPD中有一个名为“example.com”的新虚拟服务器,指向/var/www/example.com 。 我使用用户“example_com”和组“www-data”来修饰/var/www/example.com文件夹。 我已经将该目录设置为SGID(2775)。 这允许FTP用户“example_com”login并上传文件和文件夹,同时允许Apache进程用户“www-data”运行网站并读/写文件。

在我的proftpd.conf ,我设置了umask

 Umask 2664 2775 

我的麻烦是这个。 当“example_com”创build一个新文件时,它将其设置为2644,而不是2664.创build新目录时,将其设置为2755而不是2775.在这两种情况下,都缺less“group-writable”权限。

如何在全球范围内打开ProFTPD中的组写?

根据文档,你不能在umask指令中设置SGID位; 它说:“提供的任何参数必须是八进制数,格式为0xxx。”

http://proftpd.org/docs/directives/linked/config_ref_Umask.html

正如joschi暗示,你真正想要的是“Umask 0002” – 一个umask是对象的位,而不是一个绝对的CHMOD设置。 您只需要指定一次(而不是“umask 0002 0002”)作为第一个将适用于所有。

这不是特定于ProFTPd,它是标准的POSIX权限“math”。

你正在混合文件和umask的实际权限。 请参阅http://en.wikipedia.org/wiki/Umask进行介绍。