Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

Linux Shell

Server-Plact - 34
Halbprofi (offline)

Dabei seit 04.2011
301 Beiträge
Geschrieben am: 17.02.2014 um 00:28 Uhr

Tag zusammen,

bin grade dabei mir ein wenig die Arbeit mit der Benutzerverwaltung zu erleichtern.

Und beim Testen diverser abschnitte stoße ich immer auf Probleme kann mir jemand Helfen ? Bekomme immer folgende ausgabe :

Zitat:


#######################
# ADMIN ANLEGE SCRIPT #
#######################

1 = Benutzer Suchen
2 = Benutzer Anlegen
3 = Benutzer Löschen
4 = Benutzer Password Reset

Wähle aus folgenden möglichkeiten: 1
./usr_mgr.sh: 63: ./usr_mgr.sh: Syntax error: ";;" unexpected (expecting "fi")



Hier das derzeit gesammte Script auch wenn vieles grade noch nicht stimmt aber ich bin ja noch etwas am Lernen.

Zitat:


#!/bin/sh

clear

echo "#######################"
echo "# ADMIN ANLEGE SCRIPT #"
echo "#######################"
echo
echo "1 = Benutzer Suchen"
echo "2 = Benutzer Anlegen"
echo "3 = Benutzer Löschen"
echo "4 = Benutzer Password Reset"
echo
read -p "Wähle aus folgenden möglichkeiten: " menu

case "$menu" in

1) read -p "Gebe den Benutzernamen des Admins ein: " usr_search;
echo "$usr_search";
;;
2) read -p "Gebe den Benutzernamen des Admins ein: " user

if [ -d /home/Admins/$user == -d /home/Admins/$user ] ; then
echo "Benutzer bereits vorhanden !"
else
chown -R %user%:%user% /home/Admins/%user%
chmod -R u+rwX /home/%user%
chmod 600 /home/%user%/.dmrc
chmod 755 /home/%user%

echo "Setzte nun das Password des Benutzers z.B. "
echo "'Hallo123'"
echo "============================="
echo "WICHTIG PASSWORD MUSS GEÄNDERT WERDEN !"

passwd $user

mkdir ./home/Admins/%user%/Persoenlich
chmod 766 ./home/Admins/%user%/Persoenlich
mkdir ./home/Admins/%user%/Server
chmod 766 ./home/Admins/%user%/Server
mkdir ./home/Admins/%user%/Verwaltung
chmod 766 ./home/Admins/%user%/Verwaltung

ln /home/Zentral/start-mc.sh /home/Admins/%user%/Server
ln /home/Zentral/stop-mc.sh /home/Admins/%user%/Server
ln /home/Zentral/start-ts.sh /home/Admins/%user%/Server
ln /home/Zentral/stop-ts.sh /home/Admins/%user%/Server


echo " /**************************\"
echo " | Benutzer "$user
echo " | ANGELEGT "
echo " \**************************/"

fi
;;
3 ) read -p "Gebe den Benutzernamen des Admins ein: " delusr
deluser --remove-home $delusr
echo " /**************************\"
echo " | Benutzer " $delusr
echo " | GELÖSCHT "
echo " \**************************/" ;;


4 ) read -p "Gebe den Benutzernamen des Admins ein: " pasres_usr
passwd $pasres_usr
echo " /**************************\"
echo " | Password von " $user
echo " | zurückgesetzt "
echo " \**************************/"
;;
* )
echo "Ungültige Eingabe"
;;
esac
exit


Danke schon einmal an alle.

Gruß Michi
scw - 42
Experte (offline)

Dabei seit 09.2002
1836 Beiträge
Geschrieben am: 17.02.2014 um 07:10 Uhr

Zitat:


echo " /**************************\"
echo " | Benutzer "$user
echo " | ANGELEGT "
echo " \**************************/"


