/Hallo Leute, ich finde den Fehler nicht. Es wird immer neu ausgeführt. Kann einer der Scripter mal einen Blick riskieren? Danke schon im voraus. Gruß Olli #!/bin/sh TMP="/tmp/smb.tmp" dialog --backtitle Benutzer --title Details \ --radiolist "Bitte wählen Sie \ Hier können Sie Benutzer anlegen und ändern" 16 60 5 \ "neu" "User anlegen" off \ "ändern" "User ändern" off \ "löschen" "User löschen" off 2> TMP ACT=$(cat TMP) rm TMP if [ -z $ACT ] ; then echo Abgebrochen exit fi if [ $ACT=neu ] ; then dialog --inputbox "Bitte Benutzernamen eingeben" 30 50 2> TMP USER=$(cat TMP) rm TMP if [ -z $USER ] ; then echo Abgebrochen exit fi dialog --inputbox "Bitte Passwort eingeben" 30 50 2> TMP PASSWD=$(cat TMP) rm TMP if [ -z $PASSWD ] ; then echo Abgebrochen exit fi useradd $USER -p $PASSWD -s /bin/false -d /home/$USER mkdir /home/$USER chown $USER.users /home/$USER printf "$PASSWD\n$PASSWD\n" | smbpasswd -a -s $PASSWD fi if [ $ACT=ändern ] ; then dialog --inputbox "Bitte Passwort eingeben" 30 50 2> TMP PASSWD=$(cat TMP) rm TMP if [ -z $PASSWD ] ; then echo Abgebrochen exit fi printf "$PASSWD\n$PASSWD\n" | smbpasswd -a -s $PASSWD fi if [ $ACT=löschen ] ; then dialog --inputbox "Bitte Username zum löschen eingeben" 30 50 2> TMP USER=$(cat TMP) if [ -z $USER ] ; then echo Abgebrochen exit fi smbpasswd -x $USER userdel $USER echo "loesche User" $USER fi / -- Oliver Wiemer audiovisuelle medien
Am Montag, 5. Dezember 2005 09:33 schrieb Oliver Wiemer:
es fehlen die Blanks um das = Richtig wäre also if [ $ACT = neu ] .... Anbei einige Bemerkungen zu Script, bzw. wie ich es schreiben würde. ------------- #!/bin/sh TMP=/tmp/smb.tmp.$$ # man sollte schon eine PID anhängen. # sonst hat man Probleme wenn das Proggi # gleichzeitig mehrfach aufgerufen wird # die " sind hier nicht nötig TRAP "rm -f $TMP" EXIT # lösche diese Datei, wenn fertig/abgebrochen dialog --backtitle Benutzer --title Details \ --radiolist "Bitte wählen Sie \ Hier können Sie Benutzer anlegen und ändern" 16 60 5 \ "neu" "User anlegen" off \ "ändern" "User ändern" off \ "löschen" "User löschen" off 2> $TMP # $TMP, sonst wird die Datei "TMP" im aktuellen # Verzeichnis geschrieben, und nicht: /tmp/smb.tmp.$$ # Generell: überall im Script muß $TMP stehen ACT=`cat $TMP` # wenn /bin/sh, da $(cat $TMP) BASH spezifisch ist, und damit # nicht portabel case $ACT of "neu" ) .... der Code ... ;; "ändern" ) .... der Code ... ;; "löschen" ) .... der Code ... ;; * ) # der Default ;; esac ------------- Bye Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer
Hallo Jürgen, hallo Oliver, hallo Leute, Am Montag, 5. Dezember 2005 09:08 schrieb Dr. Jürgen Vollmer:
Gleich noch eine Bemerkung von mir: TMP="`mktemp /tmp/smb.tmp.XXXXXX`" || exit 1 # man sollte schon mktemp # verwenden, da man sonst gegen Symlink-Attacken anfällig ist. ;-) Ach ja: Falls mktemp kein Tempfile anlegen kann, wird das Script abgebrochen ("|| exit 1").
# die " sind hier nicht nötig
Stimmt, sie schaden aber auch nicht. Und bevor ich lang überlege, ob ich sie jetzt brauche oder nicht, bau ich sie lieber grundsätzlich ein ;-) Gruß Christian Boltz -- Eigentlich bin ich stolz darauf, dass mein PC sich weigert, Windows verpasst zu bekommen. [Paolo Herms in suse-linux]
Am Montag, 5. Dezember 2005 11:53 schrieb Oliver Wiemer:
Danke, jetzt geht es. Kannst Du ein Buch zum bash/shell scripten empfehlen?
das Original, des Entwicklers der Shell "Steve Bourne" http://steve-parker.org/sh/bourne.shtml find ich immer noch gut. Ansonsten: @BOOK{herold.1996a, AUTHOR = "Herold, Helmut", SERIES = "UNIX und seine Werkzeuge", TITLE = "Unix-Shells", PUBLISHER = addison, YEAR = 1996, EDITION = 2, KEYWORD = "Programmiersprachen, Bourne Shell, Korn-Shell, C-Shell, bash, tcsh", } inzwischen in einer Neuauflage mit dem Zusatz "Linux" erhältlich Bye Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer ------------------------------------------------------------------------------- Diese EMail ist elektronisch mittels GPG / PGP signiert. Diese elektronische Unterschrift ist in einem EMail-Anhang enthalten. Leider kann die Signatur ohne die Installation entsprechender Programme weder geprüft noch angezeigt werden. Mehr dazu unter: http://www.gnupg.org oder auch http://www.pgpi.org -------------------------------------------------------------------------------
Am Montag, 5. Dezember 2005 09:33 schrieb Oliver Wiemer:
es fehlen die Blanks um das = Richtig wäre also if [ $ACT = neu ] .... Anbei einige Bemerkungen zu Script, bzw. wie ich es schreiben würde. ------------- #!/bin/sh TMP=/tmp/smb.tmp.$$ # man sollte schon eine PID anhängen. # sonst hat man Probleme wenn das Proggi # gleichzeitig mehrfach aufgerufen wird # die " sind hier nicht nötig TRAP "rm -f $TMP" EXIT # lösche diese Datei, wenn fertig/abgebrochen dialog --backtitle Benutzer --title Details \ --radiolist "Bitte wählen Sie \ Hier können Sie Benutzer anlegen und ändern" 16 60 5 \ "neu" "User anlegen" off \ "ändern" "User ändern" off \ "löschen" "User löschen" off 2> $TMP # $TMP, sonst wird die Datei "TMP" im aktuellen # Verzeichnis geschrieben, und nicht: /tmp/smb.tmp.$$ # Generell: überall im Script muß $TMP stehen ACT=`cat $TMP` # wenn /bin/sh, da $(cat $TMP) BASH spezifisch ist, und damit # nicht portabel case $ACT of "neu" ) .... der Code ... ;; "ändern" ) .... der Code ... ;; "löschen" ) .... der Code ... ;; * ) # der Default ;; esac ------------- Bye Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer
Hallo Jürgen, hallo Oliver, hallo Leute, Am Montag, 5. Dezember 2005 09:08 schrieb Dr. Jürgen Vollmer:
Gleich noch eine Bemerkung von mir: TMP="`mktemp /tmp/smb.tmp.XXXXXX`" || exit 1 # man sollte schon mktemp # verwenden, da man sonst gegen Symlink-Attacken anfällig ist. ;-) Ach ja: Falls mktemp kein Tempfile anlegen kann, wird das Script abgebrochen ("|| exit 1").
# die " sind hier nicht nötig
Stimmt, sie schaden aber auch nicht. Und bevor ich lang überlege, ob ich sie jetzt brauche oder nicht, bau ich sie lieber grundsätzlich ein ;-) Gruß Christian Boltz -- Eigentlich bin ich stolz darauf, dass mein PC sich weigert, Windows verpasst zu bekommen. [Paolo Herms in suse-linux]
Am Montag, 5. Dezember 2005 11:53 schrieb Oliver Wiemer:
Danke, jetzt geht es. Kannst Du ein Buch zum bash/shell scripten empfehlen?
das Original, des Entwicklers der Shell "Steve Bourne" http://steve-parker.org/sh/bourne.shtml find ich immer noch gut. Ansonsten: @BOOK{herold.1996a, AUTHOR = "Herold, Helmut", SERIES = "UNIX und seine Werkzeuge", TITLE = "Unix-Shells", PUBLISHER = addison, YEAR = 1996, EDITION = 2, KEYWORD = "Programmiersprachen, Bourne Shell, Korn-Shell, C-Shell, bash, tcsh", } inzwischen in einer Neuauflage mit dem Zusatz "Linux" erhältlich Bye Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer ------------------------------------------------------------------------------- Diese EMail ist elektronisch mittels GPG / PGP signiert. Diese elektronische Unterschrift ist in einem EMail-Anhang enthalten. Leider kann die Signatur ohne die Installation entsprechender Programme weder geprüft noch angezeigt werden. Mehr dazu unter: http://www.gnupg.org oder auch http://www.pgpi.org -------------------------------------------------------------------------------
participants (4)
-
Albert-Eugen Vetter
-
Christian Boltz
-
Dr. Jürgen Vollmer
-
Oliver Wiemer