.titleBar { margin-bottom: 5px!important; }

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

Dieses Thema im Forum "FRITZ!Box Fon: Modifikationen" wurde erstellt von Darkyputz, 26 Sep. 2008.

  1. Darkyputz

    Darkyputz Aktives Mitglied

    Registriert seit:
    27 Juli 2005
    Beiträge:
    2,318
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Newton, New Jersey
    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!!
     
  2. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    1
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Vielleicht hättest du dazu schreiben sollen um was es geht bzw. wo der Schnipsel drin steht. ;-)

    MfG Oliver
     
  3. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    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.
     
  4. Darkyputz

    Darkyputz Aktives Mitglied

    Registriert seit:
    27 Juli 2005
    Beiträge:
    2,318
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Newton, New Jersey
    #4 Darkyputz, 26 Sep. 2008
    Zuletzt bearbeitet: 26 Sep. 2008
    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??
     
  5. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,919
    Zustimmungen:
    0
    Punkte für Erfolge:
    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
     
  6. Darkyputz

    Darkyputz Aktives Mitglied

    Registriert seit:
    27 Juli 2005
    Beiträge:
    2,318
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Newton, New Jersey
    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?
     
  7. Darkyputz

    Darkyputz Aktives Mitglied

    Registriert seit:
    27 Juli 2005
    Beiträge:
    2,318
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Newton, New Jersey
    Soooooooooo...

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