Permite que um usuário leia os diretórios home de outros usuários

8

Eu sou novo na administração do sistema e tenho uma consulta relacionada à permissão. Eu tenho um grupo chamado administration . Dentro do grupo administration , tenho os usuários user1 , user2 , user3 , superuser . Todos os usuários estão no grupo administration . Agora, preciso conceder permissões ao usuário superuser para poder visualizar o diretório /home dos outros usuários. No entanto, eu não quero que user1 , user2 , user3 veja a casa de qualquer outro usuário que não seja ele mesmo. (Ou seja, user1 deve poder ver apenas a user1 da casa e assim por diante).

Eu criei os usuários e grupos e atribuí todos os usuários ao grupo. Como devo especificar as permissões para o superuser agora?

Em outras palavras, estou pensando em ter dois grupos (digamos NormalUsers e Superuser ). O grupo NormalUsers terá os usuários user1 , user2 e user3 . O grupo Superuser terá apenas o usuário Superuser . Agora, preciso que o Superuser tenha acesso total aos arquivos dos usuários no grupo NormalUsers . Isso é possível no Linux?

    
por Ramesh 19.09.2013 / 23:37

3 respostas

9

Se os usuários forem cooperativos, você poderá usar listas de controle de acesso (ACL). Defina uma ACL no diretório inicial de user1 (e amigos) que concede acesso de leitura a superuser . Configure a ACL padrão também, para arquivos recém-criados e também a ACL em arquivos existentes.

setfacl -R -m user:superuser:rx ~user1
setfacl -d -R -m user:superuser:rx ~user1

user1 pode alterar a ACL em seus arquivos, se desejar.

Se você deseja sempre conceder acesso de leitura superuser aos arquivos de user1 , crie outra exibição dos diretórios pessoais dos usuários com permissões diferentes, com bindfs .

mkdir -p ~superuser/spyglass/user1
chown superuser ~superuser/spyglass
chmod 700 ~superuser/spyglass
bindfs -p a+rX-w ~user1 ~superuser/spyglass/user1

Os arquivos acessados através de ~ superusuário / spyglass / user1 são legíveis por todo o mundo. Além das permissões, ~superuser/spyglass/user1 é uma exibição do diretório inicial de user1 . Como superuser é o único usuário que pode acessar ~superuser/spyglass , somente superuser pode se beneficiar disso.

    
por 20.09.2013 / 02:48
9

Você pode usar as ACLs para conceder acesso a um diretório específico a um grupo arbitrário.

Por exemplo, se você executou setfacl -m g:dba:rwx /home/foo , os membros do grupo dba teriam permissões rwx, independentemente de qual grupo possui o diretório.

Você provavelmente também desejará definir a ACL "padrão" (a ACL para objetos recém-criados dentro do diretório) para também incluir essa permissão.

    
por 20.09.2013 / 01:00
0

Infelizmente, não há realmente nenhuma maneira de fazer isso diretamente no Linux básico.

Você pode criar um novo grupo em sudoers para os administradores parciais com uma lista branca de comandos aceitáveis que você deseja permitir que eles sejam executados.

No entanto, para alcançar exatamente o que você está pedindo, você teria que usar o Apparmor ou o SELinux para obter o que deseja. Infelizmente, nenhuma dessas ferramentas é fácil de configurar e usar, e os exemplos estão muito além do escopo de uma resposta rápida aqui.

    
por 20.09.2013 / 00:11