Quiero dar acceso a un cliente a mi servidor, pero quiero limitar esos usuarios a sus directorios personales. Enlazaré y montaré en cualquier archivo que quiera que puedan ver.
Creé un usuario llamado bob
y lo agregué a un nuevo grupo llamado sftponly
. Tienen un directorio de inicio en /home/bob
. He cambiado su shell /bin/false
para detener los inicios de sesión SSH. Aquí está su /etc/passwd
línea:
bob:x:1001:1002::/home/bob:/bin/false
También he cambiado el /etc/ssh/sshd_config
para incluir lo siguiente:
Match Group sftponly
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
Cuando intento iniciar sesión como ellos, esto es lo que veo
$ sftp bob@server
bob@server's password:
Write failed: Broken pipe
Couldn't read packet: Connection reset by peer
Si comento la ChrootDirectory
línea, puedo ingresar SFTP pero luego tienen rienda suelta sobre el servidor. He encontrado que ChrootDirectory /home
funciona, pero todavía les da acceso a cualquier directorio de inicio. Lo he intentado explícitamente ChrootDirectory /home/bob
pero eso tampoco funciona.
¿Qué estoy haciendo mal? ¿Cómo puedo limitarme bob
a /home/bob/
?
----EDITAR-----
De acuerdo, así que solo miré /var/log/auth.log
y vi esto:
May 9 14:45:48 nj sshd[5074]: pam_unix(sshd:session): session opened for user bob by (uid=0)
May 9 14:45:48 nj sshd[5091]: fatal: bad ownership or modes for chroot directory component "/home/bob/"
May 9 14:45:48 nj sshd[5074]: pam_unix(sshd:session): session closed for user bob
No estoy completamente seguro de lo que está sucediendo allí, pero sugiere que algo está mal con el directorio de usuarios. Aquí está la ls -h /home
salida:
drwxr-xr-x 26 oli oli 4096 2012-01-19 17:19 oli
drwxr-xr-x 3 bob bob 4096 2012-05-09 14:11 bob
ChrootDirectory /home/%u
puede ser reemplazadoChrootDirectory %h
.