Das erste "echo" macht vermutlich Probleme. ein \ escaped das nachfolgende Zeichen. D.h. das " hat nicht mehr die Bedeutung, das vorherige zu schließen, sondern es wird als " ausgegeben. Versuch es doch mal mit \\".
Server-Plact - 34
Halbprofi (offline)

Dabei seit 04.2011
301 Beiträge
Geschrieben am: 17.02.2014 um 09:31 Uhr
Zuletzt editiert am: 17.02.2014 um 09:49 Uhr

Also habe mitlerweile ein paar sachen ausgebessert bei dem auch das Script so lange funktioniert.

Zitat:


#!/bin/sh

clear

echo "#######################"
echo "# ADMIN ANLEGE SCRIPT #"
echo "#######################"
echo ""
echo "1 = Benutzer Suchen"
echo "2 = Benutzer Anlegen"
echo "3 = Benutzer Löschen"
echo "4 = Benutzer Password Reset"
echo ""
read -p "Wähle aus folgenden möglichkeiten: " menu

case $menu in

1|eins|suchen) read -p "Gebe den Benutzernamen des Admins ein: " usr_search;
echo "Der Benutzername leutet : $usr_search";
if [ -d /home/Admins/$usr_search/ ]
then
echo "Benutzer $usr_search schon vorhanden!"

else
echo "Benutzer $usr_search noch nicht vorhanden !"
fi

echo "Liste der Bestehenden Benutzer: "
cd /home/Admins
ls -A
cd ~
mkdir /home/Admins/$usr_search
useradd -g users $usr_search -d /home/Admins/$user/ -s /bin/sh
passwd $usr_search
echo "eins noch"
chown $usr_search /home/Admins/$usr_search/
echo "FERTIG";
break ;;

# 2|zwei|add) echo "HI"
# 2|zwei|add) read -p "Gebe den Benutzernamen des Admins ein: " user ;
#
# if [ -d /home/Admins/$user/ ]
# then
# echo "Benutzer bereits vorhanden !"
# else
# mkdir /home/Admins/$user
# useradd -g users $user -d /home/Admins/$user/ -s /bin/sh
# echo "Setzte nun das Password des Benutzers z.B. "
# echo "'Hallo123'"
# echo "============================="
# echo "WICHTIG PASSWORD MUSS GEÄNDERT WERDEN !"
# echo ""
# echo ""
# passwd $user
# chown $user /home/Admins/$user/
# echo ""
# echo ""
# echo " /**************************\"
# echo " | Benutzer "
# echo " | ANGELEGT "
# echo " \**************************/"
# fi;
# break ;;
#
# 3) read -p "Gebe den Benutzernamen des Admins ein: " deusr01;
# deluser --remove-home $deusr01;
# echo " /**************************\"
# echo " | Benutzer $deusr01 "
# echo " | GELÖSCHT "
# echo " \**************************/"
# ;;
#
#
# 4) read -p "Gebe den Benutzernamen des Admins ein: " pasres_usr
# passwd $pasres_usr
# echo " /**************************\"
# echo " | Password von " $pasres_usr
# echo " | zurückgesetzt "
# echo " \**************************/"
# ;;

*) echo "Ungueltige Eingabe"
break ;;
esac

exit




Jetzt geht Punkt 1 und *)

Aber sobald ich Punkt 2 mit einbinde bekomme ich die Fehlermeldung für die :

Zitat:


*) echo "Ungueltige Eingabe"
break ;; <----


ich werde gerade nicht wirklich schau daraus weil Punkt 2 alleine auch halbwechs funktioniert zuminist bricht er nicht gleich ab.

Das gleiche Problem auch wenn ich das:

Zitat:


# echo " /**************************\"
# echo " | Password von " $pasres_usr
# echo " | zurückgesetzt "
# echo " \**************************/"


Kommentiert lasse.
scw - 42
Experte (offline)

Dabei seit 09.2002
1836 Beiträge
Geschrieben am: 17.02.2014 um 12:08 Uhr

Versuch es mal mit einem ; hinter der ] des if.
  [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -