组权限继承和 umask

组权限继承和 umask

编辑:就我而言,virtual_use_local_privs=TRUE 起了作用。

我试图强制newly created files and directories foo/ 目录内部为用户,并在需要时owned by nginx为他们设置正确的权限。nginx group users can execute and modify

整个事情是我刚刚配置了我的用户充当的vsftpd服务,其中 vsftpd 是一个没有 shell 的真实用户。virtualvsftpd user

登录后,每个用户都位于和chrooted拥有的目录中。为了实现这一点,我创建了 chroot 目录:user vsftpdgroup nginx

mkdir chroot/ 

然后赋予默认权限:

chown -R vsftpd:nginx chroot/

然后启用SGUID:

chmod -R g+s chroot/ 

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

然后,由于我需要nginx用户组来运行和修改文件,因此我通过 vsftpd 配置设置了 umask“0022”,但我认为我走错了路。有人能给我指出正确的方向吗?

先谢谢了!

编辑:

setfacl命令有很大帮助,但我仍然遇到 umask 问题。

我运行setfacl -R -m d:u:vsftpd:rwx,d:g:nginx:rwx,d:m:rx,d:o::r chroot/getfacl chroot/返回:

# 所有者: vsftpd
# 组:nginx
# 标志:-s-
用户::rwx
组::rwx
掩码::rwx
其他::r--
默认值:用户::rwx
默认:用户:vsftpd:rwx #有效:rx
默认:组::rwx#有效:rx
默认:组:nginx:rwx#有效:rx
默认值:掩码::rx
默认:其他::r--

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

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

我哪里做错了?非常感谢!

答案1

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

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

(或者如果不需要可执行文件,则为 rw)。然后,目录中创建的所有文件都将具有额外的权限,赋予 nginx 所有权(即使使用 ls 时显示的主要所有者是不同的用户)。

相关内容