J'aimerais donner un accès SFTP temporaire à un membre du support. Comment créer un utilisateur SFTP ? Et comment puis-je le supprimer une fois le travail terminé ?
Aussi, comment leur spécifier un répertoire personnel ? Puis-je les empêcher d'accéder à certains sous-répertoires de leur répertoire personnel ?
Nous utilisons CentOS 6.3 et fzSftp
Réponse acceptée :
Accès non chroot
Si vous n'avez pas de configuration de serveur FTP et que vous faites confiance à l'utilisateur qui se connectera pour ne pas trop fouiller dans votre serveur, je serais enclin à leur donner un compte SFTP dans le système à la place.
Le wiki CentOS maintient un guide simple intitulé :Configuration SFTP simple qui rend cela assez simple.
Je dis que c'est sans douleur parce qu'il vous suffit littéralement de créer le compte et de vous assurer que le pare-feu autorise le trafic SSH, assurez-vous que le service SSH est en cours d'exécution, et vous avez pratiquement terminé.
Si sshd
n'est pas déjà en cours d'exécution :
$ /etc/init.d/sshd start
Pour ajouter un utilisateur :
$ sudo useradd userX
$ sudo passwd userX
... set the password ...
Lorsque vous avez terminé avec le compte :
$ sudo userdel -r userX
Accès chroot
Si, par contre, vous souhaitez limiter cet utilisateur à un répertoire désigné, le serveur SFTP inclus avec SSH (openssh) fournit une configuration qui facilite également cette activation. C'est un peu plus de travail mais pas trop. Les étapes sont couvertes ici dans ce didacticiel intitulé :Comment configurer Chroot SFTP sous Linux (Autoriser uniquement SFTP, pas SSH).
Apportez ces modifications à votre /etc/ssh/sshd_config
fichier.
Subsystem sftp internal-sftp
## You want to put only certain users (i.e users who belongs to sftpusers group) in the chroot jail environment. Add the following lines at the end of /etc/ssh/sshd_config
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
Vous devez maintenant créer l'arborescence chrootée dans laquelle cet utilisateur sera verrouillé.
$ sudo mkdir -p /sftp/userX/{incoming,outgoing}
$ sudo chown guestuser:sftpusers /sftp/guestuser/{incoming,outgoing}
Les autorisations doivent ressembler à ceci :
$ ls -ld /sftp/guestuser/{incoming,outgoing}
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/incoming
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/outgoing
Les répertoires de niveau supérieur comme celui-ci :
$ ls -ld /sftp /sftp/guestuser
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp/guestuser
N'oubliez pas de redémarrer le sshd
serveur :
$ sudo service sshd restart
Créez maintenant le compte userX :
$ sudo useradd -g sftpusers -d /incoming -s /sbin/nologin userX
$ sudo passwd userX
... set password ...
Vous pouvez vérifier que le compte a bien été créé :
$ grep userX /etc/passwd
userX:x:500:500::/incoming:/sbin/nologin
Lorsque vous avez terminé avec le compte, supprimez-le de la même manière ci-dessus :
$ sudo userdel -r userX
…et n'oubliez pas de supprimer les modifications apportées au fichier de configuration ci-dessus, puis redémarrez sshd
pour les rendre actifs une fois de plus.