web-dev-qa-db-fra.com

Comment créer un utilisateur avec un shell restreint

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.

3
omnomnom

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.

2
omnomnom