[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Pure-ftpd recalcitrant





Le 2 octobre 2008 20:25, Thomas Preud'homme <thomas.preudhomme@celest.fr> a écrit :
Le jeudi 2 octobre 2008, vous avez écrit :
> > Que donne un pstree ? Quel est le père de ces processus ? S'il
> > s'agit de pureftpd je suppose que celui-ci oublie de faire des wait
> > et le tuer puis le relancer devrait suffire. Si init ou ton shell
> > est le père de ces processus alors c'est étrange.
>
> J'avais bien sur arreté le demon pureftpd principal mais celui-ci
> n'est pas détaché des fils créé à chaque connexion. Donc lui etait
> correctement stopé.

Du coup les fils étaient rattaché à quel père en définitive ?

Je reprend :

Pure-ftpd lancé seul ça donne ça :
# ps -edf | grep pure
root      1678     1  0 19:55 ?        00:00:00 pure-ftpd (SERVER)


Avec une connection active mais idle ca donne ca :
#ps -edf | grep pure
root      1678     1  0 19:55 ?        00:00:00 pure-ftpd (SERVER)
torus     4578  1678  0 20:45 ?        00:00:00 pure-ftpd (IDLE)
root      4579  4578  0 20:45 ?        00:00:00 pure-ftpd (PRIV)


soit deux fils dont un qui est IDLE et attaché au SERVER et PRIV qui est attaché au IDLE
donc :
# pstree 1678
pure-ftpd-ldap-───pure-ftpd-ldap-───pure-ftpd-ldap-

si j'arrête le démon principal la connexion reste active mais le fils IDLE se détache de SERVER :

# /etc/init.d/pure-ftpd-ldap stop
Stopping ftp server: pure-ftpd.
# ps -edf | grep pure

torus     4578     1  0 20:45 ?        00:00:00 pure-ftpd (IDLE)
root      4579  4578  0 20:45 ?        00:00:00 pure-ftpd (PRIV)

En l'occurrence, dans mon cas j'avais arreté le SERVER mais je ne pouvais pas tuer l'IDLE . Quand j'ai voulu tuer PRIV par il est resté en zombie.

------------

Mes users sont bien chrooté oui mais dans mes options j'ai dit a pureftpd de suivre les liens symbolique :

ici en gros j'avais :

/mnt/ftpmouted << mon repertoire sur lequel est monté un ftp
/home/user/ << la home de mon user

et lui a ajouté
/home/user/lien -> /mnt/ftpmounted
(il l'a fait en ligne de commande parce que je lui avais donné l'acces ssh, normalement j'ai confiance en lui)




>
> Je viens de réussir a les faire disparaitre mais c'est étrange, en
> fait mon user avait fait un lien vers un répertoire monté sur un
> autre ftp avec curlftpd et il avait tout cassé.

mmmh pureftp n'est pas censé s'exécuter dans un chroot ? Enfin je veux
dire normalement il ne peut pas servir un fichier en dehors des
répertoires qu'il gère et donc ce lien n'aurait pas dû poser problème
(juste être inaccessible). Peut-être un bug à signaler.

> En gros c'est fuse qui empechait mes process de s'arreter.

C'est étrange, le programme devrait pouvoir être arrêté quelque soient
les modules dont il a besoin en définitive. Je ne connais pas bien
l'architecture de fuse mais la partie noyau n'est clairement pas
concernée et la partie userspace s'exécute forcément pour le compte
d'un processus. De deux choses l'une ou bien il s'exécute pour un
processus tiers auquel cas il n'entre pas en compte, ou bien il
s'exécute pour le processus pureftp et il peut être tué avec un kill -9
(un programme ne peut intercepter un kill -9. Un kill-9 est géré par le
noyau et aucun programme ne peut s'y soustraire).

Par contre ce qui est fort possible c'est que ton kill -9 ait tué
correctement les processus fils comme prévu mais que init ait mis un
certains temps avant de faire le wait qui libère les processus zombie.

>
> Par contre, le kill -9 ne faisait rien.... fuse avait la priorité
> parce que c'est un module ?

Le kill -9 a marché vu que tes processus sont devenus zombies. Un
processus zombie c'est un processus qui n'existe plus mais dont on
conserve l'état de terminaison pour que son parent le récupère. Pour
qu'un processus disparaisse complètement il faut que le père récupère
cet état et libère ainsi l'espace où est stocké l'état de terminaison.

>
> Merci quand même.

De rien pour le coup :)

Cordialement,

Thomas Preud'homme

--
Why Debian : http://www.debian.org/intro/why_debian


--
Breizh da viken : www.pointbzh.com

Reply to: