Usuarios de Chroot SFTP que requieren acceso a múltiples directorys en la misma carpeta principal

Tengo un server RHEL 6 con un directory / Documents, y tiene directorys secundarios 1 2 3 4 5 … justo debajo del directory / Documents. ¿Es posible crear una cárcel chuta de SFTP que solo da acceso a un usuario a 1,2,7,9 pero no a las otras carpetas?

Estoy usando NFSv3 con RHEL 6 y, por lo tanto, estoy limitado en las opciones de ACL.

La solución más sencilla es colocar a todos estos usuarios en la misma cárcel de chroot, y disponer que todos los directorys tengan nombres y permissions no confidenciales que garanticen que los usuarios solo puedan acceder a los directorys que de otra forma pondrían en la cárcel. Es suficiente para hacer cumplir el permiso de los directorys de nivel superior, los usuarios no pueden acceder a nada debajo de un directory para el que no tienen permiso x .

Si esto no es lo suficientemente bueno, o si no puede configurar los grupos o lists de control de acceso (ACL) adecuados, puede configurar assemblys de enlace para que todos los directorys permitidos de un usuario sean visibles en un directory común.

 mkdir /Jails/bob /Jails/bob/{1,2,7,9} mount --bind /Documents/1 /Jails/bob/1 mount --bind /Documents/2 /Jails/bob/2 … 

No, no creo que puedas hacer esto. Puedes arreglártelas pero es una pesadilla de mantenimiento. En el file /etc/ssh/sshd_config puede agregar secciones que coincidan con elementos, por ejemplo, un grupo de usuarios o un nombre de usuario.

sshd_config

 AllowGroups sftponly sftpadmin root Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no PasswordAuthentication yes 

Pero esto solo le permite controlar el punto de input de un usuario, su ChrootDirectory . Entonces tendrías que dejarlos en su chroot apropiado.

También puede jugar algunos juegos adicionales con la installation de estos directorys.

Ejemplo

 * / -fstype=cifs,ro,noperm,netbiosname=${HOST},file_mode=0444,dir_mode=0555,cnetworkingentials=/etc/sftpuser_cnetworkingentials.txt ://server/sftpdata/& \ /upload -fstype=cifs,rw,noperm,netbiosname=${HOST},file_mode=0666,dir_mode=0777,cnetworkingentials=/etc/sftpuser_cnetworkingentials.txt ://server/sftpdata/&/upload 

Por lo tanto, podría agregar monturas que les permitan el acceso de lectura para las que tienen acceso y el acceso de no lectura en las que no tienen acceso.

NOTA: Lo anterior otorgará a un usuario acceso de lectura en todo, pero solo acceso de escritura en su /upload sub directory en su directory chrooted.

Probablemente pensaría en una forma alternativa de lograr lo que quieres, esto podría ponerse feo rápido, y será difícil de mantener.