J'ai ajouté un utilisateur au système via l' adduser
outil. Puis, en /etc/passwd
, j'ai essayé de changer le /bin/bash
en /sbin/nologin
ou le /dev/null
, mais aucun de ceux-ci n'a fonctionné.
J'aimerais que l'utilisateur n'ait pas la possibilité d'obtenir un shell interactif, et juste de l'utiliser sftp
. Y a-t-il un moyen?
Je sais que cela a déjà été demandé ici, mais il semble que personne n'ait donné de réponse satisfaisante.
Réponses:
La commande que vous devez utiliser pour changer le shell est chsh . Le shell nologin peut être
/sbin/nologin
ou/usr/sbin/nologin
(vérifiez ce que vous avez en regardant/etc/shells
), mais ce/bin/false
serait probablement un meilleur choix.Vous devriez envisager de mettre en place quelque chose comme scponly qui fera exactement ce que vous voulez.
la source
/bin/false
et/bin/nologin
sont réellement disponibles en/etc/shells
!nologin
en/etc/shells
! serverfault.com/a/328424Vous devriez également pouvoir le faire avec OpenSSH 4.9 et supérieur, avec lequel vous pouvez en outre chrooter l'utilisateur pour une sécurité accrue.
Dans votre
/etc/ssh/sshd_config
:Exécutez ensuite:
L'utilisateur ne pourra écrire que dans / home / user / uploads.
https://debian-administration.org/article/590/OpenSSH_SFTP_chroot_with_ChrootDirectory
la source
Je pense que le meilleur moyen est avec mysecureshell
http://mysecureshell.sourceforge.net/en/index.html
Vous pouvez chrooter un utilisateur avec cela facilement et même limiter la bande passante si nécessaire.
la source
Vous pouvez ajouter un utilisateur avec
-s /bin/false
pour désactiver son shell, mais ce que vous devez vraiment examiner dans la configuration est un compte sftp chrooté. Cela "emprisonnera" un utilisateur dans son propre répertoire et l'empêchera d'accéder ou de modifier des fichiers ou des répertoires en dehors du répertoire chroot.la source