Meu entendimento é que você deseja que a maioria dos usuários não consiga ver o conteúdo de /home
, enquanto ainda permite que eles efetuem login e usem o sistema normalmente, permitindo que o grupo apache
veja o conteúdo de /home
.
Para diretórios, os usuários devem ter permissão de execução para fazer QUALQUER COISA com o conteúdo, incluindo cd
para eles. Assim, usuários sem permissão de execução em /home
não poderão nem mesmo ver que seus diretórios home existem, quanto mais iniciar um shell neles.
Tente isto:
sudo chown root:apache /home # owner=root, group=apache
sudo chmod 751 /home # rwxr-x--x
Isso deve permitir que o grupo apache
(e impedir que todos os outros) listem o conteúdo de /home
, enquanto ainda permite que cada usuário acesse seu diretório pessoal individual.
Observe que isso não impede que os usuários obtenham informações em diretórios em /home
, se já souberem seus nomes. ls /home
não deve funcionar, mas ls -ld /home/$anything
irá. Você pode impedir que usuários que não sejam apache
façam algo dentro dos diretórios home dos outros, definindo-os como $user:apache rwxr-x---
:
sudo chown $user:apache ~$user # owner=$user, group=apache
sudo chmod 750 ~$user # rwxr-x---
Você precisará fazer isso para cada usuário existente com um diretório inicial e para cada novo usuário que criar, no entanto.