Provavelmente estou faltando algo realmente óbvio, mas é possível especificar uma lista de pastas (não apenas o diretório inicial 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
Posso fazer com que funcione 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 em relação a isso, pois isso está me intrigando há algumas horas.
Responder1
palavras-chave relacionadas ao que você deseja fazer sãoSFTP chroot cadeia
você precisa modificar seu sshd_config, primeiro descomente a linha para ativar o SFTP que corresponderá a algo assim:
Subsystem sftp /usr/lib64/ssh/sftp-server
Na parte inferior do sshd_config, você pode ter alguns dos itens a seguir em um modelo 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
Prender um usuário específico em uma pasta específica é bastante simples. De acordo com sua pergunta deespecifique uma lista de pastas que vários usuários podem acessar, é apenas um trabalho manual de sua parte criar um grupo separado e combiná-lo com uma pasta específica que você deseja usar e colocar esses usuários nos grupos relevantes que correspondem às pastas que você deseja fornecer a eles sftp preso acesso a. Por exemplo, coloque o usuário dave
em ambos os grupos sftp1_group
e sftp2_group
para permitir que esse usuário acesse várias pastas.
Um exemplo muito bom também pode ser encontrado aqui: https://serverfault.com/questions/591781/creating-sftp-users-and-jailing-to-chroot-on-centos-user-authentication-error
esteja atento a
Todas as pastas até o início do chroot devem ser de propriedade e somente graváveis pelo usuário root. As pastas não podem ser graváveis em grupo - mesmo que o grupo seja root
aqui está outro exemplo:https://askubuntu.com/questions/261663/how-can-i-set-up-sftp-with-chrooted-groups