#! /bin/bash # Name : newclient # Zweck: Eine FTP und möglich SAMBA client anlegen # Syntax: newclient homebase username # Variable: $0 $1 $2 # Author: elop klasse # History: Ver. 0.01.01 29.09.2003 Erzeugung von Script # Ergebnisse: exit code: 1 = Homebase nich korrekt # 2 = Benutzer schon angelegt # 3 = Heimatverzeichnis schon angelegt # 4 = Falsche anzahl vom Parameter # 5 = Samba is nicht installiert #------------------------------------------------------------ #--------- Variable definieren ---------- smbpasswd="/etc/samba/smbpasswd" # Gruppe für FTP cliente erzeugen groupadd ftp 2>/dev/null # -------------- Parameter Anzahl ist 2? if [ ! "$#" = 2 ] then echo "FEHLER: Falsche Parameter Anzahl" echo "Syntax: newclient homebase username" exit 4 fi #--------------- Homebase parameter ist Absolute Pfad? if ! (echo $1 | grep "^/" &>/dev/null) then echo "FEHLER: homebase Parameter ist nicht eine Absolute Pfad" exit 1 fi # --------- Ist die Benutzer schon angelgt? if (cut -d: -f1 /etc/passwd | grep "^$2$" &>/dev/null) then echo "FEHLER: Der Benutzer is schon angelgt." exit 2 fi # -------- Ist der Heimatverzeichnis schon angelegt? if test -d $1/$2 ; then echo "FEHLER: Heimatverzeichnis $1/$2\ schon angelegt" ; exit 3 ; fi #if test -d $1/$2 ; then # echo "FEHLER: Heimatverzeichnis $1/$2 schon angelegt" # exit 3 #fi #if [ -d $1/$2 ] ; then # echo "FEHLER: Heimatverzeichnis $1/$2 schon angelegt" # exit 3 #fi # --------- Benuzer anlegen----------------- mkdir -p $1/$2 useradd -s /bin/false -g ftp -d $1/$2 $2 chown $2. $1/$2 echo "Bitte Passwort zwei Mal für $2 eingeben:" ; passwd $2 #--------- Client soll fuer Samba angelegt werden? if [ -e $smbpasswd -a ! -x $smbpasswd ] ; then s1="" while [ "$s1" != "ok" ] ; do echo -n "Wollen Sie diesen Benutzer fuer Samba anlegen?(j/n) [n]:" ; read samba case ${samba:="n"} in #------- JA Ich will ---------- j|J) echo "Bitte Samba passwort fuer $2 2 Mal eintragen:" smbpasswd -a $2 if [ "$?" -eq 0 ] ; then s1="ok" echo "Benutzer $2 fuer Samba erfolgreich angelegt" else echo "FEHLER: Sie mussen 2 Mal das Passwort \ eingeben" fi ;; #--------- NEIN Ich will nicht --------- n|N) s1="ok" ;; #---------- Bloedsinn eingetragen------- *) echo "FEHLER: Bitter mit 'j' oder 'n' antworten." ;; esac done else echo "FEHLER: Samba ist nicht installiert" exit 5 fi #----------------- Bericht von script ausgeben -------- echo "Inhalt von /etc/passwd" list=$(egrep ":[5-9][0-9]{2}:" /etc/passwd|cut -d: -f1) #-------------- Schleife: schreibt eine Zeile von #-------------- Benutzer Info pro Gueltige Benutzer for user in $list ; do echo -n "INFO fuer $user: $(grep ^$user: /etc/passwd| cut -d: -f6) : " if grep "^$user:" $smbpasswd &>/dev/null then echo -n "(SAMBA):" fi id $user done echo ; echo "Client konto fuer $2 ervolgreich ausgefuehrt"