next up previous
Next: About this document ... Up: Les différents types d'utilisateur Previous: Lancement du serveur FTP

Problème encontré : ``ls ne fonctionne pas''

lorsqu'un utilisateur ``invité'' (guest) c'est à dire appartenant à un compte guest pour le serveur, se connecte au serveur, la commande

ls ne renvoie rien .. ce probleme est couramment évoqué dans le FAQ de wu-ftp

la FAQ indique ce message

I use wu-ftpd to create guest accounts in my computer, but i don´t

> see any archive or directory. I make this setup using "How to setup

> WU-FTPD Guest Accounts".

You have to put a *statically linked* ls in every user's home directory

(~user/bin/ls), or a dynamically linked ls along with all libraries it is

using (ldd ls).

Using a statically linked ls is less trouble.

Or, you might want to test the "internal ls" feature found in BeroFTPD

1.1.1 (ftp://aachen.linux.de/pub/BeroFTPD/).

Pour vérifier qu'une commande fonctionne bien après avoir fait un changement de racine virtuel on peut tester la commande suivante:

En fait la commande ls sous ftp ne fonctionne (semble ne pas fonctionner) pas. Elle n'affiche rien. La FAQ invoque 2 points essentiels : Il faut que la commande ls présente dans ~/ftp/bin soit linkée statiquement avec les librairies. Pour voir les librairies utilisées par un programme faire

$ ldd bin/ls

libc.so.5 => /lib/libc.so.5.3.12 

La FAQ préconise de relinker une version ``statique'' de ``ls'' . Ce que l'on peut faire à partir du package GNU ``fileutils'' disponibles sur tout bon serveur linux

Mais dans mon cas, cette raison n'était apparemment pas la cause de l'erreur. Cette commande ne fonctionnait pas car elle n'etait pas trouvée par le serveur en raison d'une erreur dans le répertoire d'accueil du compte ``guest'' et du changement de sa racine ``/'' virtuelle. En effet lors de la création du compte guest il faut rajouter une ligne dans /etc/passwd

mirror:sWhcGf8.0v02bA:506:505:compte mirroir antivirus Nice:/home/./mirror/:/etc/ftponly

univmrs:KWhc.4.0jk7902bA:507:505:compte mirroir antivirus Nice:/home/ftp/.//:/etc/ftponly 

qui indique à partir de quel répertoire du file system Unix va se faire le changement de racine /

Dans l'exemple ci dessus, pour le compte guest ``univmrs'', la nouvelle racine / sera après connexion égale à /home/ftp. Il faut qu'après la connexion le répertoire ``bin'' du serveur ftp (donc /home/ftp/bin) soit accessible directement depuis cette nouvelle racine

Ainsi si le compte ftp se trouve dans /home/ftp, on trouvera les répertoires conventionnels suivants:

total 8

-rw-rw-r-   1 root     root           30 Aug 14 15:06 README

drwxr-xr-x   2 root     root         1024 Aug 11 17:27 bin

drwxr-xr-   2 root     root         1024 Aug 11 17:25 dev

d-x-x-x   2 root     root         1024 Aug 14 15:39 etc

drwxr-xr-x   2 root     root         1024 Aug 14 10:54 lib

drwxr-xr-x  11 root     root         1024 Aug 15 04:00 mirror

drwxr-xr-x   2 root     root         1024 Aug 14 14:47 pub       

il est nécessaire qu'on puisse trouver /bin/ls à partir de cette nouvelle racine, (``/'' <=> ``/home/ftp'') pourque la commande ``ls'' fonctionne correctement

Si on fait l'erreur de mettre un mauvais path comme nouvelle racine virtuelle

guest:sq?nuu2bAoo:506:505:compte guest ftp:/home/./guest/:/etc/ftponly

la nouvelle racine ``/'' après connexion sera égale à /home. Dans ce cas la commande /bin/ls n'est pas trouvée!! puisque à partir de cette nouvelle racine, elle se trouverait dans /ftp/bin/ls


next up previous
Next: About this document ... Up: Les différents types d'utilisateur Previous: Lancement du serveur FTP
maurice Libes - Service informatique C.O.M
1999-08-23