Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Linux] Privil

4 réponses
Avatar
jacques
Bonjour,

ma question est peut-être mal formulée...

Un script perl dans /etc/aliases

aaaa: |/home/user/lescript.pl

parse les e-mail reçu par aaaa et écrit dans /home/user/log

Je peine à comprendre quel propriétaire lance le script et quels droits
obtient le script pour écrire dans le fichier log.

Avec des 777 partout ça marche mais - je sais - c'est *mal*

Comment régler ça ? Merci de vos lumières.


J.

4 réponses

Avatar
Nicolas George
jacques wrote in message <4b39fd65$0$11534$:
Je peine à comprendre quel propriétaire lance le script et quels droits
obtient le script pour écrire dans le fichier log.



Tu mets dans ton script juste ceci :

id > /tmp/blah

(en supposant que ta machine de tests est sûre ; sinon, il faut prendre des
précautions pour que ça ne permette pas à une personne malintentionnée de
détruire des fichiers système)

Et tu sauras avec quels droits ton script s'exécute.
Avatar
Bruno Tréguier
Le 29/12/2009 à 14:35, Nicolas George a écrit :
jacques wrote in message <4b39fd65$0$11534$:
Je peine à comprendre quel propriétaire lance le script et quels droits
obtient le script pour écrire dans le fichier log.



Tu mets dans ton script juste ceci :

id > /tmp/blah

(en supposant que ta machine de tests est sûre ; sinon, il faut prendre des
précautions pour que ça ne permette pas à une personne malintentionnée de
détruire des fichiers système)

Et tu sauras avec quels droits ton script s'exécute.



Bonjour,

Normalement, les droits avec lesquels sont exécutés les scripts
référencés dans /etc/aliases sont ceux du MTA. A ce stade en effet, on
ne sait pas encore quel est (ou quels sont) le(s) utilisateur(s) qui
sera (seront) arrosé(s) par l'alias. Un alias peut pointer sur un autre,
etc., le destinataire n'est d'ailleurs pas forcément local mais peut
être sur un autre serveur, enfin plein de raisons quoi... ;-)

Les fichiers accédés à ce stade doivent donc pouvoir être accédés (en
lecture, écriture ou exécution, selon les cas) par le MTA lui-même.

Si l'idée est plutôt de faire exécuter ce script par un utilisateur
particulier (genre compte applicatif), le mieux, dans ce cas-là, me
semble être de reporter le lancement du script dans le fichier .forward
de l'utilisateur créé pour l'occasion (à l'aide d'une syntaxe de type
"pipe" similaire à celle du fichier aliases), ou dans son .procmailrc si
procmail est utilisé (plus souple à mon avis, mais aussi plus "piégeux"
vu la syntaxe).

Si l'idée est plutôt de prévoir un traitement identique pour plusieurs
utilisateurs, le bon endroit peut être le fichier global /etc/procmail
(au lieu du .procmailrc de chaque utilisateur) si on utilise procmail.
Les variables d'environnement habituelles, genre $HOME, $USER, etc. sont
positionnées en conséquence (contrairement à ce que l'on pourrait penser
en effet, les règles définies dans le fichier /etc/procmailrc global
sont également évaluées, comme celles du .procmailrc individuel, sous
l'identité de l'utilisateur destinataire, et non celle du MTA ou du MDA).

Cordialement,

Bruno
Avatar
jacques
Le Wed, 30 Dec 2009 01:25:41 +0100, Bruno Tréguier a écrit :

Le 29/12/2009 à 14:35, Nicolas George a écrit :




Aïe ?! je n'ai pas reçu le post de Nocilas Georges,

jacques wrote in message <4b39fd65$0$11534$:
Je peine à comprendre quel propriétaire lance le script et quels
droits obtient le script pour écrire dans le fichier log.



Tu mets dans ton script juste ceci :

id > /tmp/blah





sauf ce qu'en quote Bruno :-(

Normalement, les droits avec lesquels sont exécutés les scripts
référencés dans /etc/aliases sont ceux du MTA.




J'ai bien essayé cette hypothèses, peut être pas assez creusé,

semble être de reporter le lancement du script dans le fichier .forward
de l'utilisateur créé pour l'occasion (à l'aide d'une syntaxe de type
"pipe" similaire à celle du fichier aliases),



Piste intéressante, je vais essayer,

Merci à tous les deux,

Cordialement,



Bruno


J.
Avatar
jacques
Le Wed, 30 Dec 2009 14:03:43 +0100, Bruno Tréguier a écrit :

Le 30/12/2009 à 10:24, jacques a écrit :



sauf ce qu'en quote Bruno :-(





Euh, sauf erreur, bien que ça ne soit pas mon habitude, j'avais tout
quoté... ;-)



Alors j'avais tout le quotage... mais jamais vu son post :(

En utilisant le .forward ça marche comme je le souhaite...

Bon courage ! Juste pour info, procmail permet de pré-filtrer les infos
qui seront "pipées" au script:



Ici le script Perl utilise Mail::MboxParser
qui fait ça pas mal du tout, même si je suis loin de parler le Perl
couramment... :-( Il me reste pas mal de choses à faire.

Merci,

Bruno


Jacques