In alcune occasioni, un amministratore di sistema potrebbe dover creare un account utente e limitare il proprio accesso per gestire i propri file solo tramite sFTP, ma non essere in grado di accedere al sistema con altri mezzi. La soluzione introdotta in questo articolo ti mostrerà come eseguire questa attività.
Prerequisiti
Per ottenere un'esperienza pratica, è necessario distribuire un'istanza del server Vultr CentOS 7 x64. Si noti che le istruzioni per altre distribuzioni Linux potrebbero essere diverse.
Inoltre, tutti i comandi in questo articolo sono adatti per root
; come tale, sarebbe necessario sudo privileges
se si utilizza un utente non root.
Passaggio 1: creare un gruppo sFTP dedicato e un utente sFTP dedicato
groupadd sftpusers
useradd -g sftpusers -s /sbin/nologin user1
passwd user1
Qui, il gruppo sftpusers
è un gruppo sFTP dedicato, l'utente user1
è un utente sFTP dedicato al quale è vietato accedere tramite SSH.
Passaggio 2: modificare la configurazione del servizio sshd
Apri il file di configurazione del servizio sshd:
vi /etc/ssh/sshd_config
Trova la linea:
Subsystem sftp /usr/libexec/openssh/sftp-server
Sostituiscilo con:
Subsystem sftp internal-sftp
Aggiungi le seguenti righe alla fine del file. Il nome del gruppo sftpusers
deve essere uguale a quello specificato in precedenza.
Match Group sftpusers
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h
ForceCommand internal-sftp
Salva ed esci:
:wq
Riavviare il servizio sshd per rendere effettive le modifiche.
systemctl restart sshd.service
Passaggio 3: creare una directory dedicata per l'utente solo sFTP
Devi specificare una directory per l'utente solo sFTP e assicurarti che questo utente possa giocare solo in questa directory:
chown -R root /home/user1
chmod -R 755 /home/user1
mkdir /home/user1/files
chown user1. /home/user1/files
Ora, l'utente user1
può solo caricare e / o scaricare file nella directory /home/user1/files
, non potrà mai toccare i file di altri utenti.
Passaggio 4: creare più utenti solo sFTP
Se hai bisogno di più utenti solo sFTP, puoi crearli nello stesso modo:
useradd -g sftpusers -s /sbin/nologin user2
passwd user2
chown -R root /home/user2
chmod -R 755 /home/user2
mkdir /home/user2/files
chown user2. /home/user2/files
Questo è tutto. Ogni account utente creato in questo modo verrà negato se lo si utilizza per accedere al sistema. Questi account utente possono essere utilizzati solo nei programmi sFTP.