组权限inheritance和umask

编辑:在我的情况下,virtual_use_local_privs = TRUE做的伎俩。

我试图强制newly created files and directories内的foo /目录为owned by nginx用户owned by nginx并设置正确的权限,以便nginx group users can execute and modify它们,如果需要的话。

整个事情是我刚才configurationvsftpd服务,其中我的virtual用户作为vsftpd user ,其中vsftpd是一个真正的用户没有壳。

login后,每个用户都被chrooteduser vsftpdgroup nginx所拥有的目录中。 为了做到这一点,我创build了chroot目录:

 mkdir chroot/ 

然后给予默认权限:

 chown -R vsftpd:nginx chroot/ 

然后启用SGUID:

 chmod -R g+s chroot/ 

就在这里,当一个vsftpd用户创build一个目录时,默认权限是vsftpd:nginx但是文件的默认权限是nginx:nginx ,这不是我想要的。

然后,因为我需要nginx用户组来运行和修改文件,如果需要我通过vsftpd config设置umask'0022',但我想我会以错误的方式。 任何人都可以指出我正确的方向?

先谢谢了!

编辑:

setfacl命令帮助了很多,但我仍然有与umask的问题。

我运行setfacl -R -md:u:vsftpd:rwx,d:g:nginx:rwx,d:m:rx,d:o::r chroot/其中getfacl chroot/ returns:

 #owner:vsftpd
 #组:nginx
 #flags:-s-
用户:: RWX
组:: RWX
面具:: RWX
其他:: R--
默认:用户:: RWX
默认值:user:vsftpd:rwx #ectivective:rx
默认:group :: rwx #ectivective:rx
默认:group:nginx:rwx #ectivective:rx
默认:面膜:: RX
默认:其他:: R--

但上传新文件会留下下列权限-rw-------+ 1 vsftpd nginx 25 feb 7 13:14 info.php

注意vsftpd.conf上的umask设置被设置为1002

我哪里错了? 非常感谢!

您可能必须使用acl来让用户始终设置为nginx。 你可以使用acl选项挂载文件系统,然后使用

 setfacl -md:u:nginx:rwx,d:g:nginx:rw chroot 

(或rw,如果你不需要可执行文件)。 然后,在dir中创build的所有文件都会有额外的权限,赋予nginx所有权(即使使用ls时显示的主所有者是不同的用户)。