Creare un utente SFTP per accesso readonly ad una cartella

Server Tony Arcucci

Come sviluppatore mi capita spesso di dover concedere l’accesso in sola lettura ad una cartella del server ad un utente via SFTP. Il caso d’uso che mi capita più frequentemente è quello di consentire l’accesso ai file di log ad un sistemista.

La soluzione che adotto è creare un utente che possa accedere con SFTP che abbia un accesso readonly ad una cartella.

Le istruzioni che leggerete in seguito sono relative ad un server con CentOS 7.

Creazione di un utente per l’accesso readonly alla cartella WS

Supponiamo di voler concedere l’accesso alla cartella

/opt/apps/myapplication/log

La prima cosa da fare è modificare il file di configurazione di ssh

sudo nano /etc/ssh/sshd_config

Adesso cerchiamo la riga Subsystem sftp e modifichiamola nel seguente modo:

# modifica del 19/06/2019: start
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
# modifica del 19/06/2019: end

Sia sftp-server che internal-sftp sono parte integrante di OpenSSH. sftp-server è un eseguibile standalone. internal-sftp è un parametro di configurazione che dice al servizio SSHD di usare il server SFTP integrato invece di far partire un altro processo, come appunto sftp-server.

Aggiungiamo alla fine del file le seguenti righe:

# modifica del 19/06/2019: start
Match Group jail_app_user
        ChrootDirectory /opt/apps/myapplication/log
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp
        PasswordAuthentication yes
        PermitTunnel no
        AllowAgentForwarding no
# modifica del 19/06/2019: end

Salvare e chiudere il file
Riavviare il servizio SSH (OpenSSH) con

service sshd restart

Aggiungiamo l’utente che dovrà accedere via sftp sudo useradd logftpuser

sudo passwd logftpuser

Ci verrà chiesta la password.

Creiamo un gruppo, io l’ho chiamato jail_app_user, che mi ricorda che gli utenti che vi appartengono sono chiusi con restrizioni.

groupadd --system jail_app_user

Ora aggiungiamo l’utente al gruppo

usermod -G jail_app_user logftpuser

A questo punto, con un qualsiasi client ftp (per esempio, Filezilla client) possiamo accedere con l’utente logftpuser e vedere solo la cartella dei log (readonly).

Per approfondire l’argomento vi segnalo i seguenti libri economici in formato Kindle:

No ratings yet.

Please rate this

Lascia un commento