felix02123
Anmeldungsdatum: 8. Mai 2016
Beiträge: Zähle...
|
Hallo Ich habe ein Problem bei der Konfiguration einer Freigabe im Samba Server.
Das Ziel ist, dass beim erstellen einer Datei/ eines Verzeichnisses sowohl der Eigentümer, als auch die Gruppe Vollzugriff erhält.
Dazu habe ich folgende Konfiguration für als Share Definition eingetragen:
[homes]
comment = Home Verzeichnis
browseable = no
valid users = %S
public = no
guest ok = no
writeable = YES
create mode = 0770
directory mode = 0770
force create mode = 0770
force directory mode = 0770
force group = GRUPPE Beim Erstellen einer Datei werden die Rechte korrekt gesetzt. Beim Erstellen eines Verzeichnisses allerdings fehlt das Schreibrecht für die Gruppe. Vielen Dank und viele Grüße Felix
|
felix02123
(Themenstarter)
Anmeldungsdatum: 8. Mai 2016
Beiträge: 16
|
Ich glaube ich habe den Grund für das Problem gefunden.
Dem User, mit dem ich mich bei der Freigabe anmelde, fehlt die Berechtigung Schreibrecht beim Erstellen eines Verzeichnisses zu setzen. Wenn ich mich nun mit einem Nutzer mit root-Rechten bei der Freigabe anmelde, und ein Verzeichnis erstelle, so werden die Rechte wie in der Konfiguration gesetzt. Leider konnte ich nicht herausfinden, was ich bei den Berechtigungen bei den Nutzern ändern muss, damit auch diese die Verzeichnisse mit den in der Konfiguration gesetzten Rechten erstellen. Hierbei fehlt mir jeder Ansatz und ich hoffe ihr könnt mir weiterhelfen. Weiter habe ich mir Gedanken gemacht und überlegt, ob es eventuell möglich ist, das Verzeichnis selber die "Rechte kontrollieren zu lassen". Damit meine ich, dass egal von welchem Benutzer Verzeichnisse oder Dateien in diesem Verzecihnis erstellt werden, immer die gleichen konfigurierten Rechte übernommen werden. D.h. in diesem Fall soll jede Datei/ jedes Unterverzeichnis, aber nur innerhalb diesen einen Verzeichnisses, mit den Rechten 770 erstellt werden. Quasi als ob ich die Rechte rekursiv anpassen würde, nur dass das Verzeichnis dies von selbst regelt. Gibt es hierfür eine Möglichkeit das zu realisieren? Vielen Dank und viele Grüße Felix
|
Max-Ulrich_Farber
Anmeldungsdatum: 23. Januar 2007
Beiträge: 7992
|
Dem User, mit dem ich mich bei der Freigabe anmelde, fehlt die Berechtigung Schreibrecht beim Erstellen eines Verzeichnisses zu setzen. Wenn ich mich nun mit einem Nutzer mit root-Rechten bei der Freigabe anmelde, und ein Verzeichnis erstelle, so werden die Rechte wie in der Konfiguration gesetzt.
Offen gestanden, das verstehe ich nicht. Wie wolltest Du denn auf die Freigabe zugreifen? Bitte beschreibe genau den Weg, nichts ist selbstverständlich. Dem User, mit dem ich mich bei der Freigabe anmelde, fehlt die Berechtigung Schreibrecht beim Erstellen eines Verzeichnisses zu setzen. Wenn ich mich nun mit einem Nutzer mit root-Rechten bei der Freigabe anmelde, und ein Verzeichnis erstelle, so werden die Rechte wie in der Konfiguration gesetzt.
Um zu wissen, was Du ändern musst, müsste man erst mal genau wissen, was Du gemacht hast. Damit meine ich, dass egal von welchem Benutzer Verzeichnisse oder Dateien in diesem Verzecihnis erstellt werden, immer die gleichen konfigurierten Rechte übernommen werden.
Das geht schon. Dafür gibt es in der Datei /etc/samba/smb.conf die Optionen unherit owner , inherit permissions und inherit acls . Außerdem kann man die Gruppe über das SGID-Bit vererbbar machen. Auch Default-ACLs sind eine Möglichkeit. Doch um Dir konkretere Ratschläge geben zu können, sollte ich vor allem genau wissen, was Du tun willst, und was Du bereits gemacht bzw. versucht hast. Gruß – Max-Ulrich
|
felix02123
(Themenstarter)
Anmeldungsdatum: 8. Mai 2016
Beiträge: 16
|
Danke für die Antwort.
Dem User, mit dem ich mich bei der Freigabe anmelde, fehlt die Berechtigung Schreibrecht beim Erstellen eines Verzeichnisses zu setzen. Wenn ich mich nun mit einem Nutzer mit root-Rechten bei der Freigabe anmelde, und ein Verzeichnis erstelle, so werden die Rechte wie in der Konfiguration gesetzt.
Offen gestanden, das verstehe ich nicht. Wie wolltest Du denn auf die Freigabe zugreifen? Bitte beschreibe genau den Weg, nichts ist selbstverständlich.
Ich habe zunächst die Freigabe in der Konfiguration (siehe erster Post) eingerichtet. Anschließend habe ich mit einem Win7-Rechner im Explorer den Server mit der entsprechenden Freigabe aufgerufen und konnte wie darauf zugreifen. Wenn ich nun dort ein Verzeichnis erstelle und anschließend auf dem Server nachsehe, welche Berechtigungen eingetragen worden sind, so fehlt das Schreibrecht für die Gruppe. Allerdings habe ich die Konfiguration so eingestellt, dass auch die Gruppe das Schreibrecht erhält. Melde ich mich nun im Win7-System bei der Freigabe mit anderen Benutzerdaten an (der Benutzer kann ebenfalls auf das Verzeichnis zugreifen ⇒ Austauschverzeichnis) so kann dieser in diesem Verzeichis (welches der andere Nutzer zuvor erstellt hat) nicht schreiben ⇒ fehlendes Schreibrecht. Wenn ich das Verzeichnis aber mit einem Nutzer erstelle, welcher auf dem Server root-Rechte hat, so wird auch das Schreibrecht für die Gruppe gesetzt (Rechte werden gesetzt, wie sie in der Konfiguration angegeben sind).
Damit meine ich, dass egal von welchem Benutzer Verzeichnisse oder Dateien in diesem Verzecihnis erstellt werden, immer die gleichen konfigurierten Rechte übernommen werden.
Das geht schon. Dafür gibt es in der Datei /etc/samba/smb.conf die Optionen unherit owner , inherit permissions und inherit acls . Außerdem kann man die Gruppe über das SGID-Bit vererbbar machen. Auch Default-ACLs sind eine Möglichkeit. Doch um Dir konkretere Ratschläge geben zu können, sollte ich vor allem genau wissen, was Du tun willst, und was Du bereits gemacht bzw. versucht hast.
Die Optionen unherit owner, inherit permissions und inherit acls kannte ich bisher noch nicht. Diese werde ich mir mal als nächstes anschauen.
ACLs habe ich mir gestern auch angeschaut und überlegt, dass dies vermutlich das Beste für mein Vorhaben ist. Allerdings habe ich es bisher noch nicht geschafft, die acls zu setzen, da immer wieder Fehler auftreten, obwohl ich die Befehle wie recherchiert eingegeben habe. Gruß Felix
|
Max-Ulrich_Farber
Anmeldungsdatum: 23. Januar 2007
Beiträge: 7992
|
Die Information, dass Du die betreffenden Ordner von einem Windows-Client aus erstellst, ist wichtig! Samba-4 Übernimmt die Berechtigungen (Windows-ACL), die auf dem Windows-Client gesetzt werden, und mappt diese auf dem Samba-Server in POSIX-ACL. Und diese haben Vorrang vor den Einstellungen für die UNIX-Dateirechte. Um dies zu verhindern, kann man entweder auf dem Server Default-ACLs festlegen oder aber für die Freigabe auf dem Server ACLs einrichten und diese mit inherit acls = yes vererbbar machen. Allerdings habe ich es bisher noch nicht geschafft, die acls zu setzen, da immer wieder Fehler auftreten, obwohl ich die Befehle wie recherchiert eingegeben habe.
Wie hast Du versucht, die ACLs zu setzen, direkt als POSIX-ACLs auf dem Server oder durch Mappen der Windows-ACLs auf dem Win-Client? Gruß – Max-Ulrich
|
felix02123
(Themenstarter)
Anmeldungsdatum: 8. Mai 2016
Beiträge: 16
|
Vielen Dank für die Antwort.
Um dies zu verhindern, kann man entweder auf dem Server Default-ACLs festlegen oder aber für die Freigabe auf dem Server ACLs einrichten und diese mit inherit acls = yes vererbbar machen.
Müssen diese Einstellungen in der smbd.conf vorgenommen werden? Könntest du mir dazu einen Ansatz geben, wie man die default-ACLS auf dem Server festlegt?
Allerdings habe ich es bisher noch nicht geschafft, die acls zu setzen, da immer wieder Fehler auftreten, obwohl ich die Befehle wie recherchiert eingegeben habe.
Wie hast Du versucht, die ACLs zu setzen, direkt als POSIX-ACLs auf dem Server oder durch Mappen der Windows-ACLs auf dem Win-Client?
Ich versteh nicht genau was du damit meinst. Ich habe zunächst das Paket ACL installiert und die Default ACLs versucht über setfacl auf das Tauschverzeichnis festzulegen. Ich habe es nun geschafft, default-ACLs festzulegen, ohne dass ein Fehler auftritt.
Die getfacl Ausgabe für das Austauschverzeichnis sieht nun wie folgt aus:
user::rwx
group::rwx
other::---
default:user::rwx
default:group::rwx
default:other::---
Jetzt wollte ich die Rechte auch rekursiv setzen mit der Option -R. Allerdings treten dabei noch Syntaxfehler auf. Ist das überhaupt korrekt, das Ganze rekursiv zu setzen?
Ist es ausreichend, die smbd.conf jetzt mit inherit acls = YES zu setzen, oder müssen noch weitere Einstellungen vorgenommen werden? Viele Grüße
Felix
|
felix02123
(Themenstarter)
Anmeldungsdatum: 8. Mai 2016
Beiträge: 16
|
Ich habe es jetzt geschafft, dass über die Samba-Freigabe die Rechte korrekt von den default-ACLS übernommen werden. Jetzt habe ich noch das Problem, dass ich das Ganze auch gerne über FTP (vsftpd Server) machen würde. Ist es möglich, auch beim vsftpd-Server die Rechte von den default-ACLs zu übernehmen? Dazu konnte ich bisher für die Konfiguration nur die Option local_umask finden. Aber die würde ja dann auf den gesamten Server angewendet werden. Aus diesem Grund würde ich auch hier gerne die default-ACLs nutzen. Viele Grüße
Felix
|
Max-Ulrich_Farber
Anmeldungsdatum: 23. Januar 2007
Beiträge: 7992
|
Ich habe es jetzt geschafft, dass über die Samba-Freigabe die Rechte korrekt von den default-ACLS übernommen werden.
Das ist gut. Jetzt habe ich noch das Problem, dass ich das Ganze auch gerne über FTP (vsftpd Server) machen würde. Ist es möglich, auch beim vsftpd-Server die Rechte von den default-ACLs zu übernehmen?
Ich habe das noch nie ausprobiert, aber ich denke, das müsste wohl schon gehen (?). Die Default-ACLs gelten ja nicht speziell für Samba, sondern allgemein. Was hingegen sicher nicht geht, ist ACLs auf dem Server von einem Client aus über FTP zu setzen. Aber das willst Du ja vermutlich auch gar nicht tun. Dazu konnte ich bisher für die Konfiguration nur die Option local_umask finden
Ich denke, dass die Default-ACLs nur dann korrekt übernommen werden, wenn local_umask diese nicht weiter einschränkt, also im Normalfall, wenn local_umask = 000 ist. Bei Samba wird ja auch bei inherit acls = yes automatisch der UNIX-Modus zu 0777 gesetzt, was umask = 000 entspricht. Wenn Du so weit bist, dann lasse uns bitte wissen, ob und ggf. wie das mit vsftpd bzw. alternativ mit proftpd geklappt hat. Gruß – Max-Ulrich
|
felix02123
(Themenstarter)
Anmeldungsdatum: 8. Mai 2016
Beiträge: 16
|
Ich habe nun in der Konfiguration die Option local_umask = 000 gesetzt. Daraus ergeben sich nun folgende Rechte:
In dem Verzeichnis, bei dem default ACLs gesetzt sind:
Verzeichnis: Rechte wie in default ACLs hinterlegt [volle Berechtigung für Owner und Gruppe; Other haben keine Rechte] und das Plus, das für das Verzeichnis ACLs gelten
Datei: Lese- und Schreibrecht für Eigentümer und Gruppe; keine Rechte für Other; kein Plus wie bei gesetzten ACLs In dem Verzeichnis, bei dem keine default ACLs gesetzt sind:
Verzeichnis: Rechte 777
Datei: Lese und Schreibrecht für Eigentümer, Gruppe und Other Das erscheint mir so, dass die default ACLs auch auf die Dateien Auswirkungen haben, allerdings scheinen diese nur Rechte zu entziehen [Other werden alle Rechte entzogen] und nicht hinzuzufügen [Eigentümer und Gruppe fehlt Ausführungsrecht]. Desweiteren greifen die default ACLs, bei den über FTP Client erstellten Dateien / Verzeichnissen, voll auf die Verzeichnisse, aber nur halbwegs auf die Dateien. Nun habe ich eine Verständnisfrage. Wenn ich ACLs rekursiv setzen, bedeutet dass, dass alle bereits vorhandenen Verzeichnisse und Dateien die gleichen default ACLs erhalten?
Wie ist das, wenn ich in einem Verzeichnis, für das default ACLs vorhanden sind ein Verzeichnis erstelle und in diesem wiederum ein weiteres erstelle. Gelten dann in allen Unterverzeichnissen unter den default ACLs die default ACLs? Viel Grüße
Felix
|
felix02123
(Themenstarter)
Anmeldungsdatum: 8. Mai 2016
Beiträge: 16
|
Ich habs jetzt geschafft. Manchmal hilft es doch, wenn man einfach mal alles ausprobiert 🙄 Ich habe in der Konfig vom VSFTPD folgende zwei Optionen gesetzt:
file_open_mode = 0770
local_umask = 077
→ damit werden beim Erstellen von Verzeichnissen / Dateien die Berechtigung Vollzugriff für den Eigentümer und keine Rechte für Gruppe und Andere gesetzt. In den Verzeichnissen, bei denen die default ACLs gesetzt werden, wie bei mir z.B. in einem Verzeichnis auf 770, so werden in hier auch auf dem FTP Server die Berechtigungen für die Gruppe hinzugefügt. Sowohl beim Erstellen von Verzeichnissen, als auch beim Erstellen von Dateien. Das + von den ACLs wird allerdings nur bei den Verzeichnissen angezeigt (?). Scheinbar werden durch die default ACLs nur Rechte hinzugefügt und nicht entfernt, denn ich habe auch versucht die Konfig so einzustellen, dass alle, auch Other, Vollzugriff erhalten. Auch dort, wo die default ACLs (Other haben keinen Zugriff) gesetzt waren, wurden die Rechte auf 777 gesetzt. Viele Grüße Felix
|
Max-Ulrich_Farber
Anmeldungsdatum: 23. Januar 2007
Beiträge: 7992
|
Ich habs jetzt geschafft. Manchmal hilft es doch, wenn man einfach mal alles ausprobiert
Ja! – Da hast Du jetzt schon mehr durchprobiert als ich. Ich versuche 'mal, hinter Deinen Ergebnissen die Logik zu erkennen 🙄
Historisch bedingt ist das Zusammenspiel von UNIX-Dateirechten und POSIX-ACLs in Linux schwierig. Zunächst gab es eben die UNIX-Rechte und später kamen dann, in Anlehnung an die Windows-ACL, die POSIX-ACLs dazu, um die Rechte differenzierter verwalten zu können. Die beiden Rechte-Verwaltungen arbeiten verschieden und weitgehend unabhängig voneinander, wobei die UNIX-Rechte sozusagen den Rahmen für die ACLs abgeben. Wenn man die Rechte ganz über ACL verwalten möchte, dann ist es sinnvoll, den UNIX-Modus auf 0777 einzustellen, damit die ACLs von dieser Seite her nicht eingeschränkt werden. Samba und offenbar auch vsftpd (?) tun dies offenbar schon automatisch ("Auch dort, wo die default ACLs (Other haben keinen Zugriff) gesetzt waren, wurden die Rechte auf 777 gesetzt."). Von den Dateimanagern (z.B. Nautilus) und einigen Shell-Befehlen (chown, chmod ... ) werden POSIX-ACLs (noch?) nicht verwaltet. Der Befehl getfacl <Datei> bzw. getfacl <Ordner> zeigt UNIX-Rechte und POSIX-ACLs an.
Die Schwierigkeit in gemischten Netzwerken ist nun, dass die Windows-Clients standardmäßig mit ACL und die Linux-Clients standardmäßig mit UNIX-Rechten arbeiten und diese bei entsprechender Einstellung auch auf den Server übertragen. Dadurch können auf dem Samba-Server Verwirrungen entstehen. Wie das dann bei FTP usw. aussieht, weiß ich nicht. Gruß – Max-Ulrich
|
felix02123
(Themenstarter)
Anmeldungsdatum: 8. Mai 2016
Beiträge: 16
|
Vielen Dank für die Erklärungen. Da jetzt alle funktioniert, markiere ich das Thema als gelöst.
Viele Grüße
Felix
|