1 votes

Appel interne-sftp comme Shell après ChrootDirectory dans ForceCommand Shell.

Dans mon SSH / SFTP pour un certain groupe d'utilisateurs, j'aimerais que ces utilisateurs soient limités à leurs propres activités. home après l'ouverture de session, et vérifier d'autres conditions avant d'accorder l'accès aux dossiers. SFTP l'accessibilité.

Restreindre les utilisateurs à leurs répertoires personnels était assez simple, j'ai ajouté :

Match group <someGroup>
ChrootDirectory     %h
ForceCommand internal-sftp

Cependant, en passant à la seconde partie, je veux vérifier certaines conditions, ce qui implique de remplacer internal-sftp en ForceCommand avec un script.

Dans le script, après la vérification :

sh -c $SSH_ORIGINAL_COMMAND

se résout à /usr/libexec/openssh/sftp-server puisque c'est la requête envoyée par toute SFTP client tel que WinSCP (c'est probablement par défaut..). Bien que l'utilisateur soit en mesure d'utiliser SFTP, la capacité à Chroot l'utilisateur à son répertoire personnel a disparu.

Je ne suis pas sûr de savoir comment forcer ou appeler, à partir du Shell Shell, les internal-sftp et Chroot-ing un utilisateur à son %HOME dans le script. Comment dois-je m'y prendre, si c'est possible ?

UPDATE

Comme indiqué dans la réponse ci-dessous, j'ai essayé de copier les fichiers système requis dans le dossier de l'utilisateur. Chroot et appeler $SSH_ORIGINAL_COMMAND dans mon script.

sshd_config

Match group <somegroup>
ChrootDirectory     %h
ForceCommand    /usr/local/bin/testssh.sh

testssh.sh script

#! /bin/bash
sh -c $SSH_ORIGINAL_COMMAND

ChrootDirectory (user home, complete path owned by root)

Contents
/bin
/etc
/lib

Cependant, l'utilisateur est toujours incapable d'initier la session sftp. Que faut-il faire d'autre ?

1voto

Martin Prikryl Points 18838

Vous ne pouvez pas.

internal-sftp est un mot clé de configuration et non un binaire. Il indique sshd pour exécuter le serveur SFTP intégré dans sshd . Vous ne pouvez pas rappeler un processus en cours d'exécution à partir d'une commande Shell.

Je crois que le sftp-server binaire est retenu spécifiquement pour des scénarios comme celui-ci, où internal-sftp ne peut être utilisé. Voir ma réponse à OpenSSH : Différence entre internal-sftp et sftp-server .

Vous devriez pouvoir le faire avec sftp-server il se peut qu'il ait besoin de plus de réglages.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X