Restringir usuário SFTP a várias pastas

2

Provavelmente estou perdendo algo realmente óbvio, mas é possível especificar uma lista de pastas (não apenas o diretório pessoal dos usuários) que um usuário pode acessar via SFTP?

por exemplo.

Admin -> Full root access  
WebDev1 -> Access to the primary vhost folder and sub directories  
SysAdmin1 -> Access to all folders, except the vhost folder  
Manager1 -> Access to vhost folder, and phpMyAdmin install folder  

Eu posso fazer isso funcionar bem para os usuários "Admin" e "WebDev1", mas não para os outros 2.

Para o usuário "Manager1", desejo permitir acesso (incluindo subdiretórios):

/data/vhosts  
/usr/share/phpMyAdmin  

Isto está em um sistema Centos 7 usando SSHD. Eu apreciaria qualquer ajuda sobre isso, já que tem me intrigado por algumas horas agora.

    
por David Thompson 17.04.2017 / 19:05

1 resposta

4
As palavras-chave

relacionadas ao que você deseja fazer são SFTP chroot jail

você precisa modificar o seu sshd_config, primeiro descomente a linha para habilitar o SFTP que corresponderá a algo como isto:

Subsystem sftp /usr/lib64/ssh/sftp-server

Na parte inferior do sshd_config, você pode ter alguns dos seguintes itens em um modelo que está comentado. Você vai querer algo especificamente assim:

# jail only user dave to folder /dave_sftp/
Match User dave
   ChrootDirectory /dave_sftp
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

# jail only user ron to folder /ron_sftp/
Match User ron
   ChrootDirectory /ron_sftp
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

# jail users that are in group sftp1_group to the folder /sftp1_group/
Match Group sftp1_group
   ChrootDirectory /sftp1_group
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

# jail users that are in group sftp2_group to the folder /sftp2_group/
Match Group sftp2_group
   ChrootDirectory /sftp2_group
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

Encerrar um usuário específico a uma pasta específica é bastante simples. Por sua pergunta de especificar uma lista de pastas que vários usuários podem acessar , é apenas um trabalho manual de sua parte fazendo um grupo separado e combinando-o com uma pasta específica que você deseja usar, e colocando esse usuário (s) para o (s) grupo (s) relevante (s) correspondente (s) às pastas nas quais você deseja conceder acesso sftp preso. Por exemplo, coloque o usuário dave em ambos os grupos de sftp1_group e sftp2_group para permitir que o usuário acesse várias pastas.

Um bom exemplo também pode ser encontrado aqui: link

esteja atento a

All folders up to the chroot home must be owned and only writable by root user. The folders cannot be group writable - even if the group is root

aqui está outro exemplo: link

    
por 17.04.2017 / 22:35

Tags