skywatcher78
Anmeldungsdatum: 29. Juli 2008
Beiträge: 95
|
Hallo Leute, ich verzweifle hier gerade etwas am aktuellen Samba (Standalone-Konfiguration) vom Server 20.04.1 LTS (frisch installiert, als Gast-VM auf ESXi Hypervisor 6.5U3).
Wenn ich einer Samba-Freigabe beibringen möchte, Dateien (und Verzeichnisse) mit bestimmten Berechtigungen (664/775) anzulegen, dann lacht mich Samba aus und macht, was es will. Das Gefühl habe ich zumindest gerade, und ich bin da seit heute Mittag dran und google mir die Finger wund.
Soweit ich herausgefunden habe, übergeht Samba 4 die Systemweite umask (welche auf 0022 default steht), was ja gut wäre, aber ich glaube dem Frieden nicht wirklich. smb.conf:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | [DATEN]
path = /STORAGE/DATEN
comment = DATEN-Verzeichnis
browseable = yes
read only = no
guest ok = no
guest only = no
create mask = 0664
directory mask = 0775
force create mode = 0664
force directory mode = 0775
force group = MeineGruppe
writeable = yes
valid users = @MeineGruppe
write list = @MeineGruppe
|
Directorylisting:
| MeinUser@MeinServer:/STORAGE/DATEN$ ll
total 40
drwxrwxrwx 9 root MeineGruppe 4096 Sep 20 18:07 ./
drwxr-xr-x 5 root root 4096 Sep 20 12:44 ../
drwxr-xr-x 2 MeinUser MeineGruppe 4096 Sep 20 17:30 testdir1/
drwxr-xr-x 2 MeinUser MeineGruppe 4096 Sep 20 17:31 testdir2/
drwxr-xr-x 2 MeinUser MeineGruppe 4096 Sep 20 17:52 testdir3/
-rw-r--r-- 1 MeinUser MeineGruppe 4 Sep 20 16:51 testfile1.txt
-rw-r--r-- 1 MeinUser MeineGruppe 0 Sep 20 17:31 testfile2.txt
MeinUser@MeinServer:/STORAGE/DATEN$
|
Wie ihr sehen könnt, macht der Samba nicht das, was er machen soll. Oder vielleicht ist es richtig, nur ich kann das Ding nicht richtig konfigurieren? Ein 2010er Samba hat es damals zumindest geschafft. Aber das ist Schnee von gestern. (Lucid mit Samba 3.4.7)
Testweise habe ich die mask's und mode's in der Definition der Freigabe schon mal alle auf 0777 gestellt und den smbd restartet, aber ein ziemlich gleiches Bild erhalten. Ausser, dass dann die Dateien 766 werden (dirs bleiben 755). Ich verstehe es nicht und mein stundenlanges googlen und manpages lesen hat mich auch nicht weitergebracht.
Da ich jetzt auf dem Schlauch stehe, hoffe ich auf Tipps von Euch. Schönen Abend noch und viele Grüsse,
Michael
|
chr123
Anmeldungsdatum: 19. Juli 2018
Beiträge: 1632
|
Die Ursache liegt darin, wie Samba die Rechte vergibt (da gibt es viele AND / OR Sachen). Um unabhängig von den bereits vorhandenen Rechte zu werden, wäre meine Empfehlung die create mask und directory mask jeweils auf 0000 zu setzen und dann die gewünschten Rechte zu definieren. create mask = 0000
force create mode = 0664
directory mask = 0000
force directory mode = 0775
|
skywatcher78
(Themenstarter)
Anmeldungsdatum: 29. Juli 2008
Beiträge: 95
|
Hallo chr123, vielen Dank für Deine Antwort. Das habe ich gleich mal ausprobiert, jedoch sind die Rechte unverändert nach dem neuen Anlegen eines Verzeichnisses (755) und einer Datei (644). chr123 schrieb: create mask = 0000
force create mode = 0664
directory mask = 0000
force directory mode = 0775
Grüsse, Michael
|
chr123
Anmeldungsdatum: 19. Juli 2018
Beiträge: 1632
|
Kannst du die Rechte bitte mal via
getfacl /STORAGE/DATEN
getfacl /STORAGE
ausgeben und hier reinstellen? Nicht das auf lokaler Ebene noch ACL mitwirken. Wenn getfacl nicht installiert ist, dann noch nachholen.
|
skywatcher78
(Themenstarter)
Anmeldungsdatum: 29. Juli 2008
Beiträge: 95
|
Hi, chr123 schrieb: Kannst du die Rechte bitte mal via [...]
ausgeben und hier reinstellen? Nicht das auf lokaler Ebene noch ACL mitwirken. Wenn getfacl nicht installiert ist, dann noch nachholen.
na klar, gerne, kein Problem. Hier die Ausgabe: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 | root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE# dpkg -l | grep acl
ii libacl1:amd64 2.2.53-6 amd64 access control list - shared library
ii python3-nacl 1.3.0-5 amd64 Python bindings to libsodium (Python 3)
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE# apt install acl
The following NEW packages will be installed:
acl
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE# getfacl /STORAGE
getfacl: Removing leading '/' from absolute path names
# file: STORAGE
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE# getfacl /STORAGE/DATEN
getfacl: Removing leading '/' from absolute path names
# file: STORAGE/DATEN
# owner: root
# group: MeineGruppe
user::rwx
group::rwx
other::rwx
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
|
|
chr123
Anmeldungsdatum: 19. Juli 2018
Beiträge: 1632
|
Keine ACL, soweit schon mal gut. Zeige bitte auch noch mal den aktuellen Ausschnitt deiner smb.conf. Darüber hinaus gibt es von Samba eine Option, die die Rechte vererbt. Evtl ist die Option bei dir aktiv. Zeige mal bitte
testparm -vs | grep inherit
|
skywatcher78
(Themenstarter)
Anmeldungsdatum: 29. Juli 2008
Beiträge: 95
|
Hey, danke für Deinen Support! | root@MeinServer:/STORAGE# testparm -vs | grep inherit
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE
inherit acls = No
inherit owner = no
inherit permissions = No
map acl inherit = No
|
|
chr123
Anmeldungsdatum: 19. Juli 2018
Beiträge: 1632
|
Also weder ACL noch Vererbungen. Dann gibt es meiner Sicht nur noch zwei Optionen: entweder es gibt noch eine umask, die lokal wirkt und die ich nicht kenne die Optionen von Samba passen, aber irgendwas passt beim Server noch nicht.
Kannst du noch mal deine aktuelle smb.conf zeigen? Wie greifst du auf die Freigabe zu? Per Windows? Per Linux? Kannst du den Samba Dienst mal neustarten, dann auf die Freigabe zugreifen und eine Datei anlegen sowie dann die Ausgabe von
getfacl /STORAGE/DATEN/deineTestdatei
zeigen? Logischerweise die richtige Bezeichnung wählen.
|
skywatcher78
(Themenstarter)
Anmeldungsdatum: 29. Juli 2008
Beiträge: 95
|
Also, hier die Infos: Zugriff mit Win 10 Pro x64 19041.508, vor ca. 3 Wochen frisch installiert, kein AD-Mitglied also auch Standalone, nur 1x lokales Adminkonto vorhanden Zugriff über UNC-Pfad aus Explorer, die Freigabe ist noch nicht als Win-Lfwk eingebunden Sowohl der Samba Dienst wurde nach jeder Konfigurationsänderung mit einem "service smbd restart" bedacht, als auch die gesamte VM 2-3 Mal neugestartet (gestern und heute)
Die gewünschte Ausgabe von getfacl von der Testdatei hänge ich hier an, die Testdatei ist noch die von heute Mittag. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87 | root@MeinServer:/STORAGE/DATEN#
root@MeinServer:/STORAGE/DATEN#
root@MeinServer:/STORAGE/DATEN# ls -lha
total 12
drwxrwxrwx 3 root MeineGruppe 4096 Sep 21 13:03 ./
drwxr-xr-x 5 root root 4096 Sep 20 12:44 ../
drwxr-xr-x 2 MeinUser MeineGruppe 4096 Sep 21 13:02 testdir1/
-rw-r--r-- 1 MeinUser MeineGruppe 0 Sep 21 13:03 testfile1.txt
root@MeinServer:/STORAGE/DATEN#
root@MeinServer:/STORAGE/DATEN#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE# getfacl /STORAGE/DATEN/testdir1/
getfacl: Removing leading '/' from absolute path names
# file: STORAGE/DATEN/testdir1/
# owner: MeinUser
# group: MeineGruppe
user::rwx
group::r-x
other::r-x
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE# getfacl /STORAGE/DATEN/testfile1.txt
getfacl: Removing leading '/' from absolute path names
# file: STORAGE/DATEN/testfile1.txt
# owner: MeinUser
# group: MeineGruppe
user::rw-
group::r--
other::r--
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE# umask
0022
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE# cat /etc/samba/smb.conf
#======================= Global Settings =======================
[global]
# log level = 3
workgroup = WORKGROUP
server min protocol = smb3
server string = MeinServer
server role = standalone server
interfaces = 172.16.XX.15
bind interfaces only = yes
log file = /var/log/samba/log.%m
max log size = 1000
logging = file
panic action = /usr/share/samba/panic-action %d
security = USER
obey pam restrictions = yes
unix password sync = yes
unix extensions = no
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
disable netbios = yes
pam password change = yes
usershare allow guests = no
map to guest = Bad User
idmap config * : backend = tdb
#======================= Share Definitions =======================
[DATEN]
path = /STORAGE/DATEN
comment = DATEN-Verzeichnis
browseable = yes
read only = no
guest ok = no
guest only = no
create mask = 0000
directory mask = 0000
force create mode = 0664
force directory mode = 0775
force group = MeineGruppe
writeable = yes
valid users = @MeineGruppe
write list = @MeineGruppe
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
root@MeinServer:/STORAGE#
|
|
chr123
Anmeldungsdatum: 19. Juli 2018
Beiträge: 1632
|
Merkwürdig. Du meldest dich in Windows mit einem Benutzer aus der Gruppe "MeineGruppe" beim Share "Daten" an und erstellst eine Datei. Die Datei kriegt zumindest die richtigen Besitzer / Gruppe, aber die Rechte passen nicht, obwohl die Parameter in der smb.conf eigentlich lassen. Kannst du in die Freigabe noch mal explizit folgendes aufnehmen: create mask = 0000
force create mode = 0664
directory mask = 0000
force directory mode = 0775
inherit acls = No
inherit owner = no
inherit permissions = No Ich rechne gleich noch mal nach, ob create mask / directory mask 0000 hier evtl nicht greift.
|
skywatcher78
(Themenstarter)
Anmeldungsdatum: 29. Juli 2008
Beiträge: 95
|
Das hier habe ich mal in die Definition des Shares gepastet. chr123 schrieb: inherit acls = No
inherit owner = no
inherit permissions = No
Bei einem erneuten Test ergab sich aber gleichbleibendes Ergebnis. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 | root@MeinServer:/STORAGE/DATEN#
root@MeinServer:/STORAGE/DATEN# nano /etc/samba/smb.conf
root@MeinServer:/STORAGE/DATEN#
root@MeinServer:/STORAGE/DATEN# systemctl restart smbd.service
root@MeinServer:/STORAGE/DATEN#
root@MeinServer:/STORAGE/DATEN#
root@MeinServer:/STORAGE/DATEN# ls -lha
total 16
drwxrwxrwx 4 root MeineGruppe 4096 Sep 21 16:14 ./
drwxr-xr-x 5 root root 4096 Sep 20 12:44 ../
drwxr-xr-x 2 MeinUser MeineGruppe 4096 Sep 21 13:02 testdir1/
drwxr-xr-x 2 MeinUser MeineGruppe 4096 Sep 21 16:14 testdir2/
-rw-r--r-- 1 MeinUser MeineGruppe 0 Sep 21 13:03 testfile1.txt
-rw-r--r-- 1 MeinUser MeineGruppe 0 Sep 21 16:14 testfile2.txt
root@MeinServer:/STORAGE/DATEN#
root@MeinServer:/STORAGE/DATEN#
root@MeinServer:/STORAGE/DATEN#
root@MeinServer:/STORAGE/DATEN# getfacl testdir2
# file: testdir2
# owner: MeinUser
# group: MeineGruppe
user::rwx
group::r-x
other::r-x
root@MeinServer:/STORAGE/DATEN#
root@MeinServer:/STORAGE/DATEN#
root@MeinServer:/STORAGE/DATEN# getfacl testfile2.txt
# file: testfile2.txt
# owner: MeinUser
# group: MeineGruppe
user::rw-
group::r--
other::r--
root@MeinServer:/STORAGE/DATEN#
root@MeinServer:/STORAGE/DATEN#
|
|
chr123
Anmeldungsdatum: 19. Juli 2018
Beiträge: 1632
|
Ändere mal den Parameter
obey pam restrictions = yes
zu
obey pam restrictions = no .
|
skywatcher78
(Themenstarter)
Anmeldungsdatum: 29. Juli 2008
Beiträge: 95
|
Jawoll, chr123 schrieb: Ändere mal den Parameter
obey pam restrictions = yes
zu
obey pam restrictions = no .
das war dann wohl der ausschlaggebende Parameter.
Bin vorhin auch drüber "gestolpert", wollte aber erstmal Deine weiteren Ideen abwarten.
Jetzt werde ich den Parameter erstmal googlen.
Wo der Parameter herkommt ist jetzt übrigens auch ganz klar: Ich habe die originale smb.conf, die im Paket mit installiert wird, als "skeleton" genommen und etwas angepasst. Hier meine Ausgabe: 1
2
3
4
5
6
7
8
9
10
11
12
13 | root@MeinServer:/STORAGE/DATEN#
root@MeinServer:/STORAGE/DATEN# ls -lha
total 20
drwxrwxrwx 5 root MeineGruppe 4096 Sep 21 16:33 ./
drwxr-xr-x 5 root root 4096 Sep 20 12:44 ../
drwxr-xr-x 2 MeinUser MeineGruppe 4096 Sep 21 13:02 testdir1/
drwxr-xr-x 2 MeinUser MeineGruppe 4096 Sep 21 16:14 testdir2/
drwxrwxr-x 2 MeinUser MeineGruppe 4096 Sep 21 16:33 testdir3/
-rw-r--r-- 1 MeinUser MeineGruppe 0 Sep 21 13:03 testfile1.txt
-rw-r--r-- 1 MeinUser MeineGruppe 0 Sep 21 16:14 testfile2.txt
-rw-rw-r-- 1 MeinUser MeineGruppe 0 Sep 21 16:33 testfile3.txt
root@MeinServer:/STORAGE/DATEN#
root@MeinServer:/STORAGE/DATEN#
|
Wahnsinn. Vielen Dank für den Fingerzeig!
Wie bist Du darauf gekommen? EDIT: Google sagt z.B., dass der Parameter auf "no" defaulted. Eine andere Seite sagt, dass schon bei Ubuntu 14.04 der Wert per default auf "yes" steht.
https://www.dirk-hagedorn.de/?p=1348
|
chr123
Anmeldungsdatum: 19. Juli 2018
Beiträge: 1632
|
Da deine Beobachtung nicht dem Standard entsprach, habe ich geguckt, bei welchen Parametern du etwas individuelles hattest. Deswegen bin ich drauf gekommen. Du kannst übrigens den Paramter in der smb.conf auskommentieren und dann mit
testparm -vs | grep 'obey pam restrictions'
den Default abfragen.
|
skywatcher78
(Themenstarter)
Anmeldungsdatum: 29. Juli 2008
Beiträge: 95
|
Das testparm Ergebnis (bei auskommentierter Zeile) ist dann der Samba-Default, die Konfigurationszeile "yes" ist Ubuntu Default. So verstehe ich das gerade. Richtig?
Warum macht Ubuntu sowas, und scheinbar auch schon seit längerem? Finde ich jetzt nicht so richtig scharf... Nebenbei: Glückwunsch zum 1.000 Beitrag!
Und nochmal vielen Dank für Deine Hilfe. Ohne Dich hätte ich nochmal locker einen oder zwei weitere Tage damit verbracht. Danke danke!
|