Enjaular usuarios en directorio con ssh (sftp)

closeHola! hace 4 years 2 months 15 days que escribí esta entrada, puede que esta información ya no sea valida en la actualidad, por favor se comprensivo conmigo cuando comentes 🙂

El día de hoy me toco crear un nuevo usuario en el servidor que administro (GNU Linux – Ubuntu) para que accediera por sftp solo a una carpeta en especifica, al momento de buscar en google encontré muchas soluciones pero como tenia afán de realizar el procedimiento decidí preguntar a un compañero de la oficina (Walter Tabares) <- [Sysadmin]  el cual me ayudo a configurar el usuario enjaulado, quiero compartir estos pasos principalmente para “que no se me olviden” y para que les sea de ayuda a quien los necesite.

Creamos el grupo

addgroup NOMBRE_GRUPO

Creamos el usuario

useradd -s /bin/sh -g NOMBRE_GRUPO -d /home/USER USER

Creamos la carpeta del usuario

mkdir /home/USER

Creamos una carpeta nueva en el home del usuario

mkdir /home/USER/archivos

Creamos contraseña al usuario
sudo passwd USER

Le damos permisos al usuario sobre esa carpeta

chown USER:NOMBRE_GRUPO /home/USER/archivos/

Editamos el archivo /etc/ssh/sshd_config

Comentamos la linea

#Subsystem sftp /usr/lib/openssh/sftp-server

Agregamos las siguientes lineas

Subsystem sftp internal-sftp

Match user USER

      ChrootDirectory /home/USER

      ForceCommand internal-sftp

NOMBRE_GRUPO: Nombre del grupo en el que vamos a crear el usuario, ejemplo: gsftp

USER: Nombre del usuario del usuario que vamos a crear, ejemplo: usuariosftp

Con esos pasos he logrado “enjaular” un usuario en una carpeta en especifica.

Se que existen otras formas de hacer este procedimiento, pero personalmente fue el mas fácil y practico que he visto.

You may also like...

1 Response

  1. Ayudante dice:

    Si no das permisos 755 y haces a root dueño de los directorios que mencionas nada de lo anterior surte efecto

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *