Listas de controle de acesso no Debian Lenny

1

Assim, para meus clientes que têm sites hospedados no meu servidor, eu crio contas de usuários, com pastas padrão dentro de / home.

Eu configurei uma cadeia SSH para todos os collective usuários, porque eu realmente sou contra usar um servidor FTP separado. Então, eu instalei o ACL e adicionei o acl ao meu /etc/fstab - tudo bem.

  1. Eu gravei em /home e chmod 700 ./* .
    • Neste ponto, os usuários não podem ver os diretórios iniciais de outros usuários (yay), mas o apache também não pode vê-los (boo)
    • Eu corri setfacl u:www-data:rx ./* . Eu também tentei diretórios individuais.
    • Agora o apache pode ver os sites novamente, mas todos os usuários também. A ACL alterou as permissões das pastas iniciais para 750 .

Como configuro as ACLs para que o Apache possa ver os sites hospedados nas pastas base do usuário E 2. Os usuários não podem ver fora de sua casa e nos arquivos dos outros.


Editar: mais detalhes:

Saída após chmod -R 700 ./*

sh-3.2# chmod 700 ./*
sh-3.2# ls -l
total 72
drwx------+ 24 austin  austin     4096 Jul 31 06:13 austin
drwx------+  8 jeremy  collective 4096 Aug  3 03:22 jeremy
drwx------+ 12 josh    collective 4096 Jul 26 02:40 josh
drwx------+  8 joyce   collective 4096 Jun 30 06:32 joyce

(Não acessível a outros usuários OU ao apache)

setfacl -m u:www-data:rx jeremy

(agora acessível aos membros apache e coletivo - por que também coletivo?)

sh-3.2# getfacl jeremy 
# file: jeremy
# owner: jeremy
# group: collective
user::rwx
user:www-data:r-x
group::r-x
mask::r-x
other::---

Solução

Por fim, o que fiz foi:

chmod 755 *
setfacl -R -m g::--- *
setfacl -R -m u:www-data:rx *
    
por arbales 07.08.2009 / 06:53

4 respostas

1

Tente alterar a máscara para "---"?

Ou revogue a permissão de grupo com setfacl. chmod e setfacl não funcionam bem juntos

.

    
por 09.08.2009 / 15:49
0

Bem, você não pode impedir que os usuários vejam "fora de seus diretórios home" sem um chroot completo, porque eles sempre poderão ver diretórios do sistema como /usr/bin (porque é assim que os programas são executados). Não vejo como o comando setfacl que você deu produzirá os resultados mostrados; você pode fornecer a saída de getfacl e ls -l para o diretório pessoal de um usuário na sua pergunta?

    
por 07.08.2009 / 07:03
0

Para o jailing, versões mais recentes do ssh suportam a opção ChrootDirectory. Para conexões somente scp, eu usei scponly com sucesso no passado.

Quanto ao apache ver os arquivos, você não entendeu direito o chmod. Tente algo assim (assume que o apache usa o grupo apache):

cd / home

chmod -750 * # proprietários podem fazer tudo, membros do grupo podem ler, outros não podem fazer nada

chgrp -R apache * # mudando de grupo para apache, o apache agora pode ler os arquivos.

Lembre-se, você não quer adicionar usuários regulares ao grupo do apache.

    
por 09.08.2009 / 06:02
0

comentário de hayalci que

chmod and setfacl do not work too well together.

ajudou bastante. Em vez de usar o CHMOD para impedir que outros grupos acessem os dados, usei:

cd /home
setfacl -m g::0 joeuser # Removes permissions for the owning group.
setfacl -m g:www-data:r joeuser # Adds read permissions for Apache
cd joeuser/joeuser.com/static/
setfacl -m g:www-data:rwx uploads # So apache can write to the uploads directory.
    
por 10.08.2009 / 20:54