chmod, umask und Co.

Dieses Thema im Forum "Hardware" wurde erstellt von franzmane, 16. November 2001.

  1. franzmane

    franzmane New Member

    Mit einer Frage an die UNIX-Experten, speziell zu FreeBSD bin ich in diesem Forum doch richtig, oder ? Is ja quasi eine MacOS X-Shell-Angelegenheit.
    *ggg*

    Also hier mein Problem:

    ich habe einen FreeBSD Server eingerichtet. Mit Samba habe ich nun für jeden Benutzer jeweils zwei Verzeichnisse freigegeben: einmal über String-Variabeln das jeweilige Home-Verzeichnis des Benutzers, und dann noch ein allgemeines Verzeichnis (public).

    security = user
    encrypt passwords = no

    FreeBSD greift also auf die Unix-konten zu, es gibt keine smbpasswd-Datei.

    Mit chmod habe ich die Rechte für public wie folgt vergeben:

    drwxrwx---

    Es sollen also der Besitzer des public-Verzeichnisses (root) und die übrigen Benutzer in der Gruppe wheel Lese-, Schreib- und Ausführungsberechtigung haben.

    Wenn sich die jeweiligen Benutzer jetzt über Samba einloggen, dann werden die entstehenden Dateien und Verzeichnisse mit folgender Berechtigung ausgestattet:

    -rwxr-xr--

    Ich möchte aber, daß standardmäßig root der Besitzer der Dateien ist, und die Gruppe wheel die entsprechende Gruppe für alle Verzeichnisse und Dateien, die egal von welchem Benutzer auch immer im public-Verzeichnis angelegt werden.

    Zu diesem Zwecke habe ich die SGID und die SUID von /public bereits gesetzt, die Berechtigung von public sieht also jetzt folgendermaßen aus:

    drwsrws---

    Sollte jetzt nicht jeder Datei die in public von wem auch immer erstellt wird der User root und die Gruppe wheel zugeordnet werden ? Das ist nämlich nicht der Fall.

    Wie mache ich das, und wie vererbe ich zusätzlich die Rechte rwxrwx--- auf alle Dateien und dirs, die in public erstellt werden ? umask habe ich auch schon auf 007 getzt, aber das gilt ja immer nur für den entsprechenden Benutzer und die laufende Sitzung, und dann auch gleich für alle Verzeichnisse, oder ?

    Wer hat einen Rat für einen Unix-Idioten ?
     
  2. MacELCH

    MacELCH New Member

    Sorry, muß ich passen, aber Dein Thread bleibt oben.

    Gruß

    MacELCH
     
  3. franzmane

    franzmane New Member

    *ggg*

    Ja danke :)
     
  4. quick

    quick New Member

    kannst du unix gedanken lesen ;-) aber das selbe dachte ich auch !
     
  5. macmiguel

    macmiguel New Member

    Ach son biss in unix kriegen is kein gefährliches rauschmittel!
    lassen wir Ihn oben noch ne Weile!
    Gruss
    miguel
     
  6. sternenacht

    sternenacht New Member

    hi,
    was du da gemacht hat gilt in der unix-welt als sehr, sehr gefaehrlich:
    du hast das sog. sticky-bit gesetzt. d.h. wenn die datei ausgefuehrt wird, hat sie automatisch die rechte der eigentuemers und der gruppe. sollte die datei root gehoeren, dann viel spass, wenn da eine shell aufgemacht werden kann, denn dann hat irgendjemand, der so ein programm aufruft automatisch root rechte. und dann gilt der schoene unix-spruch: einmal root immer root.
    wenn ich dich richtig verstanden habe, moechtest du, dass alle deine dateien in diesen verzeichnissen einem bestimmten user gehoeren sollen. das laesst sich unter unix nicht so ganz einfach machen, dafuer benoetigst du ein script. denn wenn ein eigentuemer eine datei anlegt gehoert sie ihm, die rechte werden nach der umask-variable gesetzt. wenn du das nicht willst, musst du am besten einen daemon schreiben, der einen chmod , chown und chgrp auf die dateien in den verzeichnissen ausfuehrt. dieser daemon muss dann zwingend unter root laufen.
    so das war es in kuerze.
    ich hoffe, ich habe dein anliegen richtig verstanden und dir ein wenig helfen koennen.
    noch fragen? schreib mir ne mail oder ruf mich an (nummer gibts ueber icq)

    greetings

    holger
     
  7. gratefulmac

    gratefulmac New Member

    Klasse !!

    Selbst wenn ich nicht im Terminal arbeiten will,verstehen will ich schon was da läuft.
    Unix und Macos wachsen zusammen.
     
  8. franzmane

    franzmane New Member

    Mittlerweile habe ich das Problem gelöst. Hier nochmal das Problem, welches ich hatte:

    Greift ein Mac nämlich auf die Freigabe des Samba-Servers zu, so erstellt er dort die DesktopDB-Datei und den Recource-Fork. Beide Dateien bekommen die Berechtigung des gerade angemeldeten Benutzers. Meldet sich jetzt ein anderer Benutzer an, so kann ein Win-PC jetzt noch Dateien in dieses Verzeichnis kopieren, ein Mac nicht, denn der greift dabei auf den Resource-Fork zu. Die Lösung ist, den Dateien und Ordnern, die erstellt werden standardmäßig die Rechte rwxrwx--- zuzuordnen (rwxrwxrwx falls die Benutzer nicht zu derselben Gruppe gehören). Das muß nicht über umask geschehen, wie ich zuerst vermutete, das kann direkt über die smb.conf erledigt werden.

    Hier die Lösung

    In der smb.conf kann nun jeweils unter der speziellen Freigabe oder auch unter global für eine standardmäßige Rechtevergabe ein Parameter gesetzt werden.

    Für Dateien ist dies

    create mask =

    für Ordner

    create directory =

    Bei mir geschieht das über oktale Werte und sieht folgendermaßen aus:

    create mask = 770 (rwxrwx---)
    create directory = 770 (rwxrwx---)

    Da die erstellten Dateien aber nur die Rechte rwxrw---- erhielten, mußte ich zusätzlich noch den Parameter

    force create mode =

    setzen, der denselben Wert bekommt, wie create mask. Bei mir sieht das so aus:

    force create mode = 770

    Warum das so ist, und wie create mask und force create mode in Zusammenhang stehen habe ich noch nicht verstanden, aber es funktioniert.
     
  9. goldfinger

    goldfinger New Member

    hallo franzmane,

    du sach mal,
    den darwin gibts doch auch für intel.
    Hast du denn schon mal installiert.
    Ich hab das .iso file heruntergeladen und konnte es dann nicht brennen.
     
  10. franzmane

    franzmane New Member

    Nö, hab ich noch nicht gemacht. Hab Darwin noch nicht einmal runtergeladen. Aber das muß ich unbedingt mal ausprobieren.
     

Diese Seite empfehlen