Age | Commit message (Collapse) | Author | Files | Lines |
|
-------------------------------------------------------------------------
I think there are basically two problem:
1. Windows clients do not always send ACEs for SMB_ACL_USER_OBJ, SMB_ACL_GROUP_OBJ,
and SMB_ACL_OTHER.
The function ensure_canon_entry_valid() is prepared for that, but tries
to "guess" values from group or other permissions, respectively, otherwise
falling back to minimum r-- for the owner. Even if the owner had full
permissions before setting ACL. This is the problem with W2k clients.
2. Function set_nt_acl() always chowns *before* attempting to set POSIX ACLs.
This is ok in a take-ownership situation, but must fail if the file is
to be given away. This is the problem with XP clients, trying to transfer
ownership of the original file to the temp file.
The problem with NT4 clients (no ACEs are transferred to the temp file, thus
are lost after moving the temp file to the original name) is a client problem.
It simply doesn't attempt to.
I have played around with that using posic_acls.c from 3.0 merged into 2.2.
As a result I can now present two patches, one for each branch. They
basically modify:
1. Interpret missing SMB_ACL_USER_OBJ, SMB_ACL_GROUP_OBJ, or SMB_ACL_OTHER
as "preserve current value" instead of attempting to build one ourself.
The original code is still in, but only as fallback in case current values
can't be retrieved.
2. Rearrange set_nt_acl() such that chown is only done before setting
ACLs if there is either no change of owning user, or change of owning
user is towards the current user. Otherwise chown is done after setting
ACLs.
It now seems to produce reasonable results. (Well, as far as it can. If
NT4 doesn't even try to transfer ACEs, only deliberate use of named default
ACEs and/or "force group" or the crystal ball can help :)
-------------------------------------------------------------------------
Jeremy.
(This used to be commit 1d3b8c528bebfa1971d1affe454a03453335786e)
|
|
(This used to be commit 38fa2898967f607a17fd7fbd324f2940a05fb551)
|
|
Changed "SMB/Netbios" to "SMB/CIFS" in file header.
(This used to be commit 6a58c9bd06d0d7502a24bf5ce5a2faf0a146edfa)
|
|
the need for valid.dat
(This used to be commit 0cfd0a5e543181b1384f7afee93fbaf3ccb2b999)
|
|
(This used to be commit 51cb4411df61d1caec9d84809b1a53a6a632f808)
|
|
warnings)
(This used to be commit b648cc669d16eb40b477c8dc51efeab485a15de5)
|
|
char like libiconv does
(This used to be commit e13e8b190c70136cb2c3588bdcf7328a7f61d152)
|
|
(This used to be commit 60e907b7e8e1c008463a88ed2b076344278986ef)
|
|
which should now be used instead of DEBUG(0) or printf() for
interactive messages
I have only converted client.c to use d_printf(), and the code hasn't
had much testing yet. Eventually we want all interactive code to use
d_printf(), plus SWAT
(This used to be commit 266d8e67669adb329f25676c4bc4d4c50f223428)
|
|
fixes some problems wih some character sets and allows for using
internal charsets in conjunction with ionv charsets
this makes us slower but more correct. speed will come later.
(This used to be commit 594f84b4e39182dcf344c02dc0185376a2726395)
|
|
(This used to be commit e236a3e29e4af24b20ec6af357ce67abf82b4528)
|
|
(This used to be commit 95a9a1814f1a1ac07c316cc920c7493a86d5a09b)
|
|
(This used to be commit 25c4b3f19315bdef57041da79c12271b72015701)
|
|
(This used to be commit 0c61e54f152eca6b7607fcce9ea512bc60a19060)
|
|
(This used to be commit 42648a7aada48220fdfaf6acfe95b9614122f1da)
|
|
(This used to be commit 76d83e7f704cf016308dccaad9bc42d57db97686)
|
|
(This used to be commit bf818268516cfbebcdeacbb0528395e9bbb8e442)
|
|
(This used to be commit 7a5c24c219d8b19f2c3cd11fdde3ebcede0646a2)
|
|
(This used to be commit 815ca752744c2ae93390445f4bb6532d396bbc59)
|
|
This commit gets rid of all our old codepage handling and replaces it with
iconv. All internal strings in Samba are now in "unix" charset, which may
be multi-byte. See internals.doc and my posting to samba-technical for
a more complete explanation.
(This used to be commit debb471267960e56005a741817ebd227ecfc512a)
|