On peut utiliser un logiciel (Pro-FTP, VsFTPd etc...)... ou simplement utiliser OpenSSH...
ça se fait en un tour de main !
Je vous montre ici 2 méthodes.
La première est la plus simple, la seconde est un peu plus élaborée.
su -
groupadd UTILISATEUR1
useradd -g UTILISATEUR1 -m -d /SFTP/UTILISATEUR1 -s /sbin/nologin UTILISATEUR1
passwd UTILISATEUR1
mkdir -p /SFTP/UTILISATEUR1/DATA
chown root:root /SFTP
chmod 755 /SFTP
chown root:root /SFTP/UTILISATEUR1
chmod 755 /SFTP/UTILISATEUR1
chown UTILISATEUR1:UTILISATEUR1 /SFTP/UTILISATEUR1/DATA
chmod 700 /SFTP/UTILISATEUR1/DATA
vi /etc/ssh/sshd_config
Ajouter/modifier les lignes suivantes (tout en bas du fichier :)
Subsystem sftp internal-sftp
Match Group UTILISATEUR1
ChrootDirectory /SFTP/UTILISATEUR1
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
systemctl restart sshd
su -
groupadd sftpexclusive
groupadd nosftp
Vous l'aurez compris, le principe est très simple : si on veut désactiver le compte d'un utilisateur, il suffira de le rajouter au groupe nosftp avec la commande suivante : (le compte sera alors immédiatement désactivé)
usermod -G nosftp UTILISATEUR1
Peu importe qu'il soit aussi dans l'autre groupe, car l'instruction du groupe interdisant la connexion sera placée avant dans le fichier /etc/ssh/sshd_config (voir plus bas).
Pour réactiver le compte, il faudra sortir l'utilisateur du groupe.
useradd -g sftpexclusive -m -d /SFTP/UTILISATEUR1 -s /sbin/nologin UTILISATEUR1
passwd UTILISATEUR1
mkdir -p /SFTP/UTILISATEUR1/DATA
chown root:root /SFTP
chmod 755 /SFTP
chown root:root /SFTP/UTILISATEUR1
chmod 755 /SFTP/UTILISATEUR1
chown UTILISATEUR1:sftpexclusive /SFTP/UTILISATEUR1/DATA
chmod 700 /SFTP/UTILISATEUR1/DATA
Subsystem sftp internal-sftp
Match Group nosftp
ForceCommand /usr/bin/false
Match Group sftpexclusive
ChrootDirectory /SFTP/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
systemctl restart sshd