Vamos a crear una especie de jaula para un usuario. Este usuario lo vamos a utilizar para un entorno web donde pueda subir ficheros y modificarlos, pero que no pueda salir de ese directorio.
Lo primero es editar el fichero /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
y al final lo dejamos así:
#Subsystem sftp /usr/lib/openssh/sftp-server
...
UsePAM yes
... Subsystem sftp internal-sftp
Match group sftponly
ForceCommand internal-sftp ChrootDirectory /var/www/web
Creamos la carpeta, con usuario y grupo root en la carpeta /var/www/web:
sudo mkdir /var/www/web
drwxr-xr-x 5 root root 4,0K 2010-04-11 09:55 web
Dentro de /var/www/web pondremos los permisos que correspondan a los ficheros.
$ ls -lah total 260K drwxr-xr-x 5 root root 4,0K mar 22 12:28 . drwxr-xr-x 6 root root 4,0K mar 22 12:28 .. -rwxr-xr-x 1 usuarioweb www-data 3,9K mar 22 12:28 funciones.php -rwxr-xr-x 1 usuarioweb www-data 3,9K mar 22 12:28 insertar.php -rwxr-xr-x 1 usuarioweb www-data 3,3K mar 22 12:28 modificar.php
Creamos el grupo sftponly:
sudo groupadd sftponly
Ahora creamos el usuario con el valor -d que sirve para definirle su directorio:
$ sudo useradd -g sftponly -G sftponly -s /bin/false -d /var/www/web usuarioweb
Le asignamos la contraseña oportuna:
$ sudo passwd usuarioweb
Reiniciamos el ssh:
$ sudo /etc/init.d/ssh restart
Ya tenemos nuestro directorio funcionando para que el usuarioweb no pueda salir de esa carpeta.
Comentarios