Configurar servidor SFTP enjaulado con permisos de escritura en el grupo GNU/Linux

En esta entrada realizaremos una configuración de SFTP  enjaulado en el cual tanto el propietario como el grupo podrán realizar modificaciones en el directorio enjaulado.

Realizamos dicha modificación dado que en mi casó un usuario que gestiona un aplicativo necesita poder procesar los ficheros alojados en el sftp.

Configuración usuario y directorios

Creamos el grupo

groupadd sftp

Creamos el usuario y lo añadimos al grupo sftp

useradd -g sftp -s /bin/false -d /home/usersftp/ usersftp

 

Asignamos una contraseña al usuario

passwd usersftp

Creamos la estructura de carpetas y asignamos los permisos correspondientes

mkdir -p /home/usersftp/public/response

mkdir -p /home/usersftp/public/request

mkdir -p /home/usersftp/public/.processed

chmod 755 /home/usersftp/public/.processed

chown root:root /home/usersftp/

chown usersftp:sftp /home/usersftp/public/*

 

Accedemos al directorio donde van a transferir los ficheros

cd /home/usersftp/public

Asignamos los siguientes permisos y ACL  para que el grupo tenga permisos:

chmod -R g+srwX response/
chmod -R g+rwX request/
chmod -R g+rwX .processed/

chown -R :sftp response/
chmod -R g+s response/
setfacl -d -m g::rwx response

chown -R :sftp request/
chmod -R g+s request/
setfacl -d -m g::rwx request

chown -R :sftp .processed/
chmod -R g+s .processed/
setfacl -d -m g::rwx .processed

 

Añadimos al final del fichero .bashrc del usuario que queremos que acceda la siguiente linea:

cat /home/rokitoh/.bashrc

umask 002

Añadimos al usuario al grupo correspondiente

usermod -a -G sftp rokitoh

Configuración SSH

Añadimos en el fichero /etc/pam.d/sshd la siguiente linea al final:

session optional pam_umask.so umask=0002

 

Accedemos al /etc/ssh/sshd_config y debemos modificar la siguiente linea:

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

Por esta:

Subsystem sftp /bin/sh -c ‘umask 0002; /usr/lib/openssh/sftp-server’

También tenemos que añadir la siguiente configuración al final del fichero:

Match user usersftp
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp -u 2
KbdInteractiveAuthentication yes

 

Reiniciamos el servicio ssh

service sshd restart

Probamos acceder mediante nuestro cliente ftp al servidor y crear un fichero.

También mediante el usuario que hemos configurado en el grupo sftp (en mi caso rokitoh) ya podría crear o modificar un archivo en el servidor sftp mediante una shell.

Un saludo

:wq!

 

 

 

 

Una respuesta a “Configurar servidor SFTP enjaulado con permisos de escritura en el grupo GNU/Linux”

Deja una respuesta

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