Restringir el usuario SFTP a varias carpetas

Restringir el usuario SFTP a varias carpetas

Probablemente me esté perdiendo algo realmente obvio, pero ¿es posible especificar una lista de carpetas (no solo el directorio de inicio de los usuarios) a las que un usuario puede acceder a través de SFTP?

p.ej

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  

Puedo hacer que funcione bien para los usuarios "Admin" y "WebDev1", pero no para los otros 2.

Para el usuario "Manager1" deseo permitir el acceso a (incluidos los subdirectorios):

/data/vhosts  
/usr/share/phpMyAdmin  

Esto está en un sistema Centos 7 que usa SSHD. Agradecería cualquier ayuda con respecto a esto ya que me ha estado desconcertando durante bastantes horas.

Respuesta1

Las palabras clave relacionadas con lo que quieres hacer sonSFTP chroot celda

necesitas modificar tu sshd_config, primero descomenta la línea para habilitar SFTP que corresponderá a algo como esto:

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

En la parte inferior de sshd_config, es posible que tenga algunos de los siguientes elementos en una plantilla comentada. Querrás algo específicamente como esto:

# 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

Encarcelar a un usuario específico en una carpeta específica es bastante sencillo. Según tu pregunta deespecificar una lista de carpetas a las que pueden acceder varios usuarios, es solo un poco de trabajo manual de su parte crear un grupo separado y relacionarlo con una carpeta específica que desea usar, y colocar a esos usuarios en los grupos relevantes que coinciden con las carpetas que desea darles sftp encarcelado. el acceso a los. Por ejemplo, coloque al usuario daveen ambos grupos sftp1_groupy sftp2_grouppermita que ese usuario acceda a varias carpetas.

También se puede encontrar un muy buen ejemplo aquí: https://serverfault.com/questions/591781/creating-sftp-users-and-jailing-to-chroot-on-centos-user-authentication-error

ser consciente de

Todas las carpetas hasta el inicio de chroot deben ser propiedad del usuario root y solo el usuario root debe poder escribirlas. No se puede escribir en las carpetas en grupo, incluso si el grupo es raíz

aquí hay otro ejemplo:https://askubuntu.com/questions/261663/how-can-i-set-up-sftp-with-chrooted-groups

información relacionada