Hallo Matthias, hallo Liste,

> Sch�ner w�re es nat�rlich, sowas in die ~/.procmailrc zu schreiben und
> die dann einzubinden. Ich bin damit leider gescheitert, weil procmail
> die ~/.procmailrc mit den Rechten des Users ausf�hrt. Und der darf
> cyrdeliever nat�rlich nicht benutzen.
> 
> Falls jemand daf�r noch eine L�sung h�tte, w�re ich auch noch dran
> interessiert! ;-)

ich hatte das erst mit einem Shell-Script versucht, aber die werden ohne
Kernel-Hack nicht setuid ausgef�hrt (was auch Sinn macht).

Daher ein kleines C-Programm, welches ich cyrdeliver_wrapper genannt habe:

#include <pwd.h>
#include <sys/types.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>

int main(int argc, char *argv[]){
  struct passwd *userinfo;

  /*if (argc != 2) return EINVAL;*/ /* invalid argument, too many/too
                                       few args */
  if (argc != 2) return ECANCELED;  /* invalid argument, too many/too
                                       few args; EINVAL is also returned
                                       by execle */

  userinfo = getpwuid(getuid()); /* get user info from /etc/passwd for
                                    calling user */
  execl("/usr/sbin/cyrdeliver", "cyrdeliver", "-a", userinfo->pw_name, "-m",
        argv[1], NULL);

  return errno; /* if execle fails, it sets errno; see man execle or man
                   execve */

  /* Hm, I cannot see in man page, what cyrdeliver returns... */

}

Das ganze dann
-rwsr-sr-x    1 cyrus    mail         5233 Sep  8 08:39
/usr/local/sbin/cyrdeliver_wrapper

Der Sinn: Damit nicht jeder in irgend eine beliebige Mailbox eines anderen
Users (-m) einsortieren darf, macht die User-Authentifizierung der wrapper
(-a). Wenn man in der Mailbox, die man als einzelnes Argument dem Wrapper
angibt, eine Mailbox w�hlt, in denen man keine post-Rechte hat, landet die
Mail in der INBOX des Users, s. man cyrdeliver. Ich denke, da� dies der Sinn
ist, weshalb cyrdeliver nicht f�r jeden executable ist.

Meine .procmailrc, sieht dann wie folgt aus (ach ja: wenn eine .procmailrc im
$HOME zu finden ist, w�hlt exim automatisch procmail zum zustellen, evt. mu�
man bei anderen MTAs noch etwas in die .forward schreiben):

LOGFILE=$HOME/.procmail/log
LOGABSTRACT=all
VERBOSE=yes
LOG="
"

THISUSER=$LOGNAME

DELIVERMAIL="/usr/local/sbin/cyrdeliver_wrapper"
IMAP="$DELIVERMAIL user.$THISUSER"
BACKUP="$DELIVERMAIL user.$THISUSER.Backup"

#:0c
#| $BACKUP

:0w
* ^X-Mailing-List: <debian-user-german@lists\.debian\.org>
| $IMAP.Linux.debian.debian-user-german


Das kann dann bis #| $BACKUP jeder User so �bernehmen. (Und zur Sicherheit
halt Backups von seinen E-Mails machen.)

So, wenn jemand Sicherheitsl�cken in dem C-Programm sieht oder sonst eine
Idee hat, ob man den Wrapper "�berreden" kann, in jede Mailbox
einzusortieren, w�re ich f�r Hinweise dankbar. Ansonsten hab ich auch schon
�berlegt, da� mal dem Maintainer zu schicken, vielleicht kann er ja mal noch
ne neue Version machen. (Sollte ich nen neuen Thread machen, da� evt.
mehrere das lesen?)

Achso: Ich hab hier cyrus-imapd 1.5.19-9, was neueres ist ja in der testing
noch nicht gelandet. Habe gelesen, da� ab Version 2 die cyrdeliver dann f�r
jedermann ausf�hrbar gemacht sein soll.


Nun, es ergeben sich allerdings auch ein paar Dinge, die es noch abzustellen
g�be:

(i) Die ~/.procmail/log sieht durcheinandergew�rfelt aus. Hat jemand eine
    Idee, wie man die lock'en kann, aber so, da� es keine Zustellungen gibt,
    die nicht mitgelogt werden?

(ii) Auf der Konsole sehe ich nicht mehr, wenn ich neue E-Mail bekommen
     habe. Die meisten Programme schauen ja nach dem Datum von z.B.
     /var/mail/user oder ~/Mail/...

(iii) Sollte man einen lokalen User ins Killfile gesteckt haben, kann er
      einen trotzdem in der INBOX nerven. :)

(iv) -f�llt mir gerade nicht ein-


Nunja, das wollte ich lange schonmal diskutiert haben, hoffentlich gibt's
viele Antworten.


Ansonsten sch�nes Wochenende,
 Mike


--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

Antwort per Email an