我在用户 proftpd 下运行 proftpd。我在 ProFTPD 中有一个指向 的新虚拟服务器,名为“example.com” /var/www/example.com
。我已将/var/www/example.com
文件夹的所有者设为用户“example_com”和组“www-data”。我已将目录设置为 SGID (2775)。这允许 FTP 用户“example_com”登录并上传文件和文件夹,同时允许 Apache 进程用户“www-data”运行网站并读取/写入文件。
在我的 中proftpd.conf
,我已将 umask 设置如下:
Umask 2664 2775
我的问题是这样的。当“example_com”创建新文件时,它将其设置为 2644 而不是 2664。当创建新目录时,它将其设置为 2755 而不是 2775。在这两种情况下,它都缺少“组可写”权限。
如何在 ProFTPD 中全局启用组写入?
答案1
根据文档,您不能在 umask 指令中设置 SGID 位;它说:“提供的任何参数都必须是八进制数,格式为 0xxx。”
http://proftpd.org/docs/directives/linked/config_ref_Umask.html
正如 joschi 所暗示的,您真正想要的是“umask 0002” - umask 是按位对对象的,而不是绝对的 CHMOD 设置。您只需指定一次(而不是“umask 0002 0002”),因为第一次将适用于所有。
答案2
这与 ProFTPd 无关,而是标准 POSIX 权限“数学”。
您混淆了文件的实际权限和 umask。请参阅http://en.wikipedia.org/wiki/Umask进行介绍。