Como permitir que determinado Unix-User acesse apenas um diretório

0

Como permitir que determinados usuários Unix acessem apenas um diretório, por exemplo

Eu quero deixar o seguinte nome de usuário dimensão para acessar o seguinte diretório / var / opt / test / reports / *

Como eu posso fazer isso via Unix?

    
por ala.alzyadat 10.02.2014 / 11:54

1 resposta

2

A maneira mais simples de fazer isso é usar ACL negativa , ie , proibindo explicitamente o usuário (chame ele user_no ) de usar qualquer diretório, exceto o que você mencionou.

Depois de instalar o ACL, o seguinte comando

 setfacl -m user:user_no:0 /home/my_home

impedirá o acesso à sua casa. Você deve se lembrar de bloquear explicitamente cada lugar que deseja barrar, mas deve se lembrar de permitir o uso de algumas diretivas (/ usr, / bin ..), caso contrário, você também o impedirá de usar comandos comuns do Unix.

Você também deve permitir que ele use seu diretório pessoal (não acho que uma conta possa funcionar com isso) e o diretório que você mencionou acima.

Como alternativa, você pode chroot a conta. Isto pode ser feito de duas maneiras: no primeiro, você só permite o acesso ssh, no segundo você chroot a conta do shell. O segundo método é mais complicado, e eu nunca tentei, então não posso oferecer orientação. Você pode usar o Google conta shell do chroot . O primeiro método é simples, apenas modifique o arquivo / etc / ssh / sshd_config introduzindo estas linhas na parte inferior:

 Subsystem     sftp   internal-sftp
 Match Group sftp
     ChrootDirectory %h
     ForceCommand internal-sftp
     AllowTcpForwarding no   

Isso liga o usuário ao seu diretório pessoal (% h acima) e garante que ele tenha acesso à ajuda interna do sftp. Além disso, adicione o user_no ao grupo sftp da seguinte forma:

 # usermod -G sftp user_no
 # usermod -s /bin/false user_no
 # chown root:root /home/user_no
 # chmod 0755 /home/user_no

O comando importante é o segundo: ele garante que o usuário nunca obterá acesso ao shell.

Por fim, crie um link simbólico, no diretório inicial do usuário, para o diretório ao qual você deseja permitir o acesso:

 # cd /home/user_no
 # ln -s /var/opt/test/reports work

Isso cria um subdiretório ao qual ele tem acesso, mas não pode criar nenhum arquivo, apenas funciona nos existentes. Se você quiser permitir que ele crie arquivos, terá que alterar as permissões em / var / opt / test / reports.

    
por 10.02.2014 / 12:30

Tags