Isolando um usuário

Isolando um usuário

No meu sistema Linux, tenho dois usuários, digamos A e B. Preciso isolar B de tal forma que B não possa ter acesso ao diretório inicial de A, nem mesmo pelo próprio A. Como posso resolver o problema?

Responder1

Coloque o diretório inicial de A em um diretório para o qual B não tenha nenhum bit x (execução) definido.

Exemplo: /home/prison/ASeja o diretório inicial de A. Defina as permissões de prisonto r-xr-x---e o proprietário: grupo para root:prisoners. Ative as permissões /home/prison/Anormalmente, ou seja, Aé o proprietário.

Naturalmente, A ainda pode vincular seus arquivos a outros diretórios e torná-los acessíveis dessa forma. Não há realmente nenhuma maneira de proteger os dados de usuários com acesso de leitura e vontade de duplicá-los.

Responder2

A resposta de Thitoné uma boa maneira de resolver isso.

Outra correção (mais pesada e complexa) é criar uma política apropriada se você estiver usando SELinux ou AppArmour. Você pode impor isso no nível do sistema e A não será capaz de contorná-lo no nível do sistema de arquivos (com AppArmour) ou mesmo copiando arquivos (com SELinux).

A implementação de tal política é deixada como um exercício para o leitor.

Responder3

Parece um trabalho para chroot, e alguém tem um projeto chamadokit de prisãoisso parece fazer exatamente isso. Sua milhagem pode variar.

Responder4

Se ninguém mais precisar de acesso aos arquivos no diretório inicial dos usuários, você poderá tornar os diretórios iniciais executáveis/legíveis/graváveisapenaspor esse usuário.

sudo chmod 700 /home/username

Outros usuários não poderão ver dentro deste diretório, fazer cd nele, etc.

informação relacionada