[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: richtige Sambashareeinstellung



Maximilian Wilhelm schrieb:
Am Mittwoch, den 24 August hub Daniel Taschik folgendes in die Tasten:
[.....]
Als drittes
Laufwerk möchte ich Ablage (x:) haben. Dort soll jeder Schueler
lesen/schreiben/löschen dürfen, aber nur seine Eigenen Dateien. Das
Laufwerk soll dazudienen, dass bei LKs die Schueler ihre Arbeiten dort
ablegen. Ich habe es bis jetzt schon hinbekommen das jeder Schueler
schreiben darf  und nur seine selbst erstellten Dateien öffnen darf,
aber er kann noch die Dateien anderer löschen.

Interessante Kombination: nur selber oeffnen, aber alle loeschen.
Hmmm; wie haste denn das zurechtgebastelt?
(Ist nicht weiter wichtig, nur reine Neugierde; gerne auch PM.)

Der Ordner Ablage ist 777, [.....]

Uebernimm doch einfach die Rechte von /tmp
 [.....]
chmod o+t $DeinDir

Das macht zwar die Dateien/Verz. _direkt_ in $DeinDir nur durch den
Eigentuemer loeschbar, aber im Standardfall kann man diese als Fremder
trotzdem lesen.

Wenn die Junx und Maeldez dann Unterverzeichnisse anlegen ists damit
allerdings vorbei.
Daher koenntest Du in der share definition noch ein | directory mask = 1777 versenken.

Ich glaube "directory mask = 1777" ist hier nicht ganz zielfuehrend.

Wenn ein SMB-Client (WinBuechse oder WasAuchImmer) ankommt und eine
Datei respektive Verzeichnis anlegen moechte, dann werden die angeforderten
Rechte [die der Client fuer diese Datei wuenscht]
 1. im Falle von DOS/NTFS-Rechten auf eine Darstellung durch Unix-Rechte
    angepasst,
 2. diese Unix-Rechte bitweise mit
    "create mask" respektive "directory mask"
    logisch ver-UND-et
    (d.h. Null-Bits filtern Rechte [heraus]), und
 3. diese gefilterten Unix-Rechte bitweise mit
    "force create mode" respektive "force directory mode"
    logisch ver-ODER-t
    (d.h. Eins-Bits setzen Rechte [zusaetzlich]).

Es ist also wohl eher "create mask = 700" und "directory create mask = 700"
angebracht. Dann brauchts auch kein Sticky-Bit, welches man mit "force ..."
erzwingen koennte.

<anmerkungen typ="nur der Vollstaendigkeit halber">
ad 1)
Das Mapping der DOS/NTFS-Rechte zu Unix und zurueck ist eine Sache,
die ich hier nicht weiter ausfuehren will. Nur soviel:
 o  Samba-Server und -Client koennen sich direkt rwx-Rechte 'zuwerfen'.
 o  Um NTFS-ACLs abbilden zu koennen brauchts samba-seitig Unix-ACLs.

ad 2,3)
Diese Rechteanpassung findet nur per Samba statt, d.h. wenn $user an
entsprechende Dateien/Verz. per Unix/Linux oder NFS (oder ...?) rankommt,
dann kann $user da natuerlich auch andere Sachen machen.

ad 1,2,3)
Was NTFS-Rechte angeht sind diesbzgl. ggf. noch folgende Parameter relevant:
"security mask", "directory security mask",
"force security mode", "force directory security mode"
</anmerkungen>


Anderer Vorschlag zur Loesung: Gib jedem sein eigenes Ablage-Verzeichnis.
Unter /pfad/zur/ablage bekommt jeder ein Verzeichnis mit seinem Loginnamen,
in das nur er/sie lesen, schreiben und gucken darf...
  1. die noetigen Verzeichnisse erstellen; s.u.
  2. # cd /pfad/zur/ablage
  3. # for d in `ls`; do chown $d:$d $d; chmod 700 $d; done
  4. in der smb.conf dein Ablage-Share mit diesem Pfad einrichten:
        path = /pfad/zur/ablage/%u
     (hier wird der Loginname --^^ durch Samba automatisch ersetzt)
  5. fertig; kein mask/mode-Gehexe per Samba noetig und auch ohne Samba
     kann keiner was machen, auszer jeder selbst. :-)

ad 3) wenn man da noch anderes in /pfad/zur/ablage hat, dann kann man statt
"ls" besser ein passendes "find ..." nehmen.

ad 1) z.Bsp. sowas in der Art...
# cd /pfad/zur/ablage
# gruppe=students   # nimm die Gruppe die du brauchst
# getent group | grep $gruppe | cut -d: -f4 | tr "," " " | xargs echo mkdir
...zeigt, was getan wuerde ...fuer 'richtig' dann das "echo" rausnehmen ;-)


HTH und beste Gruesze,
  Patrick

--
Je groeszer der Dachschaden, desto freier der Blick in den Himmel.
    -- (Heise-Forum)



Reply to: