Brauche scripting hilfe...bitte mal gucken...

Darkyputz

Aktives Mitglied
Mitglied seit
27 Jul 2005
Beiträge
2,324
Punkte für Reaktionen
0
Punkte
36
Hallo...
ich habe ein Problem mit einem script das mir das Leben schwer macht...
Zur Zeit sieht das ganze so aus
Code:
HOMEBASEDIR=/mod/home

if [ ! -d "$user_homedir" ] && [ $HOMEBASEDIR == ${user_homedir%/*} ]; then
	mkdir -p "$user_homedir"
	chown $uid:$gid "$user_homedir"
fi
soll aber irgendwie so werden...
Code:
if [ ! -d "$user_homedir" ] && [ ${user_homedir%} != /var/media/* ]; then
	mkdir -p "$user_homedir"
	chown $uid:$gid "$user_homedir"
fi

wie müsste das aussehen? und macht das gedanklich Sinn oder wäre es anders sinniger?
Ziel ist es das Verzeichnisse nur angelegt werden sollen, wenn das user_homedir% NICHT im Bereich des USB Datenträgers liegt...

Danke für eure Mühen im voraus!!
 
Vielleicht hättest du dazu schreiben sollen um was es geht bzw. wo der Schnipsel drin steht. ;-)

MfG Oliver
 
Das scheint die Erstellung der Home-Directories beim Laden der Benutzer zu sein.

Zur Änderung selbst:
Code:
  HOMEBASEDIR=/mod/home
  [ $HOMEBASEDIR == ${user_homedir%/*} ]
entspricht
  [ /mod/home == ${user_homedir%/*} ]
Was Du willst, ist:
  [ /var/media != ${user_homedir%/*} ]
oder auch anders herum
  [ ${user_homedir%/*} != /var/media ]
Es ist also fast das gleiche, nur ein anderes Verzeichnis und ungleich statt gleich.

Wenn Du wissen willst, ob das sinnvoll ist, solltest Du auch schreiben, was Du damit erreichen willst, bzw. was die gründe für die Änderung sind.
 
ok...als kleiner Hintergrund...
Ich nutze den Ticket 61 Patch...
Dadurch gab es einen Nebeneffekt, das die User die in der Passwd drin stehen bleiben auch Pfade auf den Usb Datenträger haben als home...
z.b. User1 hat /var/media/ftp/NEW_LINK/ftp_Verzeichnisse/User1
diese wurden dann so früh angelegt, das der Mount des Usb danach den Pfad nicht mehr nehmen konnte (da schon vorhanden) und auf eine andere uStor Nummer umgestiegen ist, wodurch die Pfade dann natürlich falsch waren...
Oli war dann so nett und hat erstmal das erstellen aller Pfade ausserhalb der "/mod/home
" für mich gestoppt...über die oben erwähnte Änderung in der "modusers"
Dabei haben sich aber nun Nebeneffekte ergeben(z.b. geht kein Dropbear mehr), die nun noch ausgeglichen werden müssten...
Und diese Problematik wäre nicht mehr gegeben, wenn alle Verzeichnisse unabhängig ihrer Ziele erstellt würden, AUSSER derer die auf ein USB Laufwerk zeigen.
Daher mein versuch via
Code:
if [ ! -d "$user_homedir" ] && [ ${user_homedir%} != /var/media/* ]; then
	mkdir -p "$user_homedir"
	chown $uid:$gid "$user_homedir"
fi
dies zu erreichen...leider bin ich @work und kann es
A: nicht testen und
B: bin ich nicht so der scripting Guru, sodass es vieleicht noch cleverer ginge...

Hoffe das das nun etwas Licht ins Dunkel gebracht hat und mein Code so bleiben könnte für die Tests am WE...oder würdet Ihr das anders machen??
 
Zuletzt bearbeitet:
Ich schlage mal das vor (weil ja danach noch "mehr Pfad" kommen kann):

Code:
if [ ! -d "$user_homedir" ] && echo ${user_homedir} | grep -Eqv '^/var/media/' ; then
	mkdir -p "$user_homedir"
	chown $uid:$gid "$user_homedir"
fi
Das sieht dann im Kurztest so aus:
Code:
/var/mod/root # user_homedir="/home/myuser"
/var/mod/root # if [ ! -d "$user_homedir" ] && echo ${user_homedir} | grep -Eqv '^/var/media/' ; then
> echo "ich hätte es gemacht"
> else
> echo "mach ich nich"
> fi
ich hätte es gemacht
/var/mod/root # user_homedir="/var/media/ftp/home/myuser"
/var/mod/root # if [ ! -d "$user_homedir" ] && echo ${user_homedir} | grep -Eqv '^/var/media/' ; then
> echo "ich hätte es gemacht"
> else
> echo "mach ich nich"
> fi
mach ich nich
/var/mod/root #

Jörg
 
das sieht doch super aus...
Was sagt die Allgemeinheit dazu?
Finde diese Lösung echt nett...
Wäre es generell nicht gut diesen Teil der Modusers dann im Trunk zu ändern ?
Ist ja auch sowas wie eine Sicherung, das nicht ins "Nirvana" ge´mkdir´ed wird. Oder?
 
Soooooooooo...

Alles geht perfekt...
Das sollte jetzt am besten MIT Ticket 61 in den Trunk...
Danke für eure Vorschläge...
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.