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

Re: Récupération courrier fetchmail



On Fri, 01 Dec 2000 11:14:17 +0100, 
Patrice KARATCHENTZEFF <patrice.karatchentzeff@st.com> wrote :

> mlefranc@libertysurf.fr wrote:
> > 
> > On Thu, 30 Nov 2000 20:01:02 -0500,
> > Laurent Pelecq <laurent.pelecq@soleil.org> wrote :
> 
> > > Une idée: je crois que fetchmail veut que le fetchmailrc soit en
> > > permission 600 pour l'utilisateur qui le lance. Quand c'est pppd qui
> > > le lance il est root et le fetchmailrc est en 600 pour centre.
> > 
> > Alors, c'est la meilleure... Depuis quand les permissions d'un fichier
> > s'appliquent-elles à root ?
> 
> Pour fetchmail, si. C'est testé en interne. Si le propiétaire du fichier
> n'est pas l'utilisateur, cela ne fonctionne pas.... et si les droits
> du-dit fichier sont potentiellement dangereux, il ne s'exécute pas. Root
> ou pas root: c'est le programme qui décide :-)

Oui. C'est donc bien un test d'identité [plus précisément d'euid()],
pas de permissions !

Je reconnais m'être assez mal exprimé sur coup là. Ce à quoi j'ai
réagi est l'idée que ce soit le jeu de permissions 600 qui interdise
l'accès à root. Si la conclusion du raisonnement que j'ai critiqué est
correcte, il est lui-même faux.

> > Chez moi, le script tournant sous root lance un fetchmail pour chaque
> > /home/*/.fetchmailrc (on pourrait raffiner en testant la présence d'un
> > /home/*/.no_auto_fetchmail pour les utilisateurs qui ne veulent pas de
> > rapatriement automatique). On peut voir cela comme une extension de la
> > technique du ip-up.d.
> > 
> 
> Je suis curieux: comment as-tu fait cela ? un su systèmatique ?


for homedir in /home/*; do
    if [ -f $homedir/.fetchmailrc ]; then
	user=`basename $homedir`
	su $user -c fetchmail
    fi
done

Bon, c'est du bricolage que je n'ai jamais pris le temps de corriger
pour tenir compte du fait que si même on peut raisonnablement espérer
que seuls les utilisateurs normaux auront un .fetchmailrc, tous les
utilisateurs ne sont pas forcément sous /home.

En fait, pour bien faire, il faudrait faire la boucle sur les
utilisateurs réels et leurs répertoires racine. 

On fait ça comment ? scan de /etc/passwd pour les uid > un certain
numéro. C'est quoi ce uid min dans la debian ?

L'autre solution est d'avoir un fichier de configuration comportant
juste les noms des utilisateurs concernés par le rapatriement
automatique et de faire la boucle sur ces utilisateurs. 

Marc



Reply to: