Herança de permissão de grupo e umask

1

Edit: no meu caso virtual_use_local_privs = TRUE fez o truque.

Estou tentando forçar newly created files and directories dentro de foo / directory a ser owned by nginx user e a definir as permissões corretas, então nginx group users can execute and modify , se necessário.

A única coisa é que eu acabei de configurar vsftpd service onde meus virtual usuários agem como vsftpd user , onde vsftpd é um usuário real sem shell.

Após o login, cada usuário é chrooted em um diretório de propriedade de user vsftpd e group nginx . Para isso eu criei o diretório chroot:

mkdir chroot/ 

e, em seguida, deu as permissões padrão:

chown -R vsftpd:nginx chroot/

e depois habilitado o SGUID:

chmod -R g+s chroot/ 

Bem aqui, quando um usuário vsftpd cria um diretório, as permissões padrão são vsftpd:nginx , mas as permissões padrão para os arquivos são nginx:nginx , o que não é o que eu quero.

Então, como eu preciso que o grupo de usuários nginx execute e modifique arquivos se eu precisar configurar o umask '0022' através do vsftpd config, mas eu acho que estou indo no caminho errado. Alguém pode me apontar para a direção certa?

Obrigado em avançado!

Editar:

O comando setfacl ajudou muito, mas ainda estou tendo problemas com umask.

Eu corro setfacl -R -m d:u:vsftpd:rwx,d:g:nginx:rwx,d:m:rx,d:o::r chroot/ onde getfacl chroot/ retorna:

# owner: vsftpd
# group: nginx
# flags: -s-
user::rwx
group::rwx
mask::rwx
other::r--
default:user::rwx
default:user:vsftpd:rwx         #effective:r-x
default:group::rwx              #effective:r-x
default:group:nginx:rwx         #effective:r-x
default:mask::r-x
default:other::r--

mas o upload de novos arquivos deixa as seguintes permissões -rw-------+ 1 vsftpd nginx 25 feb 7 13:14 info.php

Observe que a definição de umask no vsftpd.conf está definida como 1002

Onde estou errado? Muito obrigado!

    
por user846226 06.02.2013 / 19:08

1 resposta

0

Você provavelmente terá que usar acl's para fazer com que o usuário sempre seja definido como nginx. Você montaria o sistema de arquivos com a opção acl e, em seguida, usaria

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

(ou rw se você não precisa de executável). Então, todos os arquivos criados no diretório terão perms adicionais, dando a propriedade nginx (mesmo que o proprietário principal, mostrado quando ls é usado, seja um usuário diferente).

    
por 06.02.2013 / 21:14