Troumad wrote:

> Un camarade a trouvé la solution à mes questions (il me semble), je 
> vous passe l'adresse de la réponse s'il y a des gens intéressé. Mais 
> mon niveau d'anglais, comme mon niveau en LINUX, ne m'ont pas permis 
> de bien comprendre.


Comme la question m'intéresse aussi, j'ai lu et traduit l'article en 
question.
Le voila ci-dessous.
Si tu as testé proftp, comment faire pour que l'utilisateur à distance 
ne voit *que* un répertoire donné du host,
et qu'il ne puisse pas remonter dans l'arborescence ?  9a se trouve dans 
proftpd.conf, mais où ?


 

"Comment puis-je permettre à un utilisateur d'utiliser scp ou sftp, mais 
ne pas autoriser ssh
(c.a.d. d'obtenir un shell ou d'exécuter d'autres programmes) ?
La réponse est que c'est un peu compliqué à faire.
 scp1 et scp2 utilise ssh en sub process
pour se connecter au host et exécute le serveur approprié pour converser 
avec scp
et sftp-server respectivement.
Donc, la meilleure chose à faire est de resteindre l'utilisateur à 
exécuter le serveur de
transfert de fichier.
La façon la plus simple de le faire est de créer un compte uniquement à 
cet effet, en lui donnant
un shell qui ne lui permet de faire que du transfert de fichiers.
SSH utilise toujours le shell pour exécuter des programmes à distance, aussi
c'est une restriction fiable.
SSH appelle le shell avec l'option -c pour exécuter le programme.
La modification devrait accepter ou bien scp avec les arguments appropriés,
ou sftp-server, suivant le cas.
SSH2 est fourni avec ssh-dummy-shell pour la même tâche, ainsi il ne 
gère naturellement que sftp.

Si vous ne voulez pas limiter le compte utilisateur de cette façon,
cela devient plus difficile.

Vous pouvez également essayer une identification à clé publique avec une 
commande forcée.
C'est simple avec SSH2 :

  # SSH2
  [remote:~/.ssh2/authorization]
  key users_key.pub
  command /usr/local/bin/sftp-server

 Avec SSH1, c'est plus compliqué, parce que le client passe des arguments
 à scp dans la commande à distance.
 Par exemple :

  client command             runs this on server
  ----------------------------------------------
  scp foo server:bar         scp -t bar
  scp server:bar foo         scp -f bar
  scp *.txt server:dir       scp -d -t dir

 Ainsi, vous avez besoin d'un programme enveloppe pour le resteindre.
 Voila un exemple :

  # SSH1
  [remote:~/.ssh/authorized_keys]
  command="/path/to/scp-wrapper" 1024 37 1440913682374...

  (voir le script Perl à http://www.snailbook.com/faq/scp-wrapper.txt)

 Mais chacune de ces solutions a un défaut :
 l'autorisation et les clès autorisées sont Writable par le compte 
utilisateur cible.
 Ces mesures sont aisément contournées en utilisant simplement scp pour 
modifier ces fichiers.
 Donc vous devez les protéger des modifications.
 Vous pouvez interdire l'écriture dans le répertoire de controle SSH du 
compte,
 ou vous pouvez changer son emplacement par ex. avec l'instruction ssh2 
UserConfigDirectory.

 Par-delà ceci, cependant, il y a encore plus de trous.
 Par exemple, SSH exécute le shell de l'utilisateur pour exécuter la 
commande à distance,
 avec $SHELL -c "commande".

 Ainsi, vous pouvez tranquillement exécuter n'importe quelle
 commande avec scp,  dans le fichier de démarrage du shell à distance 
(par ex ~/.bashrc),
 et elles seront exécutées la prochaine fois que vous lancez scp.
 Vous devez donc verrouiller le répertoire home distant
 de façon qu'il ne soit pas writable pour l'utilisateur, et créer un espace
 distinct pour y déposer les fichiers."





Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com";

Reply via email to