public_html permissions

2

Eu tenho uma pasta public_html para um usuário. Eu altero as permissões de acordo com as instruções on-line:

chmod 701 /home/*

chmod 705 /home/*/public_html 
chmod 604 /home/*/public_html/*.html 
chmod 705 /home/*/public_html/cgi-bin 

e os arquivos que já estão em public_html ficam visíveis on-line.

Se o usuário fizer upload de arquivos mais recentes para a pasta public_html , ele não ficará visível.

Eu também corri chcon -R -t httpd_user_content_t home/*/public_html .

O que estou perdendo para permitir que o usuário faça upload de seus arquivos e permita que eles sejam vistos on-line?

    
por user27914 03.12.2009 / 01:38

2 respostas

0

Você precisa verificar a configuração umask , conforme as permissões que os arquivos recém-criados obtêm. A maioria das distros definem a máscara como 022 , o que dará aos arquivos a leitura do grupo e a leitura do mundo, mas outras distros têm uma máscara mais restritiva que somente definirá as permissões do proprietário.

    
por 03.12.2009 / 01:50
0

Como staticsan mencionou, isso soa como um caso em que o umask será corrigido. Se você quiser um controle mais refinado das permissões sem fazer com que TODOS os arquivos criados pelos usuários sejam lidos, você poderia usar listas de controle de acesso para definir um padrão para os diretórios public_html para outros read + execute with

setfacl --set d:o:rx /home*/public_html

Independentemente do que umask esteja definida, se o usuário puder gravar nesse diretório, os padrões do arquivo serão sempre o + r (x para diretórios). Sua saída ls -l será parecida com:

drwxrwxr-x+ 3 user user 4096 2009-12-02 21:30 public_html/

O sinal de mais ao final das permissões mostra que há uma ACL, que você pode visualizar usando

getfacl public_html

Há um trade-off, já que agora as permissões não são óbvias e você precisa getfacl para ver mais detalhes, mas você ganha mais controle sobre exatamente onde deseja que as permissões sejam diferentes do padrão global.

    
por 03.12.2009 / 03:34