Configurando permissões VSFTPD com o servidor Apache

8

Eu tenho uma VM executando o Ubuntu 10.10. Estou usando o Netbeans e fazendo upload de arquivos para um ftp na máquina virtual. Estou usando o vsftpd.

O problema que estou tendo é que o proprietário da pasta /var/wwwé o usuário apachepara que o servidor apache possa ler os arquivos. Por enquanto, tudo bem.

Mas quando tento fazer upload de um arquivo do usuário ftp, user1não consigo. Eu sei qual é o problema. Minha pergunta é: como configurar permissões corretamente para o usuário apachee user1poder escrever / ler todos os arquivos no diretório / var / www?

Tek
fonte

Respostas:

17

Crie um grupo www-userse faça dele o proprietário do grupo /var/www. Em seguida, atribua os usuários apachee user1ao grupo e defina os permissões no /var/wwwdiretório como 775. Isso permitirá que user1qualquer outro usuário do www-usersgrupo leia e grave /var/www; também tornará mais fácil autorizar outros usuários a escreverem /var/www- simplesmente atribua o usuário ao www-usersgrupo.

Editar: as permissões corretas /var/wwwsão 2775, que inclui setgid, para que os arquivos e diretórios internos /var/wwwherdem a propriedade do grupo /var/www.

bwDraco
fonte
Ótima resposta. Exceto apache não é capaz de ler os arquivos depois de eu fazer upload de algo com user1Corri os seguintes comandos: chown -R apache:www-users /var/www, usermod -g www-users apache, usermod -g www-users user1, chmod 775 /var/www. Estou esquecendo de algo?
Tek
O umask pode ser configurado para negar permissões de leitura de outras pessoas; veja se a alteração do umask ajuda.
precisa saber é o seguinte
Sim. Isso fazia parte disso.
Tek
10
Aqui estão as etapas caso algum googler precise de uma dica. 1) set up vsftpd for umask 0027 (/etc/vsftpd.conf) [local_umask=0027] 2) create www-users group (groupadd www-users) 3) add user to group (usermod -a -G group user) 4) Set apache to run as www-users group (httpd.conf) 5) chgrp www-users /var/www 6) chmod 2775 /var/www
Tek
2
Além disso, tente adicionar permissão setgid para o diretório: chmod g+s /var/www. Isso garantirá que os arquivos e diretórios criados dentro do diretório sejam de propriedade do grupo que possui o diretório.
precisa saber é o seguinte