Chroot CentOS SFTP

2

Tengo algunos problemas para modificar un acceso SFTP para un cliente.

Puedo acceder al directorio, pero el problema es que no puedo leer / escribir, solo puedo acceder al directorio.

A continuación se muestra lo que hice:

# cat /etc/passwd | grep comege
comege:x:1001:1001::/home/sftp/comege/home/:/sbin/nologin

# cat /etc/group | grep sftp
sftp-only:x:1001:

# sshd_config
Subsystem sftp internal-sftp
Match Group sftp-only
ChrootDirectory /home/sftp/%u
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

SELinux se establece en permisivo para fines de prueba.

Cuando me conecto al servidor usando SFTP me sale el siguiente error:

Error listing directory '/'. Permission denied

Permisos:

/home/sftp/comege and parent directories belongs to root:root.

/home/sftp/comege/home belongs to comege:sftp-only

Creo que el problema es que comege no se redirige a / home / sftp / comege / home en la conexión, por lo que llega a / home / sftp / comege, que pertenece a la raíz, por lo tanto, la falta de permisos (?)

Loïc
fuente

Respuestas:

4

Parece que los permisos para el directorio chroot /home/sftp/comegeno están configurados para permitir el acceso de lectura por parte del comegeusuario.

Los permisos en /home/sftp/comegedeberían verse así:

# ls -la /home/sftp/comege
total 0
drwxr-xr-x 1 root   root       8 Jul 19 12:00 .
drwxr-xr-x 1 root   root      12 Jul 19 11:59 ..
drwx------ 1 comege sftp-only 76 Jul 19 12:00 home

Cambia los permisos con:

# chmod 755 /home/sftp/comege

Tenga en cuenta que esto no tiene en cuenta los permisos de SELinux.

Por diseño, una sesión SFTP en un entorno chrooteado comenzará con el usuario en la "cárcel" chroot que debe ser propiedad de root. Se pretende que el usuario solo escriba en archivos en subdirectorios del directorio raíz de nivel superior. Una convención es crear un subdirectorio llamado "entrante" para cargas de usuarios en lugar del directorio "principal" que se muestra en el ejemplo original.

Stephen Balousek
fuente