Création compte sftp chrooté

chmux
13 juin 2018

Créer un groupe dédié :

# groupadd sftpusers

 
Créer le user (ici exemple avec le user toto) :

# useradd -g sftpusers -d /incoming -s /sbin/nologin toto
# passwd toto

 
Vérification :

# grep toto /etc/passwdtoto:x:500:500::/incoming:/sbin/nologin

 
Modifier le subsystem dans /etc/ssh/sshd_config :

#Subsystem      sftp    /usr/libexec/openssh/sftp-server
Subsystem       sftp    internal-sftp

 
Et rajouter à la fin :

Match Group sftpusers     #mettre "Match User toto" pour matcher un user seulement   
ChrootDirectory /sftp/%u        
ForceCommand internal-sftp

 
Créer les répertoires :

# mkdir -p /sftp/toto/incoming

 
Pour que le chroot fonctionne, il faut appliquer les bons droits :

# chown toto:toto /sftp/toto/incoming
# ls -ld /sftp/toto/incoming 
drwxr-xr-x 2 toto toto 4096 Dec 28 23:49 /sftp/toto/incoming

(il est possible de faire arriver le user directement à la racine du chroot, pour ce faire mettre simplement « / » en tant que home directory)
 
Root doit être le propriétaire de la racine du user (et 755 en droits) :

# ls -ld /sftp/toto 
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp/toto
# ls -ld /sftp
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp

 
Puis restart le service ssh :

# service sshd restart