Je sais qu'il y a d'autres questions comme celle-ci et j'en ai déjà lu certaines. Mais cela n'a pas résolu mon problème. Je veux créer un utilisateur qui a un accès sftp à son répertoire personnel uniquement et qui n'est pas autorisé à voir les fichiers/dossiers situés au-dessus de ce répertoire. Il devrait également être en mesure d'exécuter des commandes Shell dans ce répertoire. (Démarrage d'un processus de noeud par exemple)
L’accès sftp fonctionne jusqu’à présent. L'utilisateur est limité à son répertoire personnel et peut modifier/supprimer des fichiers.
J'ai essayé de créer un lien symbolique Sudo ln -s /bin/bash /bin/rbash
et le message file already existing
a été défini. J'ai donc paramétré l'utilisateur Shell sur Sudo usermod -s /bin/rbash user
, mais si l'utilisateur se connecte via shh, le texte de bienvenue d'Ubuntu s'affiche, puis /bin/rbash: No such file or directory
. La même chose se produit si je règle le shell sur bash.
Mon sshd_conf ressemble à ceci maintenant:
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes
Match group sftp
ChrootDirectory /home/userdirectory
AllowTcpForwarding no
# ForceCommand internal-sftp
J'ai également essayé de créer un lien symbolique de /bin/bash
à /home/userdirectory/bin/bash
, mais lorsque l'utilisateur se connecte via ssh, il indique Too many symbolic links
.
J'ai copié /bin/bash
dans /home/userdirectory/bin/bash
et le message no such file or directory
.
J'ai résolu cela en copiant /bin/bash
dans /home/userdirectory/bin/bash
.
Après cela, j'ai énuméré les bibliothèques requises avec
ldd /bin/bash
et les a tous copiés dans leurs répertoires appropriés sous le chroot /home/userdirectory
.
Si vous voulez avoir d'autres commandes dans le shell, vous devez les copier également de /bin
vers /home/userdirectory/bin
et ajouter leurs bibliothèques.