• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

mittels Bash ein Passwort eingeben/übergeben

Wisha

Newbie
Hi @ all

Ich fummel grad so ein bisschen mit eigenen Scripts rum und will, dass das Bash 'adduser' Mailboxen in Cyrus anlegt:

Code:
cyradm -u cyrus localhost

Dann soll er natürlich das Passwort von selber eingeben.
Nur wie geht das, wenn es geht?

Ob nun automatisch oder manuell, jedenfalls kommt nach cyradm ja noch der nächste Schritt. Mailboxen anlegen. Leider führt meine Bash alle Befehle die nach cyradm kommen erst dann aus, wenn ich aus Cyrus wieder raus bin. Also

Code:
cm user.benutzer

wird erst wieder außerhalb von Cyrus ausgeführt.

So nun meine Frage:
Kann man das mit einem Bash überhaupt realisieren und wenn ja wie?
 

wumpfreak

Newbie
Solange der cyradm läuft ist die Kontrolle deinem Script "entzogen". Da kannst Du AFAIK mit Shell-Mitteln nix machen.

Um mit Programmen "interagieren" zu können, brauchst Du ein Tool wie z.B. expect http://expect.nist.gov/.

Grüße

Stephan
 
OP
W

Wisha

Newbie
@ alle die es wissen wollen
Man kann es doch mittels einer Bash lösen

Hier mein Script zum Löschen vom Benutzern aus OpenXchange und der dazugehörigen Mailboxen aus Cyrus.

Code:
#!/bin/bash
TELNET="telnet"
IMAPSERVER="localhost"
IMAPPORT="imap2"
CYRUS="cyrus"
PASSWORD="geheim"

set -e

echo "########################################################################"
echo "                  $1 wird entfernt"
echo "########################################################################"

/opt/ox/sbin/deluser_ox --username=$1

echo "########################################################################"
echo "          Mailboxen von $1 werden gelöscht"
echo "########################################################################"

(echo . login $CYRUS $PASSWORD
sleep 1
echo . setacl user/$1 cyrus cd
sleep 1
echo . delete user/$1
sleep 1
echo . logout
sleep 1
) | $TELNET $IMAPSERVER $IMAPPORT

Wobei letzeres die Kommunikation von/mit cyradm übernimmt.
 
Oben