PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Windows Schreibschutz unter Samba!



morpheus2001
16.12.05, 16:16
Hi,

ich habe Samba 3.0.14a mit einem Debian System & LDap aufgesetzt. Soweit funktioniert alles, es geht jetzt an die Feinarbeit!

Das Problem liegt beim Windows Schreibschutz. Wenn unter einem Windows Dateisystem BenutzerA einen Schreibschutz setzt, dann kann ich auch ein anderen Benutzer (BenutzerB) wieder freigeben.

Auf einem Samba share von mir geht dies leider nicht! BenutzerA erstellt Datei, diese wird mit "force create mode = 0755" auf 0755 gesetzt! Danach setzt BenutzerA auf Windows den Schreibschutz für diese Datei! Auf dem UNIX Dateisystem hat die Datei nun: -r-xr--r--, also 0544. Will BenutzerB den Schreibschutz jetzt entfernen, kommt unter Windows "Zugriff verweigert".

Zur Gruppenverwaltung: Gruppe "Domain Users" beinhaltet BenutzerA, BenutzerB. Die relevante Datei gehört der Gruppe "Domain Users" und dem BenutzerA.

Ich wollte danach versuchen, welche Rechte denn die Datei besitzen muss, um den Schreibschutz von BenutzerB entfernen zu können. Leider funktionierte auch kein 554 oder 555. Wenn ich den CHMOD noch weiter "erhöhe", dann fällt der Schreibschutz unter Windows automatisch weg.

Hoffe ich hab das Problem verständlich geschildert. Und hoffe, dass es hierfür eine geschickte Lösung gibt!

thanks in advice,
D.Morlock

Myst
16.12.05, 16:23
Hallo,

1. Der create mode sagt rein gar nichts über den Schreibschutz einer Freigabe aus.

2. Wenn du dich etwas bemüht hättest zu suchen, in dem darauf folgenden Thread http://www.linuxforen.de/forums/showthread.php?t=202361 wurde das Thema bereits behandelt und löst genau dein Problem.

morpheus2001
16.12.05, 16:51
sorry, wenn ich auf dem Schlauch stehe, aber das Kapitel hat rein gar nichts mit meinem Problem zu tun? Eine Möglichkeit wäre der "write list" Parameter gewesen, aber ein setzen von "write list = BenutzerA, BenutzerB" ändert nichts an meinem Problem.

Ein Zitat aus "http://www.dpunkt.de/leseproben/3-89864-193-7/Kapitel_14.pdf" was ich beim Googeln entdeckt habe:



Read-Only Der Inhalt dieser Datei kann nur gelesen, aber nicht geschrieben werden. Die Datei kann nicht gelöscht werden.
System Diese Datei ist für spezielle Betriebssystemzwecke vorgesehen.
Hidden Diese Datei wird mit dem Kommando DIR nicht angezeigt.
Archiv Das Archivbit wird bei jedem Schreibzugriff gesetzt.

(...)
Diese Bits können unter DOS von jedem Benutzer frei gesetzt und kein echter Schutz wieder zurückgesetzt werden. Das Schreibschutzbit ist also nicht
als echter Zugriffsschutz zu verstehen, sondern nur als kleine Hilfestellung
gegen Fehlbedienungen.

Diesen Schreibschutz möchte ich ermöglichen. Hier kommt mir mittlerweile die Frage: Ist das mit Samba 3.0 überhaupt möglich?

Gruß
D.Morlock

emba
19.12.05, 11:47
jep ist möglich - zuletzt erfolgreich unter 3.0.20b getestet
siehe dazu auch "map read only =" in der smb.conf

desweiteren kann es noch notwendig sein, mit den parametern "ea support" und "store dos attributes" zu experimentieren

greez

morpheus2001
19.12.05, 12:46
Hi,

danke Mal wieder für die Hilfe! ;)

Ich habe jetzt meinen Samba erfolgreich auf den aktuellen Samba 3.0.20b aktualisiert. Dennoch kann der den "map read only" Parameter nicht finden!

In man smb.conf finde ich auch kein "map read only". Weiterhin zeigt testparm -v diesen Parameter auch nicht an. In der Manual von samba.org kann ich entnehmen, dass dieser Parameter erst in Version 3.0.21 eingeführt wird.

Wie hast du diesen Parameter unter 3.0.20b gestestet? Muss ich auf die Release von 3.0.21 warten?

Gruß
Daniel

emba
19.12.05, 13:00
ok, sorry, dann hab ich mich mal in der version geirrt :)
probier bitte mal die 3.0.21pre, ob dort das gewünschte eintritt

wenn du aber wirklich "nur" das readonly bit setzen möchtest, damit die warnung kommt "file ist schreibgeschützt, wollen sie wirklich löschen?", so geht dies auch mit früheren versionen von samba. dazu solltest du aber ea support aktivieren in der smb.conf und das filesystem, falls notwendig, mit xattr mounten

greez

morpheus2001
19.12.05, 18:00
Hi,

Ist 3.0.21pre stable und gibt es dafür Debian Binaries?

Gruß

suck
19.12.05, 18:22
Dein Share ist nicht in der Lage die Infos ueber Benutzer zu verarbeiten/speichern, da Linux ein ganz anderes System verwendet, welches sich natuerlich von dem unter Windows unterscheidet. Alternativ zur angegeben Loesung kannst du es auch mit ACLs versuchen. ACLs koennen dir helfen das unter Windows uebliche Verhalten zu simulieren. Als ich mal nicht wusste was ACLs sind, schlug ich es bei google nach und fand direkt etwas, was genau dieses Problem betrifft - daher dieser Post. Mehr Infos habe ich leider nicht (habe weder ACLs noch samba installiert).

emba
20.12.05, 08:05
pre sagt schon, dass es nicht stable ist
binaries gibt es evtl. bei ftp.sernet.de

greez

morpheus2001
28.12.05, 10:50
Hi,

auf samba.org gibt es mittlerweile Debian Binaries für die Version 3.0.21. Diese hab ich installiert und der "map readonly" Parameter wurde glücklicherweise implementiert. Leider funktioniert dieser nicht so wie er soll. Laut man smb.conf ist dieser per default auf Yes gesetzt, das sagt auch ein testparm -v. Also hab ich in einem Sambashare auf Windows eine Datei "test.txt" erzeugt. (chmod 0764). Gleich darauf mit Rechtsklick->Eigenschaften->Schreibschutz einen Windows Schreibschutz gesetzt. Jetzt hat die Datei chmod 0544. Bei einem Windows Schreibschutz ist es üblich, dass auch ein nicht-Besitzer den Schreibschutz wieder entfernen kann, also melde ich mich mit einem anderen Benutzer an und versuch den Schreibschutz wieder zu entfernen. Resultat:

morlock closed file test.txt (numopen=0)
[2005/12/28 11:04:42, 2] smbd/open.c:open_file(369)
morlock opened file test.txt read=No write=No (numopen=1)
[2005/12/28 11:04:42, 2] smbd/trans2.c:call_trans2setfilepathinfo(4398)
file_set_dosmode of test.txt failed (Operation not permitted)
[2005/12/28 11:04:42, 2] smbd/close.c:close_normal_file(279)
morlock closed file test.txt (numopen=0)
Unter Windows kommt die selbe Fehlermeldung, "Zugriff verweigert". :mad:
Hab ich noch etwas übersehen? Wieso funktioniert das read-only nicht?

Gruß
Daniel

morpheus2001
04.01.06, 11:54
Ein wunderschönes und Gutes Neues Jahr! :)

Leider habe ich es immer noch nicht geschafft, den Windows Schreibschutz zu mappen. Scheinbar bin ich echt zu blöd dafür ... :confused:

Laut euren Lösungsvorschlägen und der smb.conf (http://us4.samba.org/samba/docs/man/manpages-3/smb.conf.5.html) muss es "map read only" heißen, laut "testparm -v" gibt es aber kein "map read only" sondern lediglich ein map readonly! Weiterhin tritt in der Samba Logdatei kein Fehler auf, egal ob ich "map ready only" oder "map readonly" oder beides verwende.

Weiterhin habe ich alle möglichen Varianten von "ea support", "map read[ ]only" ausprobiert und kann keinen Unterschied beim setzen des Windows Schreibschutzes auf eine per Samba 3.0.21 freigegebene Datei feststellen! Die Datei bekomm jedes Mal die Rechte 0544 gesetzt (-r-xr--r--) egal welchen Parameter ich gesetzt habe.

Große Not !

Gruß D.Morlock

morpheus2001
04.01.06, 14:41
Hi,

habe das Problem jetzt folgendermaßen mit Hilfe von "extended Attributes" gelöst:

1.) Kernel muss EA Unterstützen! Das heißt in der config Datei des Kernels muss folgendes gesetzt sein:
CONFIG_BFS_FS=m
CONFIG_EXT3_FS=m
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_XATTR_SHARING=y
CONFIG_EXT3_FS_XATTR_USER=y
CONFIG_EXT3_FS_XATTR_TRUSTED=y
CONFIG_EXT3_FS_POSIX_ACL=yBei EXT3 System ist XATTR automatisch aktiviert, bei EXT2 und Raiser muss es manuell im Kernel aktiviert werden.

2.) Das Dateisystem mit der Option "user_xattr" mounten! Sprich in /etc/fstab bei dem jeweiligen Eintrag unter <options> "user_xattr" ergänzen.
/dev/sdb1 /files ext3 defaults,user_xattr 0 0

3.) In der smb.conf folgendes ergänzen:
map hidden = no
map system = no
map archive = no
map readonly = no
map read only = no
store dos attributes = yes Informationen hierzu in der smb.conf.

Danach das Dateisystem neu mounten und nat. Samba neu starten. Und schon werden die erweiterten Attribute vom Dateisystem unterstützt :)

Gruß
D.Morlock