permissões de linux / chown vs ftp

1

Eu tenho (eu acho que básico) problemas com permissões / propriedade do Linux.

Eu tenho usuário FTP "ftp". Então eu tenho todos os arquivos no meu servidor sob usuário diferente "nginx".

Para fazer os sites funcionarem, eu preciso ter todos os arquivos definidos para o usuário nginx, caso contrário eles retornam vários erros.

Para alterar arquivos no servidor no FTP, preciso ter permissões definidas para o usuário "ftp", caso contrário, recebo permissões negadas quando tento editar os arquivos.

Como resolver isso?

Agora eu tenho que sempre fazer chown -R ftp:ftp quando eu quiser editar alguns arquivos via FTP.

    
por Tim 09.11.2016 / 11:59

1 resposta

4

Parece que você precisa de um grupo comum para ftp e nginx. No seu caso, você provavelmente pode usar o grupo ftp para isso. Não sei se o seu servidor da Web precisa de acesso de gravação aos arquivos, mas, caso contrário, entre no seu diretório de conteúdo e execute estes comandos:

chown -Rh ftp:ftp .
find . -type d -exec chmod g+rxs {} \;
find . -type f -exec chmod g+r {} \;

Se você precisar de acesso de gravação do servidor da Web, faça isso:

chown -Rh ftp:ftp .
find . -type d -exec chmod g+rwxs {} \;
find . -type f -exec chmod g+rw {} \;

Esses comandos farão com que tudo seja de propriedade do ftp: ftp e torne esses arquivos legíveis e (no segundo caso) graváveis por qualquer pessoa no grupo ftp. Ele também define o bit setgid em todos os diretórios que farão com que todos os novos arquivos pertencentes ao grupo ftp. Feito isso, adicione o usuário nginx ao grupo ftp:

usermod -a -G ftp nginx

e reinicie seu servidor da web para que ele seja efetivado.

Você também pode precisar forçar todos os arquivos gravados nesses diretórios a serem graváveis pelo grupo. Você pode fazer isso configurando o umask para seus servidores ftp e web como 002, ou com um acl:

setfacl -Rdm g::rwx .
    
por 11.11.2016 / 22:36