Tente alterar a máscara para "---"?
Ou revogue a permissão de grupo com setfacl. chmod e setfacl não funcionam bem juntos
.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.
/home
e chmod 700 ./*
.
setfacl u:www-data:rx ./*
. Eu também tentei diretórios individuais. 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 *
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?
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.
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.