From e746530bcf42b86fa501356074b14e4adf968b83 Mon Sep 17 00:00:00 2001 From: Marian Date: Tue, 3 Jan 2017 20:42:38 +0100 Subject: use fd3 for debugging not fd2 (because before, error messages by programs would get piped to /dev/null when debugging was off) --- lduseradd | 66 +++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 35 insertions(+), 31 deletions(-) diff --git a/lduseradd b/lduseradd index 9597228..94fa71b 100755 --- a/lduseradd +++ b/lduseradd @@ -87,15 +87,19 @@ then exit 1 fi -# Wenn das Skript nicht debuggen soll, wird FD 2 auf /dev/null +# Wenn das Skript nicht debuggen soll, wird FD 3 auf /dev/null # umgeleitet. -[[ "$DEBUG" != "" ]] || exec 2>/dev/null +if [[ "$DEBUG" = "" ]]; then + exec 3>/dev/null +else + exec 3>&2 +fi -# Als Beispiel: Das >&2 sagt, dass alles, was auf FD 1 (stdout) -# ausgegeben wird -- bei echo eben der Text -- auf FD 2 umgeleitet +# Als Beispiel: Das >&3 sagt, dass alles, was auf FD 1 (stdout) +# ausgegeben wird -- bei echo eben der Text -- auf FD 3 umgeleitet # werden soll. Da das dann im Nicht-Debug-Modus wiederum auf # /dev/null umgeleitet wird, ist das dann nicht zu sehen. -echo "Browser: $BROWSER" >&2 +echo "Browser: $BROWSER" >&3 # Wenn ein Account angegeben war, dann wird der jetzt in # Kleinbuchstaben umgewandelt. @@ -141,7 +145,7 @@ do # Gibt es dieses Login ueberhaupt? if ( ! ldapsearch -b "dc=spline,dc=inf,dc=fu-berlin,dc=de" \ -x uid="$ACCOUNT" \ - | grep -E "^uid|^gecos" >&2 ) + | grep -E "^uid|^gecos" >&3 ) then # Noe. echo "Es gibt keineN BenutzerIn mit dem Login $ACCOUNT." @@ -168,7 +172,7 @@ do if [[ "$ACCOUNTTESTED" = "" ]] && [[ "$ANTRAG" = "" ]] then # Ungueltige Zeichen? - if ( echo $ACCOUNT | grep -E '(^[[:digit:]]|[^[:alpha:][:digit:]])' >&2 ) + if ( echo $ACCOUNT | grep -E '(^[[:digit:]]|[^[:alpha:][:digit:]])' >&3 ) then echo echo "\"$ACCOUNT\" enthaelt unzulaessige Zeichen oder beginnt" @@ -188,7 +192,7 @@ do # Gibt es das Login schon? if ( ldapsearch -b "dc=spline,dc=inf,dc=fu-berlin,dc=de" \ -x uid="$ACCOUNT" \ - | grep -E "^uid|^gecos" >&2 ) + | grep -E "^uid|^gecos" >&3 ) then echo echo "$ACCOUNT ist bereits vergeben." @@ -236,7 +240,7 @@ do NNAME=${NNAME:-$NNAMEHINT} # Ungueltige Zeichen? - if ( echo $NNAME | grep -E '([^A-Za-z])' >&2 ) + if ( echo $NNAME | grep -E '([^A-Za-z])' >&3 ) then echo echo "\"$NNAME\" enthaelt unzulaessige Zeichen (Umlaute?)." @@ -264,7 +268,7 @@ do VNAME=${VNAME:-$VNAMEHINT} # Ungueltige Zeichen? - if ( echo $VNAME | grep -E '([^A-Za-z])' >&2 ) + if ( echo $VNAME | grep -E '([^A-Za-z])' >&3 ) then echo echo "\"$VNAME\" enthaelt unzulaessige Zeichen (Umlaute?)." @@ -282,7 +286,7 @@ do read STREET # Ungueltige Zeichen? - if ( echo $STREET | grep -E '([^A-Za-z 0-9\.])' >&2 ) + if ( echo $STREET | grep -E '([^A-Za-z 0-9\.])' >&3 ) then echo echo "\"$STREET\" enthaelt unzulaessige Zeichen (Umlaute?)." @@ -300,7 +304,7 @@ do read PLZ # Wenn die PLZ etwas anderes als Ziffern enthaelt ... - if ( echo $PLZ | grep -E '[^[:digit:]]' >&2 ) + if ( echo $PLZ | grep -E '[^[:digit:]]' >&3 ) then echo echo "Eine PLZ mit etwas anderem als Ziffern?" @@ -329,7 +333,7 @@ do # Zeichen oder auch "keine" eingegeben werden darf. # in der regex muss das "-" an's Ende!! if [[ "$TEL" != "keine" ]] \ - && ( echo $TEL | grep -E '[^ \+()[:digit:]\/\-]' >&2 ) + && ( echo $TEL | grep -E '[^ \+()[:digit:]\/\-]' >&3 ) then echo echo "Eine Telephonnummer mit etwas anderem als Ziffern" @@ -371,7 +375,7 @@ do #COMMAND="$BROWSER -dump \ # \"http://page.mi.fu-berlin.de/~berndts/cgi-bin/acc.sh?$INFACCOUNT\" \ # | grep -E \"YES|NO\" | awk '{print \$1}'" - #echo "Browser wird aufgerufen durch: $COMMAND" >&2 + #echo "Browser wird aufgerufen durch: $COMMAND" >&3 #INFACCOUNTTEST=$(eval $COMMAND) INFACCOUNTTEST=$(echo "$INFACCOUNT" | ssh fbgetUser "~/.checkUser") @@ -408,7 +412,7 @@ do # durch das cat -n eine Nummer geben. echo AVAILABLESHELLSCOMMAND='grep -v "^$\|^#" /etc/shells' - echo AVAILABLESHELLSCOMMAND: $AVAILABLESHELLSCOMMAND >&2 + echo AVAILABLESHELLSCOMMAND: $AVAILABLESHELLSCOMMAND >&3 eval $AVAILABLESHELLSCOMMAND | cat -n echo @@ -497,7 +501,7 @@ do # Ueberpruefen, ob es den Account gibt. if ( ! ldapsearch -b "dc=spline,dc=inf,dc=fu-berlin,dc=de" \ - -x uid="$SPLINE"|grep -E "^uid:" >&2 ) + -x uid="$SPLINE"|grep -E "^uid:" >&3 ) then echo echo "Glaub' ich dir nicht." @@ -538,11 +542,11 @@ then echo echo -n "Das kann jetzt einen Moment dauern. Der Antrag wird generiert ... " - echo >&2 + echo >&3 # LaTeX und dvips aufrufen. - latex account-$ACCOUNT.tex >&2 - dvips -o account-$ACCOUNT.ps account-$ACCOUNT.dvi >&2 + latex account-$ACCOUNT.tex >&3 + dvips -o account-$ACCOUNT.ps account-$ACCOUNT.dvi 2>&3 >&3 echo "fertig." @@ -591,7 +595,7 @@ UIDNUMBER=$(ldapsearch -b "dc=spline,dc=inf,dc=fu-berlin,dc=de" \ | awk -F: \ '/uidNumber:/ {if (max <= $2 && $2 < 65000 ) max = $2;} END {print max+1}') -echo "Numerische UID: $UIDNUMBER" >&2 +echo "Numerische UID: $UIDNUMBER" >&3 touch $LOG chmod 600 $LOG @@ -635,7 +639,7 @@ ldapadd -x -D "cn=admin,dc=spline,dc=inf,dc=fu-berlin,dc=de" \ || echo "Fehler beim Eintrag in die LDAP-Datenbank." # Mal sehen, ob der Account jetzt da ist. -if ( id $ACCOUNT >&2 ) +if ( id $ACCOUNT >&3 ) then echo Account erfolgreich in das LDAP-Verzeichnis eingetragen. else @@ -697,21 +701,21 @@ echo "Mailinglisten spline und splinux einzutragen ..." REALNAMEESC=$(perl -e'$e = shift; $e =~ s/([^\w])/'\''%'\''.sprintf("%X", ord($1))/ge; print $e;' "$VNAME $NNAME") # Das Abonnieren geht auch ueber das WWW. -SPLINEEINTRAG="$BROWSER -dump \"http://lists.spline.inf.fu-berlin.de/mailman/subscribe/spline?email=$ACCOUNT@spline.inf.fu-berlin.de&fullname=$REALNAMEESC\"" -SPLINUXEINTRAG="$BROWSER -dump \"http://lists.spline.inf.fu-berlin.de/mailman/subscribe/splinux?email=$ACCOUNT@spline.inf.fu-berlin.de&fullname=$REALNAMEESC\"" +SPLINEEINTRAG="$BROWSER -dump \"http://lists.spline.inf.fu-berlin.de/mailman/subscribe/spline?email=$ACCOUNT@spline.inf.fu-berlin.de&fullname=$REALNAMEESC\"" 2>&3 +SPLINUXEINTRAG="$BROWSER -dump \"http://lists.spline.inf.fu-berlin.de/mailman/subscribe/splinux?email=$ACCOUNT@spline.inf.fu-berlin.de&fullname=$REALNAMEESC\"" 2>&3 if [ "$BROWSER" == "/usr/bin/wget" ] ; then - SPLINEEINTRAG="$BROWSER --no-check-certificate -O /dev/null \"http://lists.spline.inf.fu-berlin.de/mailman/subscribe/spline?email=$ACCOUNT@spline.inf.fu-berlin.de&fullname=$REALNAMEESC\"" - SPLINUXEINTRAG="$BROWSER --no-check-certificate -O /dev/null \"http://lists.spline.inf.fu-berlin.de/mailman/subscribe/splinux?email=$ACCOUNT@spline.inf.fu-berlin.de&fullname=$REALNAMEESC\"" + SPLINEEINTRAG="$BROWSER --no-check-certificate -O /dev/null \"http://lists.spline.inf.fu-berlin.de/mailman/subscribe/spline?email=$ACCOUNT@spline.inf.fu-berlin.de&fullname=$REALNAMEESC\"" 2>&3 + SPLINUXEINTRAG="$BROWSER --no-check-certificate -O /dev/null \"http://lists.spline.inf.fu-berlin.de/mailman/subscribe/splinux?email=$ACCOUNT@spline.inf.fu-berlin.de&fullname=$REALNAMEESC\"" 2>&3 fi -echo >&2 -echo "Spline: $SPLINEEINTRAG" >&2 -eval $SPLINEEINTRAG >&2 +echo >&3 +echo "Spline: $SPLINEEINTRAG" >&3 +eval $SPLINEEINTRAG >&3 -echo >&2 -echo "Splinux: $SPLINUXEINTRAG" >&2 -eval $SPLINUXEINTRAG >&2 +echo >&3 +echo "Splinux: $SPLINUXEINTRAG" >&3 +eval $SPLINUXEINTRAG >&3 echo "... versucht :) Nicht vergessen, Mails zu lesen!" echo "Mit einer .forward-Datei im Heimatverzeichnis " -- cgit v1.2.3-1-g7c22