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 dave
en ambos grupos sftp1_group
y sftp2_group
permita 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