summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarian <marian@spline.de>2017-01-03 20:42:38 +0100
committerAlexander Sulfrian <alexander@sulfrian.net>2019-11-06 16:08:03 +0100
commite746530bcf42b86fa501356074b14e4adf968b83 (patch)
tree7ad4e7799c697ffc08500a14148930133ab1cf77
parente14047bc0cd2c969acca09efa532a1f5b92eae4f (diff)
downloadusermanagement-e746530bcf42b86fa501356074b14e4adf968b83.tar.gz
usermanagement-e746530bcf42b86fa501356074b14e4adf968b83.tar.bz2
usermanagement-e746530bcf42b86fa501356074b14e4adf968b83.zip
use fd3 for debugging not fd2
(because before, error messages by programs would get piped to /dev/null when debugging was off)
-rwxr-xr-xlduseradd66
1 files 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 "