bugblatterbeast
Anmeldungsdatum: 30. Januar 2008
Beiträge: 455
|
Hallo Zusammen, ZUSTAND: Samba läuft auf unserem Server im Standalone-Modus (keine Domäne) und ist so konfiguriert, dass Dateien und Ordner automatisch mit den richtigen Zugriffsrechten erstellt werden. Je nach Freigabe entscheidet sich, welche Zugriffsrechte die Gruppe und andere haben sollen. Das funktioniert alles einwandfrei. Leider ist es so, dass es eine Client Software gibt, die nach dem Öffnen einer bestimmten Datei, der Gruppe die Schreibrechte entzieht und nicht wieder zurück gibt. Zweifellos liegt das Fehlverhalten bei dieser Client-Software aber es besteht nicht die geringste Hoffnung, da etwas ändern zu können. TEMPORÄRE LÖSUNG: Im Moment läuft ein Cronjob, der die Zugriffsrechte dieser Datei regelmäßig wieder herstellt. FRAGE: Kennt jemand von Euch eine Möglichkeit, Änderungen an den Zugriffsrechten zu verbieten (wenn Schreibrecht besteht)? Also fest definierte, unveränderbare Zugriffsrechte für einen Ordner anzuwenden? BISHERIGE ÜBERLEGUNGEN: In der Samba-Konfiguration sehe ich keine Möglichkeit mehr, denn die Option "force create mode" wirkt sich leider nur auf das Erstellen von Dateien aber nicht auf Änderungen der Zugriffsrechte aus (auch wenn die nicht mehr aktuelle Dokumentation veralteter Samba-Versionen nahelegt, dass das früher mal anders war "This option sets the permission bits that Samba will set when a file permission change is made."). Vielleicht habe ich aber noch irgendeinen Trick übersehen. Auf Dateisystem-Ebene sind möglicher Weise noch nicht alle Optionen ausgeschöpft (auf ein veraltetes Dateisystem zu wechseln, dass keine Zugriffsrechte unterstützt, wäre aber keine akzeptable Lösung). Kann man vielleicht mit einer speziellen bind-mount Konfiguration etwas machen (schreiben muss weiterhin möglich bleiben)? Ich bin für alle Vorschläge und Anregungen dankbar
Gruß
bbb
|
chr123
Anmeldungsdatum: 19. Juli 2018
Beiträge: 1632
|
Das ein Client eine Änderung vornimmt, die die Rechte auf dem Server ändert, ist ungewöhnlich und soweit ich weiß auch nur mit den cifs unix extensions möglich. Allerdings gibt es die unix extensions noch nicht für die cifs Protollversion SMB2 und höher. Wie bindest du die Freigabe denn ein? Evtl. reicht auf dem Server die Heraufsetzung auf SMB2:
| server min protocol = SMB2
|
|
bugblatterbeast
(Themenstarter)
Anmeldungsdatum: 30. Januar 2008
Beiträge: 455
|
Hallo chr123, vielen Dank für Deine Antwort. Ich muss leider meine vorige Aussage noch mal revidieren. Wie es aussieht habe ich die Schuld in der falschen Abstraktionsebene gesucht. Bei erneuter Überprüfung hat sich herausgestellt, dass die Dateien doch nicht mehr richtig angelegt wurden. Die Optionen "create mask", "directory mask", "force create mode" und "force directory mode" wurden plötzlich zwar nicht komplett ignoriert aber es war kein Schreibrecht mehr für Gruppe und Andere möglich. 755 war das höchste was ich setzen konnte. Ursache war: Ich hatte gerade kürzlich bei einem Update einen merge der Konfigurationsdatei mit der Dist-Version gemacht und nicht darauf geachtet, dass dabei die Option "obey pam restrictions" auf yes gesetzt wurde. Derart wichtige Dinge sollte man nicht um ein Uhr nachts machen, wann lerne ich das endlich... Viele Grüße
bbb - Trotzdem möchte ich gerne noch auf Deinen Vorschlag und Deine Fragen eingehen: Ich kann von meinem Linux-Client aus keine Änderung an den Benutzerrechten vornehmen. Von einem Windows-10 Client aus ist es aber möglich. Allerdings kann dann anscheinend nur zwischen 0777+ und 0755 gewechselt werden. Das habe ich aber nicht selbst ausprobiert, sondern ich habe einen Kollegen vor Ort das machen lassen. Ich selbst bin über vpn verbunden und habe leider keinen derartigen Client zur Verfügung um das ausprobieren zu können. Ob es mit dem Windows Client immer noch möglich ist, wenn ich den von Dir vorgeschlagenen Wert ändere, habe ich nicht ausprobiert. Was die cifs_unix_extensions betrifft, habe ich keine Einstellungen gemacht. Da wäre also der Default-Wert interessant. Hier ist der relevante Teil der Ausgabe von testparm einschließlich der Fehlerursache "obey pam restrictions = Yes" (Informationen über irrelevante Freigaben habe ich gelöscht):
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 | root@fileserver:~# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[shared]"
Loaded services file OK.
WARNING: You have some share names that are longer than 12 characters.
These may not be accessible to some older clients.
(Eg. Windows9x, WindowsMe, and smbclient prior to Samba 3.0.)
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
# Global parameters
[global]
dns proxy = No
log file = /var/log/samba/log.%m
max log size = 1000
obey pam restrictions = Yes
pam password change = Yes
panic action = /usr/share/samba/panic-action %d
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
passwd program = /usr/bin/passwd %u
server role = standalone server
server string = %h server (Samba, Ubuntu)
syslog = 0
unix password sync = Yes
workgroup = WORKGROUP
idmap config * : backend = tdb
[shared]
comment = Gemeinsame Dokumente
force create mode = 0775
force directory mode = 0775
level2 oplocks = No
oplocks = No
path = /data/shared
read only = No
|
Hier ist noch mal das Gleiche aber dieses mal mit der option v, so dass Default-Werte mit angezeigt werden:
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461 | root@fileserver:~# testparm -v
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[shared]"
Loaded services file OK.
WARNING: You have some share names that are longer than 12 characters.
These may not be accessible to some older clients.
(Eg. Windows9x, WindowsMe, and smbclient prior to Samba 3.0.)
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
# Global parameters
[global]
abort shutdown script =
add group script =
add machine script =
addport command =
addprinter command =
add share command =
add user script =
add user to group script =
afs token lifetime = 604800
afs username map =
aio max threads = 100
algorithmic rid base = 1000
allow dcerpc auth level connect = No
allow dns updates = secure only
allow insecure wide links = No
allow nt4 crypto = No
allow trusted domains = Yes
allow unsafe cluster upgrade = No
async smb echo handler = No
auth event notification = No
auth methods =
auto services =
bind interfaces only = No
browse list = Yes
cache directory = /var/cache/samba
change notify = Yes
change share command =
check password script =
cldap port = 389
client ipc max protocol = default
client ipc min protocol = default
client ipc signing = default
client lanman auth = No
client ldap sasl wrapping = sign
client max protocol = default
client min protocol = CORE
client NTLMv2 auth = Yes
client plaintext auth = No
client schannel = Auto
client signing = default
client use spnego principal = No
client use spnego = Yes
cluster addresses =
clustering = No
config backend = file
config file =
create krb5 conf = Yes
ctdbd socket =
ctdb locktime warn threshold = 0
ctdb timeout = 0
cups connection timeout = 30
cups encrypt = No
cups server =
dcerpc endpoint servers = epmapper, wkssvc, rpcecho, samr, netlogon, lsarpc, drsuapi, dssetup, unixinfo, browser, eventlog6, backupkey, dnsserver
deadtime = 0
debug class = No
debug hires timestamp = Yes
debug pid = No
debug prefix timestamp = No
debug uid = No
dedicated keytab file =
default service =
defer sharing violations = Yes
delete group script =
deleteprinter command =
delete share command =
delete user from group script =
delete user script =
dgram port = 138
disable netbios = No
disable spoolss = No
dns forwarder =
dns proxy = No
dns update command = /usr/sbin/samba_dnsupdate
domain logons = No
domain master = Auto
dos charset = CP850
enable asu support = No
enable core files = Yes
enable privileges = Yes
encrypt passwords = Yes
enhanced browsing = Yes
enumports command =
eventlog list =
get quota command =
getwd cache = Yes
guest account = nobody
homedir map = auto.home
host msdfs = Yes
hostname lookups = No
idmap backend = tdb
idmap cache time = 604800
idmap gid =
idmap negative cache time = 120
idmap uid =
include system krb5 conf = Yes
init logon delay = 100
init logon delayed hosts =
interfaces =
iprint server =
keepalive = 300
kerberos encryption types = all
kerberos method = default
kernel change notify = Yes
kpasswd port = 464
krb5 port = 88
lanman auth = No
large readwrite = Yes
ldap admin dn =
ldap connection timeout = 2
ldap debug level = 0
ldap debug threshold = 10
ldap delete dn = No
ldap deref = auto
ldap follow referral = Auto
ldap group suffix =
ldap idmap suffix =
ldap machine suffix =
ldap page size = 1000
ldap passwd sync = no
ldap replication sleep = 1000
ldap server require strong auth = Yes
ldap ssl = start tls
ldap ssl ads = No
ldap suffix =
ldap timeout = 15
ldap user suffix =
lm announce = Auto
lm interval = 60
load printers = Yes
local master = Yes
lock directory = /var/run/samba
lock spin time = 200
log file = /var/log/samba/log.%m
logging =
log level = 2
log nt token command =
logon drive =
logon home = \\%N\%U
logon path = \\%N\%U\profile
logon script =
log writeable files on exit = No
lpq cache time = 30
lsa over netlogon = No
machine password timeout = 604800
mangle prefix = 1
mangling method = hash2
map to guest = Never
map untrusted to domain = Auto
max disk size = 0
max log size = 1000
max mux = 50
max open files = 16384
max smbd processes = 0
max stat cache size = 256
max ttl = 259200
max wins ttl = 518400
max xmit = 16644
message command =
min receivefile size = 0
min wins ttl = 21600
mit kdc command =
multicast dns register = Yes
name cache timeout = 660
name resolve order = lmhosts wins host bcast
nbt client socket address = 0.0.0.0
nbt port = 137
ncalrpc dir = /var/run/samba/ncalrpc
netbios aliases =
netbios name = FILESERVER
netbios scope =
neutralize nt4 emulation = No
NIS homedir = No
nmbd bind explicit broadcast = Yes
nsupdate command = /usr/bin/nsupdate -g
ntlm auth = ntlmv2-only
nt pipe support = Yes
ntp signd socket directory = /var/lib/samba/ntp_signd
nt status support = Yes
null passwords = No
obey pam restrictions = Yes
old password allowed period = 60
oplock break wait time = 0
os2 driver map =
os level = 20
pam password change = Yes
panic action = /usr/share/samba/panic-action %d
passdb backend = tdbsam
passdb expand explicit = No
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
passwd chat debug = No
passwd chat timeout = 2
passwd program = /usr/bin/passwd %u
password hash gpg key ids =
password hash userPassword schemes =
password server = *
perfcount module =
pid directory = /var/run/samba
preferred master = Auto
preload modules =
printcap cache time = 750
printcap name =
private dir = /var/lib/samba/private
raw NTLMv2 auth = No
read raw = Yes
realm =
registry shares = No
reject md5 clients = No
reject md5 servers = No
remote announce =
remote browse sync =
rename user script =
require strong key = Yes
reset on zero vc = No
restrict anonymous = 0
rndc command = /usr/sbin/rndc
root directory =
rpc big endian = No
rpc server dynamic port range = 49152-65535
rpc server port = 0
samba kcc command = /usr/sbin/samba_kcc
security = AUTO
server max protocol = SMB3
server min protocol = LANMAN1
server multi channel support = No
server role = standalone server
server schannel = Auto
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, dns
server signing = default
server string = %h server (Samba, Ubuntu)
set primary group script =
set quota command =
share backend = classic
show add printer wizard = Yes
shutdown script =
smb2 leases = Yes
smb2 max credits = 8192
smb2 max read = 8388608
smb2 max trans = 8388608
smb2 max write = 8388608
smbd profiling level = off
smb passwd file = /etc/samba/smbpasswd
smb ports = 445 139
socket options = TCP_NODELAY
spn update command = /usr/sbin/samba_spnupdate
stat cache = Yes
state directory = /var/lib/samba
svcctl list =
syslog = 0
syslog only = No
template homedir = /home/%D/%U
template shell = /bin/false
time server = No
timestamp logs = Yes
tls cafile = tls/ca.pem
tls certfile = tls/cert.pem
tls crlfile =
tls dh params file =
tls enabled = Yes
tls keyfile = tls/key.pem
tls priority = NORMAL:-VERS-SSL3.0
tls verify peer = as_strict_as_possible
unicode = Yes
unix charset = UTF-8
unix extensions = Yes
unix password sync = Yes
use mmap = Yes
username level = 0
username map =
username map cache time = 0
username map script =
usershare allow guests = No
usershare max shares = 100
usershare owner only = Yes
usershare path = /var/lib/samba/usershares
usershare prefix allow list =
usershare prefix deny list =
usershare template share =
use spnego = Yes
utmp = No
utmp directory =
web port = 901
winbind cache time = 300
winbindd socket directory = /var/run/samba/winbindd
winbind enum groups = No
winbind enum users = No
winbind expand groups = 0
winbind max clients = 200
winbind max domain connections = 1
winbind nested groups = Yes
winbind normalize names = No
winbind nss info = template
winbind offline logon = No
winbind reconnect delay = 30
winbind refresh tickets = No
winbind request timeout = 60
winbind rpc only = No
winbind sealed pipes = Yes
winbind separator = \
winbind trusted domains only = No
winbind use default domain = No
wins hook =
wins proxy = No
wins server =
wins support = No
workgroup = WORKGROUP
write raw = Yes
wtmp directory =
idmap config * : backend = tdb
access based share enum = No
acl allow execute always = No
acl check permissions = Yes
acl group control = No
acl map full control = Yes
administrative share = No
admin users =
afs share = No
aio read size = 0
aio write behind =
aio write size = 0
allocation roundup size = 1048576
available = Yes
blocking locks = Yes
block size = 1024
browseable = Yes
case sensitive = Auto
comment =
copy =
create mask = 0744
csc policy = manual
cups options =
default case = lower
default devmode = Yes
delete readonly = No
delete veto files = No
dfree cache time = 0
dfree command =
directory mask = 0755
directory name cache size = 100
dmapi support = No
dont descend =
dos filemode = No
dos filetime resolution = No
dos filetimes = Yes
durable handles = Yes
ea support = No
fake directory create times = No
fake oplocks = No
follow symlinks = Yes
force create mode = 0000
force directory mode = 0000
force group =
force printername = No
force unknown acl user = No
force user =
fstype = NTFS
guest ok = No
guest only = No
hide dot files = Yes
hide files =
hide special files = No
hide unreadable = No
hide unwriteable files = No
hosts allow =
hosts deny =
include =
inherit acls = No
inherit owner = no
inherit permissions = No
invalid users =
kernel oplocks = No
kernel share modes = Yes
level2 oplocks = Yes
locking = Yes
lppause command =
lpq command = %p
lpresume command =
lprm command =
magic output =
magic script =
mangled names = yes
mangling char = ~
map acl inherit = No
map archive = Yes
map hidden = No
map readonly = yes
map system = No
max connections = 0
max print jobs = 1000
max reported print jobs = 0
min print space = 0
msdfs proxy =
msdfs root = No
msdfs shuffle referrals = No
nt acl support = Yes
ntvfs handler = unixuid, default
oplock contention limit = 2
oplocks = Yes
path =
posix locking = Yes
postexec =
preexec =
preexec close = No
preserve case = Yes
printable = No
print command =
printer name =
printing = cups
printjob username = %U
print notify backchannel = No
profile acls = No
queuepause command =
queueresume command =
read list =
read only = Yes
root postexec =
root preexec =
root preexec close = No
short preserve case = Yes
smb encrypt = default
spotlight = No
store dos attributes = No
strict allocate = No
strict locking = Auto
strict rename = No
strict sync = Yes
sync always = No
use client driver = No
use sendfile = No
valid users =
veto files =
veto oplock files =
vfs objects =
volume =
wide links = No
write cache size = 0
write list =
[shared]
comment = Gemeinsame Dokumente
force create mode = 0775
force directory mode = 0775
level2 oplocks = No
oplocks = No
path = /data/shared
read only = No
|
Zur cifs_unix_extensions kann ich keine Informationen finden.
|
chr123
Anmeldungsdatum: 19. Juli 2018
Beiträge: 1632
|
Zur cifs_unix_extensions kann ich keine Informationen finden.
Das wäre der relevante Teil:
| root@fileserver:~# testparm -v
server max protocol = SMB3
server min protocol = LANMAN1
unix extensions = Yes
|
Die unix extensions sind also aktiv. D.h. wenn du dich mit deinem Linux-Client und cifs Protokollversion 1 (NT1) mit dem Server verbindest, solltest du auch die Rechte auf dem Server ändern können. Warum sich Windows anders verhält, kann ich nicht sagen. Ich vermute aber, dass hier kein Mapping erfolgen muss. Ich persönlich würde die Version auf SMB2 hochziehen (server min protocol = SMB2 ).
Derart wichtige Dinge sollte man nicht um ein Uhr nachts machen, wann lerne ich das endlich...
Das stimmt wohl. 😉
|