ubuntuusers.de

Samba 4.11.6 / create mask / force create mode

Status: Gelöst | Ubuntu-Version: Server 20.04 (Focal Fossa)
Antworten |

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:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
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!

1
2
3
4
5
6
7
8
9
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!

Antworten |