Como você limita o acesso do usuário ao diretório / home enquanto ainda permite que um usuário diferente acesse todos os / home / users?

2

Minha pergunta é um pouco complexa. Basicamente, eu quero dar aos usuários acesso ssh / sftp ao servidor para seu diretório / home / user. Quero limitar sua capacidade de visualizar outros diretórios / home / user. Simples, certo? Não. Eu quero ter um usuário separado (digamos apache) para ter acesso de leitura a todos os diretórios / home também.

Agora eu tenho os seguintes perms:

drwxr-xr-x  14 root root   4096 Apr  3 15:41 home
...
cd /home
ll
drwxr-x--- 2 user1   user1   4096 Feb 10 14:16 user1
...

e eu adicionei o usuário "apache" ao grupo para todos os usuários:

groups apache
apache : apache user1

O problema com esta configuração é que quando o usuário1 efetua login ele pode ver / home / *

se eu chmod o diretório / home dir para 750, quando o usuário tentar fazer o login ele não poderá acessar sua pasta.

Alguma sugestão?

    
por fatu 06.04.2012 / 19:38

2 respostas

0

Você pode alterar o acesso do grupo para somente leitura, adicionar o Apache ao grupo e restringir todas as permissões a todos os outros? Permitindo assim que o usuário proprietário modifique seus arquivos à vontade, enquanto o Apache e outros serviços só podem ler?

Não sou muito guru de permissões, mas acho que isso funcionaria.

    
por 06.04.2012 / 21:40
0

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.

    
por 26.01.2013 / 17:42