[Postfixbuch-users] Cyradm scripten

Leo Unglaub leo.unglaub at gmx.at
Mo Jun 29 10:09:23 CEST 2009


Geil, vielen Dank.
Viele Grüße
Leo

Stefan Schmidt schrieb:
> Hallo Leo,
>
> On Monday 29 June 2009 09:47:18 Leo Unglaub wrote:
>   
>> Hallo Liste,
>> ich habe folgendes Problem, ich muss hunderte von verschiedenen
>> ACL-Einträgen setzen wovon sich viele aber relativ leicht per Script
>> abarbeiten lassen würden. Leider weiß ich nicht wie man den Cyradm in
>> ein bash-script so einbauen kann, dass ich dem Tool per
>> Aufrufparameter einen Befehl übergeben kann. Irgend wie will das
>> nicht funktionieren.
>>
>> Und alles händisch einzutippen ist extrem mühsamm, da man in diesem
>> blöden Tool ja nicht mal Befehl wiederhohlen per Pfeil nach oben
>> Taste verwenden kann.
>>
>> Im Pop3 und IMAP-Buch habe ich leider nix dazu gefunden. Weiß wer von
>> euch wie man den cyradm in einem Script ansprechen kann?
>>     
>
> Ich habe das mit expect gelöst:
>
> ==CreateUserMail=============
> #!/bin/bash
> if [ $# != 5 ]; then
>   echo usage: $0 username surname givnname gid passwd [shell]
>   echo if shell is omitted, /bin/false is used
>   exit
> fi
> USERNAME=$1
> SURNAME=$2
> GIVNAME=$3
> #USERID=$4
> GROUPID=$4
> PASSW=$5
> if [ $6"_" != "_" ]; then
>   LOSHELL=$6
> else
>   LOSHELL="/bin/false"
> fi
> ALIASV=$(echo $GIVNAME | tr -d " " | tr -d _)
> ALIASN=$(echo $SURNAME | tr -d " " | tr -d _)
> echo $USERNAME
> /root/bin/CheckExistingUser $USERNAME
> if [ $? != 0 ]; then
>   exit
> fi
> /root/bin/CheckExistingUser $ALIASV.$ALIASN
> if [ $? != 0 ]; then
>   exit
> fi
> case $GROUPID in
>         201)    echo "Group Faculty";;
>         202)    echo "Group Students";;
>         *)      echo "unknown group"; exit;;
> esac
> USERID=$(($(sort -k3n -t: < /etc/passwd | grep :$GROUPID: | tail -n1 | cut -f3 -d:)+1))
> useradd -u $USERID -g $GROUPID -d /home/$USERNAME -m -s $LOSHELL -c "$GIVNAME $SURNAME" -p $(mkpasswd $PASSW) $USERNAME
> expect /root/bin/CreateUserMail.expect $USERNAME 2>&1 >/dev/null
> PDFNewUserMailInfo.root $SURNAME $GIVNAME $USERNAME $PASSW 2>&1 >/dev/null
> =============================
>
> ==CreateUserMail.expect======
> spawn cyradm --auth login localhost -u cyrus
> expect "Password:"
> send "password\r"
> expect "localhost>"
> send "createmailbox user/[lindex $argv 0]\r"
> expect "localhost>"
> send "createmailbox user/[lindex $argv 0]/.Draft\r"
> expect "localhost>"
> send "createmailbox user/[lindex $argv 0]/.Sent\r"
> expect "localhost>"
> send "createmailbox user/[lindex $argv 0]/.Trash\r"
> expect "localhost>"
> send "createmailbox user/[lindex $argv 0]/SPAM\r"
> expect "localhost>"
> send "setacl user/[lindex $argv 0] cyrus lrswipcda\r"
> expect "localhost>"
> send "setquota user/[lindex $argv 0] 256000\r"
> expect "localhost>"
> send "setquota user/[lindex $argv 0]/.Trash none\r"
> expect "localhost>"
> send "exit\r"
> =============================
>
> Viel Spaß,
>
> Stefan
>   
> ------------------------------------------------------------------------
>
> --
> _______________________________________________
> Postfixbuch-users -- http://www.postfixbuch.de
> Heinlein Professional Linux Support GmbH
>
> Postfixbuch-users at listen.jpberlin.de
> https://listi.jpberlin.de/mailman/listinfo/postfixbuch-users



Mehr Informationen über die Mailingliste Postfixbuch-users