Hallo Leute,
ich habe ein sehr spezielles Problem mit dem Zugriff auf meine Samba-Freigaben. Bei mir läuft ein Ubuntu-Server (12.04) mit Zentyal 3. Der Server erfüllt die Funktionen eines Domain Controllers, Dateiservers und Print-Servers. Die Clients verfügen allesamt über Windows XP SP3.
Diversen Windows-Anwendungen soll es möglich sein, Dateien in den Freigaben des Zentyal-Servers zu speichern und vorhandene Dateien zu überschreiben. Alle Benutzer, Gruppen, Freigaben und deren Berechtigungen sind scheinbar korrekt eingerichtet. Zumindest stimmen die Ergebnisse der clientseitigen Sicherheitseinstellungen und der serverseitigen getfacl-Ausgabe mit der ursprünglichen Planung überein.
Das Problem ist, dass ich gewissermaßen "eingeschränkte Überschreib-Rechte" besitze. Folgendes Szenario beschreibt mein Problem etwas genauer:
Ich öffne unter Windows XP das Notepad und erstelle eine Datei. Diese Datei kann ich auf der Serverfreigabe "//meinserver/meinefreigabe/" unter dem Namen "test.txt" abspeichern. Ich kann die Datei im Explorer suchen, nochmals öffnen, verändern und über "Datei"-"Speichern" ganz normal abspeichern. Soweit alles normal. Schließe ich nun die Datei, erstelle anschließend ein neues Textdokument und versuche dieses mittels "Speichern unter" unter "//meinserver/meinefreigabe/test.txt" abzuspeichern, erscheint nicht etwa eine Nachfrage, ob das Dokument überschrieben werden soll sondern es erscheint die Fehlermeldung
"Auf die Datei kann nicht zugegriffen werden. Überprüfen Sie die Sicherheitsberechtigungen."
Gehe ich nicht über den Netzwerkpfad sondern über ein verbundenes Netzlaufwerk (//meinserver/meinefreigabe/ als Laufwerk Z: verbunden), so sieht die Fehlermeldung etwas anders aus:
"Sie Verfügen nicht über die Berechtigung zum Speichern in diesem Verzeichnis. Wenden Sie sich an den Administrator, um diese Berechtigung zu erhalten. Möchten Sie stattdessen im Ordner "Eigene Dateien" speichern?"
Speicher ich die Datei mit dem gleichen Namen vorerst an anderer Stelle und kopiere sie über den Windows Explorer auf den Server, so kann ich die Datei problemlos überschreiben (Wie gewohnt mit der Abfrage: "Soll die Datei ersetzt werden?" - "Ja").
Das Problem tritt nur unter Windows XP auf. Auf anderen Clients (Win 7, Ubuntu 12.04 Desktop, OS X Mt. Lion) war der Fehler nicht zu beobachten. Auch wenn es sich offensichtlich um ein Windows-Problem handelt, wende ich mich jedoch absichtlich an das Ubuntuusers-Forum, weil das Problem erst seit der Umstellung auf den genannten Ubuntu-Server existiert. Vorher war ein Win 2k3 Server als PDC und File Server im Einsatz. Ich halte viel vom Ubuntu Server und von dieser Community, deshalb hoffe ich sehr, dass ihr mir helfen könnt. Ich könnte mir vorstellen, dass ich lediglich die Clients irgendwie anpassen muss, habe bisher jedoch keine brauchbaren Hinweise gefunden.
Die Freigaben-Definition in der smb.conf sieht folgendermaßen aus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | [meinefreigabe] comment = meinefreigabe path = /raid1/meinefreigabe browseable = Yes read only = No force create mode = 0660 force directory mode = 0660 vfs objects = acl_xattr full_audit scannedonly full_audit:success = connect opendir disconnect unlink mkdir rmdir open rename full_audit:failure = connect opendir disconnect unlink mkdir rmdir open rename scannedonly: rm_hidden_files_on_rmdir = True scannedonly: allow_nonscanned_files = False scannedonly: recheck_time_readdir = 50 scannedonly: scanning_message = is being scanned for viruses scannedonly: hide_nonscanned_files = False scannedonly: show_special_files = True scannedonly: domain_socket = True scannedonly: recheck_time_open = 50 scannedonly: recheck_tries_readdir = 20 scannedonly: quarantine_dir = /var/lib/zentyal/quarantine scannedonly: recheck_tries_open = 100 scannedonly: socketname = /var/lib/zentyal/zavs |
Das RAID, in dem die Freigabe existiert, ist wie folgt in der /etc/fstab aufgeführt:
1 | /dev/md1 /raid1 ext4 defaults,rw,exec,suid,auto,usrquota,grpquota,acl,user_xattr 0 2 |
Ich versuche mit dem Account "teilnehmer" (Gruppenmitglied der Gruppe "team") eine Datei zu ersetzen. Hier die getfacl-Ausgabe für die zu ersetzende Datei:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # file: export1.wav # owner: 3000000 # group: __USERS__ user::rwx user:root:rwx group::--- group:root:--- group:adm:rwx group:__USERS__:--- group:administratoren:rwx group:team:rwx group:3000000:rwx mask::rwx other::--- |
Das Problem betrifft nicht nur einen, sondern alle Accounts inkl. Administratoren-Accounts. Ich würde mich sehr über eure Hilfe freuen.