Hospedagem compartilhada, para que o usuário exclua o arquivo .html?

0

Oi pessoal Eu configurei uma pequena hospedagem compartilhada para amigos.

Eu configurei as permissões de chmod do arquivo para

chmod 711 /home 
chmod 711 /home/testuser 
chmod 755 /home/testuser/public_html 
chmod o+r /home/testuser/public_html/index.htm 

Como faço para impedir que o usuário conectado ao seu próprio ftp exclua o arquivo html.htm e também com o diretório público definido como chmod 755, não consigo fazer nada no diretório, como upload / delete?

Informações adicionais: eu corri

setsebool -P httpd_enable_homedirs true
chcon -R -t httpd_sys_content_t /home/testuser/public_html

mas sem efeito?

    
por Kal 02.02.2013 / 11:51

3 respostas

1

As permissões unix tradicionais significam que, se um usuário puder criar arquivos em um diretório, ele também poderá excluir arquivos nele, mesmo se o arquivo em si for protegido por leitura e não pertencer a eles. Portanto, você não pode proteger html.htm (seja lá o que for) se estiver em um diretório para o qual eles devem ter acesso de gravação / execução. Talvez as ACLs possam ajudar, como o @vonbrand sugere (mas eu não estou familiarizado com elas, e @vonbrand não está prometendo que funcionará)

  1. Não há necessidade de tornar o diretório global-writable ou global-executable, mas é necessário garantir que o daemon do servidor da Web tenha acesso de leitura aos arquivos. (Provavelmente é executado como grupo www-data - mas verifique). Portanto, assegure-se de que o proprietário do diretório corresponda ao uid que o usuário obtém ao se conectar, e você pode mantê-lo no modo 750.

  2. Se você precisar permitir que vários uids gravem no mesmo diretório, será necessário ativar o acesso de gravação em grupo ( g+w ). Nesse caso, eu usaria um grupo diferente de www-data e concederia o acesso somente leitura do apache como "outro". Em outras palavras, o modo 775.

  3. Também fique de olho no seu umask , que controla as permissões de novos arquivos criados pelos usuários. Se você tiver contas individuais, use umask 022 para corresponder. Se você tiver um diretório de grupo compartilhado, use umsk 002 para permitir que os usuários editem os arquivos uns dos outros. (Como eles poderão excluir e substituir arquivos, não há sentido em protegê-los).

por 02.02.2013 / 16:44
1

Quem é o usuário conectando como? Do jeito que você configurou, somente o proprietário pode escrever para public_html.

Além disso, atualmente você o configura para que os usuários possam inserir /home/testuser , mas não o leiam. Você pode querer algo como:

chmod 711 /home 
chmod 755 /home/testuser    
chmod 777 /home/testuser/public_html 
chmod 644 /home/testuser/public_html/index.htm  
chown root /home/testuser/public_html/index.htm  
    
por 02.02.2013 / 14:27
0

Procure por ACLs que possam resolver seu problema. Entradas manuais relevantes são acl (5), setfacl (1) e getfacl (1). O suporte depende do sistema de arquivos, no entanto.

    
por 02.02.2013 / 13:30