[Postfixbuch-users] Cyradm scripten

Stefan Schmidt s.schmidt at jacobs-university.de
Mo Jun 29 09:59:26 CEST 2009


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
-- 
Stefan Schmidt
Network Manager

Jacobs University Bremen gGmbH
Campus Ring 1 | 28759 Bremen | Germany

Commercial registry: Amtsgericht Bremen, HRB 18117
CEO: Prof. Dr. Joachim Treusch
Chair Board of Governors: Prof. Dr. Karin Lochte
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 197 bytes
Beschreibung: This is a digitally signed message part.
URL         : <https://listi.jpberlin.de/pipermail/postfixbuch-users/attachments/20090629/d29bd506/attachment.asc>


Mehr Informationen über die Mailingliste Postfixbuch-users