2 votes

un sous-système ssh qui fait ls

Normalement, vous créez un sous-système en faisant Subsystem vim /usr/bin/vim ou quelque chose comme ça. Alors comment je ferais un sous-système qui fait ls -la ? c'est-à-dire que vous appelez le sous-système ls, il vous donne un ls et ferme ensuite le canal. Il ne semble pas que Subsystem vim ls -la fonctionnerait puisqu'il ne s'agit pas d'un chemin vers un fichier binaire.

Des idées ?

4voto

Budda Points 123

Vous pouvez inclure des arguments de ligne de commande dans un Subsystem définition. Voici une partie de la description du "sous-système", tirée de la base de données de la Commission européenne. Documentation sur sshd_config :

Sous-système
Configure un sous-système externe (par exemple, un démon de transfert de fichiers). Les arguments doivent être un nom de sous-système et une commande (avec des arguments facultatifs) à exécuter sur demande du sous-système.

Cela devrait donc fonctionner correctement :

Subsystem ls ls -la /some/directory

Sshd exécute la commande du sous-système comme une commande Shell, donc la commande peut contenir la syntaxe Shell :

Subsystem ls ls -la /some/dir | tr a-z A-Z     # Upper-cases output

Une autre approche serait d'écrire un simple script qui exécute la commande souhaitée, et de configurer sshd pour qu'il exécute le script en tant que commande du sous-système. Par exemple, créez un script contenant ces lignes et marquez-le comme exécutable :

#!/bin/sh
exec ls -la

Ensuite, configurez le sous-système pour qu'il exécute le script :

Subsystem ls /path/to/my/script

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