TomLu
Anmeldungsdatum: 23. August 2014
Beiträge: 603
|
Hallo liebe Leute Ich habe ein kleines Problem mit Rechten auf Verzeichnisse und Dateien meines kleinen Raspian-Servers. Ich bin zwar erst seit gut 8 Wochen mit Linux beschäftigt, bin aber nicht grundsätzlich unerfahren, was Netzwerkadministration angeht.... nur komme ich halt aus der Windows-Ecke.... aber ich hoffe, diese bald ganz verlassen zu können. Derzeit habe ich zunächst mal meinen Windows-Server gegen den Raspian-Server gewechselt und auf meinem PC das Win 7/P gegen Ubuntu Trusty Tahr getauscht. Erst mal langsam alles kennenlernen. Ok, mein kleines Problem. Auf meinem Server mit seiner angeschlossenen ext4-Platte gibts eine Samba-Freigabe "DatenAlle", zusätzlich zum "öffentlichen" Mediaverzeichnis und den "privaten" Home-Dirs und Mail-Profilen. Also, auf "DatenAlle" schreiben und lesen alle. Ich habe dafür auf dem Server eine Gruppe SambaUser eingerichtet, in der alle Client-User aufgenommen sind.... und bis auf meinen Ubuntu-PC sind's derzeit noch alle Win-Clients. Der ganzen Freigabe hatte ich bei der Inbetriebnahme des Servers als Besitzer "root:sambauser" eingetragen. Da ich ja für diesen Verzeichnis-Inhalt keinen einzelnen Besitzer habe, habe ich einfach root genommen. Jetzt haben wir das Problem, dass beim Erstellen einer neuen Datei in diesem Verzeichnis ein anderer User diese Datei nicht öffnen kann, weil nach dem Speichern einer Datei durch z. B. den Anwender Klaus der Besitzer "klaus:klaus" ist und alle anderen keine Rechte haben, diese Datei zu öffnen. Das widerspricht natürlich genau dem Zweck dieses Verzeichnisses. Früher unter Windows konnte ich vererbare Rechte einstellen, bei dem alle Dateien des Ordners die Rechte des Ordners vererbt bekommen haben. Da gabs genau dieses Problem nicht. Habe ich unter Linux vielleicht auch die Möglichkeit, für diese Freigabe auf alle Dateien sowas wie "vererbare Rechte" zu setzen, dass also nicht die Dateien jeweils individuelle Rechte haben, die vom User abgeleitet sind, sondern alle Dateien haben die gleichen "unpersönlichen" Rechte? Und natürlich gilt das gleiche auch für die Dateien, die neu gespeichert oder erstellt werden. Gibts dafür Lösung? mfg
Thomas
|
cflinux
Anmeldungsdatum: 14. Januar 2013
Beiträge: 685
|
Hallo Mit diesen beiden Optionen werden die Rechte der Freigabe vererbt. Trage Sie bei deiner Freigabe ein. inherit permissions = yes
inherit owner = yes Gruß cflinux
|
chilidude
Anmeldungsdatum: 18. Februar 2010
Beiträge: 867
|
TomLu schrieb: Habe ich unter Linux vielleicht auch die Möglichkeit, für diese Freigabe auf alle Dateien sowas wie "vererbare Rechte" zu setzen, dass also nicht die Dateien jeweils individuelle Rechte haben, die vom User abgeleitet sind, sondern alle Dateien haben die gleichen "unpersönlichen" Rechte? Und natürlich gilt das gleiche auch für die Dateien, die neu gespeichert oder erstellt werden. Gibts dafür Lösung?
Schau dir mal das "sgid"-Flag an und als Alternative, ACL's.
|
TomLu
(Themenstarter)
Anmeldungsdatum: 23. August 2014
Beiträge: 603
|
Hallo Leute Danke für Eure Hilfe.... aber der erste Versuch ist leider fehlgeschlagen.... und wenn ich ehrlich bin, so richtig verstehe ich jetzt nicht mehr den Grund dafür.
Zu allererst habe ich auf dem Raspian-Server mit
für eindeutige Rechte gesorgt. Damit haben die User der Gruppe sambauser alle wie gewünscht RWX-Rechte. Dazu habe ich dann in die smb.conf des Servers in der Sektion [DatenAlle] die beiden Paramter
eingetragen und anschließend mit sudo service samba restart einmal den Dienst neu gestartet. Danach habe ich auf meinem Ubuntu Client einmal sudo umount -a und anschließend sudo mount -a durchgeführt, in der Hoffnung, dass mit neuem Mount alle Customizings wirksam sind. Ich habe dann mit LibreOffice-Writer eine Textdatei (Entwurf 4.odt) erstellt.... und so sieht das Ergebnis dann aus:
rwxrwxr-- 1 root sambauser 66K Aug 19 10:41 Entwurf 2.odt rwxrwxr-- 1 root sambauser 76K Aug 20 10:24 Entwurf 3.odt rw-r--r-- 1 root thomas 51K Aug 27 12:15 Entwurf 4.odt rwxrwxr-- 1 root sambauser 70K Aug 19 10:29 Entwurf.odt
Als nächste habe ich kontrolliert, ob meine ID's alle "konmpatibel sind. Zuerst auf dem Server:
id uid=1000(thomas) gid=1000(thomas) Gruppen=1000(thomas),27(sudo),107(lpadmin),1001(indiecity),1006(sambauser)
Auf dem Ubuntu-Client
id uid=1000(thomas) gid=1000(thomas) Gruppen=1000(thomas),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),124(sambashare)
Also, meines Erachtens passt hier alles. Der Kracher ist, ich habe nach dem Speichern der Datei und schließen des Dokuments keine Rechte, die Datei erneut zum Bearbeiten zu öffnen. LO öffnet sie nur schreibgeschützt.Ich bin mit dieser Situation nun ein wenig überfordert und weiss nicht, welche Schraube ich jetzt nachziehen muss, damit das funktioniert. Ich habe mir das mit ACL mal kurz überflogen. Ja, vielleicht wäre das eine Option. Aber ich habe eigentlich die Hoffnung, dass das mit dem ganz normalen Linux-Berechtigungssystem einer ext4-Platte zu lösen ist. Hier gehts ja wirklich nur um die Benutzer der Gruppe sambauser, die ja allesamt Familienmitglieder sind. Nix aussergewöhnliches, keine Differenzierung, alle User der Gruppe sambauser sollen RWX-Rechte auf alle Dateien der Freigabe DatenAlle haben, egal, wer die Datei erzeugt hat. Und es sollen nicht die Besitzerrechte des Dateierstellers auf die Datei gesetzt werden, was ja genau bei mir (s.o.) passiert ist. Grüße Thomas
|
cflinux
Anmeldungsdatum: 14. Januar 2013
Beiträge: 685
|
Hallo Zeig mal Bitte deine smb.conf und welche Version von Samba verwendest du? Gruß cflinux
|
TomLu
(Themenstarter)
Anmeldungsdatum: 23. August 2014
Beiträge: 603
|
Hallo Es ist die Version 3.6.6. Unten ist meine smb.conf. Die Global-Sektion ist eigentlich noch "default". Ich wüsste nicht, dass ich da was geändert habe, ausser jetzt hier die Kommentar-Zeilen zu entfernen, damits kürzer wird. Lediglich "unten am Ende" sind meine Ergänzungen. vg, Thomas [global]
workgroup = WORKGROUP
server string = %h server
;wins server = w.x.y.z
dns proxy = no
;name resolve order = lmhosts host wins bcast
;interfaces = 127.0.0.0/8 eth0
;bind interfaces only = yes
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
security = user
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
;domain logons = yes
;logon path = \\%N\profiles\%U
;logon drive = H:
;logon script = logon.cmd
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
; add machine script= /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u
; add group script = /usr/sbin/addgroup --force-badname %g
;printing = bsd
;printcap name = /etc/printcap
;printing = cups
;printcap name = cups
;include = /home/samba/etc/smb.conf.%m
;message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' &
;idmap uid = 10000-20000
;idmap gid = 10000-20000
;template shell = /bin/bash
;winbind enum groups = yes
;winbind enum users = yes
;usershare max shares = 100
usershare allow guests = no
#======================= Share Definitions =======================
[homes]
comment = Home Directories
browseable = no
read only = yes
create mask = 0775
directory mask = 0775
valid users = %S
;[netlogon]
;comment = Network Logon Service
;path = /home/samba/netlogon
;guest ok = yes
;read only = yes
;[profiles]
;comment = Users profiles
;path = /home/samba/profiles
;guest ok = no
;browseable = no
;create mask = 0600
;directory mask = 0700
[printers]
comment = All Printers
browseable = yes
path = /media/HD_1/SpoolSamba
printable = yes
guest ok = no
read only = yes
create mask = 0700
valid users=@sambauser
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
;write list = root, @lpadmin
;[cdrom]
;comment = Samba server's CD-ROM
;read only = yes
;locking = no
;path = /cdrom
;guest ok = yes
;preexec = /bin/mount /cdrom
;postexec = /bin/umount /cdrom
#========================================================================
#Admin-Shares
[HD_1]
path=/media/HD_1
writeable = yes
browseable=no
guest ok = no
public = no
write list=@sambauser
valid users=@sambauser
[HD_2]
path=/media/HD_2
writeable = yes
browseable=no
guest ok = no
public = no
write list=@sambauser
valid users=@sambauser
#========================================================================
#Home-Shares
[Home_Thomas]
path=/media/Home_Thomas
writeable = yes
browseable=no
guest ok=no
public=no
write list=
valid users = thomas
[Home_?-n]<----- Stellvertreter für alle anderen
path=/media/Home_?
writeable = yes
browseable=no
guest ok=no
public=no
write list=
valid users = ?
#========================================================================
[DatenAlle]
path=/media/DatenAlle
writeable = yes
browseable=yes
guest ok=no
public=no
inherit permissions = yes
inherit owner = yes
create mask = 774
directory mask = 774
security mask = 774
force create mode = 774
force security mode = 774
write list=@sambauser
valid users=@sambauser
|
cflinux
Anmeldungsdatum: 14. Januar 2013
Beiträge: 685
|
Hallo Irgendwie passen für mich die Pfade nicht zueinander sudo chmod -R 774 /media/HD_1/DatenAlle
sudo chown -R root:sambauser /media/HD_1/DatenAlle
[DatenAlle]
path=/media/DatenAlle Rem mal diese Einträge aus
create mask = 774
directory mask = 774
security mask = 774
force create mode = 774
force security mode = 774 Sie sollten zwar von inherit permissions = yes und inherit owner = yes überschrieben werden, aber man weiß ja nie. Die inherit permissions = yes und inherit owner = yes Optionen beziehen sich in deinem Fall auf diesen Ordner /media/DatenAlle, von diesem Ordner aus werden die Berechtigungen vererbt. Gruß cflinux
|
TomLu
(Themenstarter)
Anmeldungsdatum: 23. August 2014
Beiträge: 603
|
Hallo cflinux schrieb: Irgendwie passen für mich die Pfade nicht zueinander
Ja, Du hast Recht, das ist verwirrend.... aber die Server->fstab erklärt das:
UUID="63485e55" /media/HD_1 ext4 defaults,noatime
/media/HD_1/Mail /media/Mail cifs bind
/media/HD_1/DatenAlle /media/DatenAlle cifs bind
/media/HD_1/Home/Thomas /media/Home_Thomas cifs bind
/media/HD_1/Home/? /media/Home_? cifs bind
/media/HD_1/Home/? /media/Home_? cifs bind Auf HD_1 liegen die echten Verzeichnisse, die ge'bind'et sind, um sie von dort als Samba-Freigabe zu "veröffentlichen".
Rem mal diese Einträge aus
Sie sollten zwar von inherit permissions = yes und inherit owner = yes überschrieben werden, aber man weiß ja nie. Die inherit permissions = yes und inherit owner = yes Optionen beziehen sich in deinem Fall auf diesen Ordner /media/DatenAlle, von diesem Ordner aus werden die Berechtigungen vererbt.
Und genau das passiert eben nicht! Die Rechten werden eben nicht vom Eltern-Verzeichnis übernommen. Das ist ja das Problem, was ich nicht mehr nachvollziehen kann. Ich hatte diese Einträge vorher nicht drin und das hat zu den sonderbaren Datei-Rechten (s.o. Entwurf4.odt) geführt. Nehme ich diese Parameter alo wieder raus, kommt Käse raus. Lass ich sie drin, stimmen zwar die Rechte, aber Besitzer und Gruppen bleiben verkehrt. Gruss, Thomas
|
TomLu
(Themenstarter)
Anmeldungsdatum: 23. August 2014
Beiträge: 603
|
Moin Ich habe gerade mal folgendes getestet.... 3 Files mit LO-Writer erstellen. Einmal von einem Anwender auf seinem Win-Client, einmal mit meinem Account auf diesem Win-Client und einmal hab ich's von meinem Ubuntu-PC getan. Das ist das Ergebnis, für mich überhaupt nicht mehr erklärbar: Das ist hier das Verzeichnis /media/DatenAlle/Temp, in dem ich diese Tests gemacht habe:
drwxrwxr-- 2 thomas sambauser 4,0K Aug 28 10:29 .
drwsrwxr-- 14 thomas sambauser 4,0K Aug 28 10:21 ..
-rwxrwxr-- 1 thomas sambauser 23 Aug 26 23:54 ddd
-rwxrwxr-- 1 thomas sambauser 360K Aug 9 09:54 SAL.log
-rwxrwxr-- 1 thomas sambauser 87K Dez 5 2013 SAL.ods
-rwxrwxr-- 1 thomas sambauser 14 Aug 26 23:48 Unbenanntes Dokument 1
-rwxrwxr-- 1 thomas thomas 8,7K Aug 28 10:20 Thomas_UbuntuClient.odt
-rwxrw-r-- 1 thomas thomas 8,8K Aug 28 10:29 Thomas_WinClient.odt
-rwxrw-r-- 1 thomas users 8,5K Aug 28 09:12 User_X_WinClient.odt Die letzten 3 Files sind es. Vom Win-Client sind die Rechte anders. Und bei User X wird die Gruppe users gesetzt.... keine Ahnung, wo er die herholt. Bei keiner Datei wird als Gruppe sambauser eingetragen. Eigentlich sollten alle Dateien wie folgt aussehen: -rwxrwxr-- 1 thomas sambauser ::::::::::::: Gruß, Thomas
|
TomLu
(Themenstarter)
Anmeldungsdatum: 23. August 2014
Beiträge: 603
|
Moin Das Problem ist gelöst! Die Lösung ist in der smb.conf: [DatenAlle]
path=/media/DatenAlle
writeable = yes
browseable=yes
guest ok=no
public=no
inherit permissions = yes
inherit owner = yes
force create mode = 774
force user = thomas
force group = sambauser Vielleicht hilft mir noch mal jemand bei der Interpretation dieser Einträge.... ich versuchs mal... Meiner Meinung nach habe ich hier 2 Anweisungsgruppen, die prinzipiell zum gleichen Ergebnis kommen müssten. Einerseits die beiden "inherit"- und zum zweiten die drei "force"-Anweisungen. "inherit" müsste dazu führen, dass der Eigentümer einer neuerstellen Datei vom Eltern-Ordner übernommen wird, also "thomas:sambauser", ebenso die rwx-rwx-Rechte für Besitzer und Gruppe.... das funktioniert aber leider nicht. Die drei force-Anweisungen erzwingen aber genau das. Ich habe eine Datei gespeichert, die hatte danach die Rechte rwx-rwx-000 und die Besitzer "thomas:sambauser". Und das funktioniert. Kann man das so feststellen? Was mich jetzt nur irritiert... ich weiss nicht, wann ich in der smb.conf eine Gruppe mit dem prefix @ versehen muss. Ist das mal so, mal so, je nach Anweisung? Laut Doku müsste bei valid users = @sambauser geschrieben werden. Und ich meine festgestellt zu haben, das force group = @sambauser wiederum nicht funktioniert. Sehr verwirrend..... Gruss, Thomas
|
cflinux
Anmeldungsdatum: 14. Januar 2013
Beiträge: 685
|
Hallo Da force group sich auf eine Gruppe bezieht braucht man das @ als Kennzeichnung für eine Gruppe nicht. Bei allen anderen Optionen, wo Gruppen und Benutzer gemischt sein können müssen Gruppen mit einem @ gekennzeichnet werden, damit Samba sie unterscheiden kann. Im Prinzip bewirken inherit ... und force ... das selbe, wobei eigentlich die inherit die force Optionen überschreiben. Ich vermute das kommt vom mounten der Freigabe, das es dabei zu Problemen kommt. Gruß cflinux
|
TomLu
(Themenstarter)
Anmeldungsdatum: 23. August 2014
Beiträge: 603
|
Moin Ach ja.... jetzt ergibt das mit @ auch einen Sinn. Verstanden! Aber der Umstand mit "inherit" ist merkwürdig, ich habe nämlich auch genau das gelesen, dass inherit die höhere Priorität hat. Aber fakt ist, nur mit inherit funktionierts nicht, erst die "forces" schreiben die "owner" so wie es sein muss. Ich meine, ich kann da jetzt mit leben, aber unerklärliche Sachverhalte ärgern mich ja schon irgendwie... 😕 Gruß, Thomas
|