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

Darkyputz

Aktives Mitglied
Mitglied seit
27 Jul 2005
Beiträge
2,321
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!!
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Vielleicht hättest du dazu schreiben sollen um was es geht bzw. wo der Schnipsel drin steht. ;-)

MfG Oliver
 

RalfFriedl

IPPF-Urgestein
Mitglied seit
22 Apr 2007
Beiträge
12,343
Punkte für Reaktionen
0
Punkte
0
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.
 

Darkyputz

Aktives Mitglied
Mitglied seit
27 Jul 2005
Beiträge
2,321
Punkte für Reaktionen
0
Punkte
36
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:

MaxMuster

IPPF-Promi
Mitglied seit
1 Feb 2005
Beiträge
6,932
Punkte für Reaktionen
0
Punkte
36
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
 

Darkyputz

Aktives Mitglied
Mitglied seit
27 Jul 2005
Beiträge
2,321
Punkte für Reaktionen
0
Punkte
36
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?
 

Darkyputz

Aktives Mitglied
Mitglied seit
27 Jul 2005
Beiträge
2,321
Punkte für Reaktionen
0
Punkte
36
Soooooooooo...

Alles geht perfekt...
Das sollte jetzt am besten MIT Ticket 61 in den Trunk...
Danke für eure Vorschläge...
 

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
232,374
Beiträge
2,021,660
Mitglieder
349,958
Neuestes Mitglied
fs12