Chroot para usuario sftp

Enviado por keopx el Mar, 13/04/2010 - 10:57

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.

Categoria

Añadir nuevo comentario

El contenido de este campo se mantiene privado y no se mostrará públicamente.

HTML Restringido

  • Etiquetas HTML permitidas: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Saltos automáticos de líneas y de párrafos.
  • Las direcciones de correos electrónicos y páginas web se convierten en enlaces automáticamente.