ForumSAMBA: In ein Verzeichnis Dateien schreiben aber nicht lesen
Lavrentios Servissoglou – Mittwoch, 11. Januar 2006 16:59 Uhr

Hallo,

wie kann ich mit SAMBA ein Verzeichnis/Share einrichten, in dem unterschiedliche User Dateien reinschreiben können, diese aber nicht lesen dürfen? So ähnlich wie: “WRITEABLE=yes, READABLE=NO”.

Ist so etwas möglich?

Vielen Dank im voraus für jeden Tipp und jede Antwort.

Tschüss,
lauviss

3 Antworten
Dieter Drewanz – Donnerstag, 12. Januar 2006 05:19 Uhr

Hallo Lauviss,

das ist eine gute Frage. Wenn man ein Verzeichnis die Rechte auf .w..w..w. setzt, dann geht kein Schreiben, da hierzu das Lesen des Verzeichnisses erforderlich ist.
Die einzige Moeglichkeit sehe ich nur darin einen Job (cron, oder batch im Hintergrund) einzurichten, der ab und zu ein chmod durchfuehrt und alle Dateien auf die Berechtigung .w..w..w. setzt. Üeberschreiben ist damit moeglich, Es gibt aber eine Zeitluecke, in der andere zum Lesen ran koennten. Das koennte man noch mit rwx……. -> .w……. abblocken. Dann kann nur der owner noch kurze Zeit die Datei lesen. Das geht nur wenn die Dateien auf einem Linux Server liegen. Bei einem Windows Rechner ginge nur ein Job, der jeweils die Dateien in ein anderes verschlossenen Verzeichnis kopiert, und zurueck als Datei ein Inhaltsverzeichnis inhalt.txt in das Verzeichnis schiebt. Dann ist aber wieder eine Zeitluecke, bei der andere zuschlagen koennten.
So wuerde ich es low cost low effort loesen. Es gibt Serverprogramme die koennen sowas, kosten aber. Bei denen lassen sich die Rechte explizit je Datei angeben und auch automatisch beim Schreiben aendern. Bei Feodora gibt es die Moeglichkeit erweiterte Dateioptionen. Vieleicht geht es damit?

Gruß
Dieter

man-draker – Donnerstag, 12. Januar 2006 09:29 Uhr

Wenn du

sicher stellst, dass die Benutzerkennungen auch unter SAMBA erhalten bleiben (und nicht auf einen Einheits-Benutzer gemappt werden), das “öffentliche Verzeichnis” mit dem Sticky-Bit versiehst, so dass alle Dateien unter der Kennung des aktiven Benutzers anglegt werden, du den geeigneten Wert bei dem Parameter “create mask” in der smb.conf (vgl. man smb.conf) angibst, dann sollte es gehen.

Ansonsten ist [1], z.B. Chapter 15., dein Freund.

[1] http://us5.samba.org/samba/docs/man/Samba3-HOWTO/

Ansgar Stalbold – Donnerstag, 12. Januar 2006 17:10 Uhr

Hallo,

ist eigentlich ganz einfach:

ich würde die Freigabe so bauen:

[test]
path=/test
writeable = yes
valid users = @nurschreiben @root
force user = root
force group = root
create mask = 0660
force create mode = 0660
security mask = 0770
force security mode = 0770
directory mask = 0770
force directory mode = 0770
directory security mask = 0770
force directory security mode = 0770

Force user und force group setzten bei alle neu erstellten Datei den Besitzer und die Gruppe auf die hier eingetragenen User und Gruppen. Egal in welcher Gruppe der schreibende User ist.
Und mit create mask usw. setzte ich die Berechtigungen die die neue Datei bekommen soll.
Einfach auf eine Gruppe abändern in der die schreibenden User nicht sind!

0660 = rw_rw____

ss – Freitag, 13. Januar 2006 11:31 Uhr

@Ansgar Stalbold:

ich glaube du solltest die nochmal die rechte unter linux genauer anschauen :)

denn 0770 ist nicht r_xr_x___
sondern rwxrwx___

um dein r_xr_x___ zu erhalten muss das so aussehen 0550

da die wertigkeiten so lauten: r = 4, w = 2 und x = 1

Lavrentios Servissoglou – Freitag, 13. Januar 2006 12:13 Uhr

Erst einmal vielen Dank für die ganzen Antworten. Ich werde versuchen die eine oder andere Antwort zu implementieren und dann darüber berichten. Das wird ein paar Tage dauern (um den laufenden Prozess nicht zu stören).

Tschüss,
lauviss

Ansgar Stalbold – Freitag, 13. Januar 2006 13:45 Uhr

@ss
Ahhh wie Peinlich…

Danke, hatte wohl ‘n Brett vor Kopf…