Création compte sftp chrooté

Samuel Chevalley
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

Pour modifier le user si existant :

# usermod -g sftpusers -d /incoming -s /sbin/nologin toto

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        
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

Root doit être le propriétaire de la racine du user :

# 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