[Samba] Samba shared folders and windows 7 permissions dialog.
PF4Public
PF4Public at mail.ru
Mon Mar 20 17:11:25 UTC 2017
Hi there
Trying to solve an issue with samba and windows 7 permissions dialog. Problem is that
sometimes windows 7 permissions dialog is lacking ldap users and groups.
Looks like my problem is related to this one:
https://forums.freenas.org/index.php?threads/users-and-groups-not-showing-up-in-windows-7.46023/
Sadly there is no solution in that thread.
Consider the following setup: linux debian with samba and ldap and several windows 7
hosts. Ldap has user named "test" for my tests.
Test 1
Open test users home via samba: "\\samba\test" in windows 7 explorer. Create any
files/folders there and open permissions dialog, switch to advanced user search. It does
show ldap users and groups on one windows 7 host, but surprisingly does not on another
windows 7 host even though both connect as user "test".
Test 2
Make sure that locally-logged in user belongs to local administrators group. Same result
as with Test 1. One windows host shows all the users and groups from ldap, the other one
does not. Even though that both hosts are logged in with local administrator account and
connecting as same "test" user to samba.
Test 3
Lets take successful windows host and relogin to limited account. Now permissions dialog
also lacks ldap users and groups. Elevating explorer.exe does not help by the way.
Test 4
Make samba more verbose: "log level = 10". Repeat the Test 1. I was overwhelmed while
reading and comparing logfiles, but I notice a subtle difference there:
successful windows host generates:
[2017/03/20 19:22:05.622880, 5, pid=20151, effective(10000, 10002), real(10000, 0)]
../source3/auth/token_util.c:639(debug_unix_user_token)
UNIX token of user 10000
Primary group is 10002 and contains 1 supplementary groups
Group[ 0]: 10002
[2017/03/20 19:22:05.622904, 5, pid=20151, effective(10000, 10002), real(10000, 0)]
../source3/smbd/uid.c:452(smbd_become_authenticated_pipe_user)
Impersonated user: uid=(10000,10000), gid=(0,10002)
[2017/03/20 19:22:05.622917, 5, pid=20151, effective(10000, 10002), real(10000, 0),
class=rpc_srv] ../source3/rpc_server/srv_pipe.c:1404(api_pipe_request)
Requested samr rpc service
[2017/03/20 19:22:05.622929, 4, pid=20151, effective(10000, 10002), real(10000, 0),
class=rpc_srv] ../source3/rpc_server/srv_pipe.c:1429(api_rpcTNP)
api_rpcTNP: samr op 0x7 - api_rpcTNP: rpc command: SAMR_OPENDOMAIN
[2017/03/20 19:22:05.622942, 6, pid=20151, effective(10000, 10002), real(10000, 0),
class=rpc_srv] ../source3/rpc_server/srv_pipe.c:1469(api_rpcTNP)
api_rpc_cmds[7].fn == 0x7fa14a7c6ed0
[2017/03/20 19:22:05.622956, 1, pid=20151, effective(10000, 10002), real(10000, 0)]
../librpc/ndr/ndr.c:450(ndr_print_function_debug)
samr_OpenDomain: struct samr_OpenDomain
in: struct samr_OpenDomain
connect_handle : *
connect_handle: struct policy_handle
handle_type : 0x00000000 (0)
uuid : 00000021-0000-0000-d058-ad01b74e0000
access_mask : 0x00000304 (772)
0: SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1
0: SAMR_DOMAIN_ACCESS_SET_INFO_1
1: SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2
0: SAMR_DOMAIN_ACCESS_SET_INFO_2
0: SAMR_DOMAIN_ACCESS_CREATE_USER
0: SAMR_DOMAIN_ACCESS_CREATE_GROUP
0: SAMR_DOMAIN_ACCESS_CREATE_ALIAS
0: SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS
1: SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS
1: SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT
0: SAMR_DOMAIN_ACCESS_SET_INFO_3
While the other gives:
[2017/03/20 18:51:48.939208, 5, pid=4553, effective(10000, 10002), real(10000, 0)]
../source3/auth/token_util.c:639(debug_unix_user_token)
UNIX token of user 10000
Primary group is 10002 and contains 1 supplementary groups
Group[ 0]: 10002
[2017/03/20 18:51:48.939236, 5, pid=4553, effective(10000, 10002), real(10000, 0)]
../source3/smbd/uid.c:452(smbd_become_authenticated_pipe_user)
Impersonated user: uid=(10000,10000), gid=(0,10002)
[2017/03/20 18:51:48.939252, 5, pid=4553, effective(10000, 10002), real(10000, 0),
class=rpc_srv] ../source3/rpc_server/srv_pipe.c:1404(api_pipe_request)
Requested samr rpc service
[2017/03/20 18:51:48.939265, 4, pid=4553, effective(10000, 10002), real(10000, 0),
class=rpc_srv] ../source3/rpc_server/srv_pipe.c:1429(api_rpcTNP)
api_rpcTNP: samr op 0x7 - api_rpcTNP: rpc command: SAMR_OPENDOMAIN
[2017/03/20 18:51:48.939281, 6, pid=4553, effective(10000, 10002), real(10000, 0),
class=rpc_srv] ../source3/rpc_server/srv_pipe.c:1469(api_rpcTNP)
api_rpc_cmds[7].fn == 0x7fa14a7c6ed0
[2017/03/20 18:51:48.939298, 1, pid=4553, effective(10000, 10002), real(10000, 0)]
../librpc/ndr/ndr.c:450(ndr_print_function_debug)
samr_OpenDomain: struct samr_OpenDomain
in: struct samr_OpenDomain
connect_handle : *
connect_handle: struct policy_handle
handle_type : 0x00000000 (0)
uuid : 00000017-0000-0000-cf58-94fac9110000
access_mask : 0x00000200 (512)
0: SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1
0: SAMR_DOMAIN_ACCESS_SET_INFO_1
0: SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2
0: SAMR_DOMAIN_ACCESS_SET_INFO_2
0: SAMR_DOMAIN_ACCESS_CREATE_USER
0: SAMR_DOMAIN_ACCESS_CREATE_GROUP
0: SAMR_DOMAIN_ACCESS_CREATE_ALIAS
0: SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS
0: SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS
1: SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT
0: SAMR_DOMAIN_ACCESS_SET_INFO_3
Is it "0: SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS" that blocks that windows host from enumerating
ldap users and groups? If that's true, then why is that happening to the same user on a
different hosts? What is the origin of struct samr_OpenDomain and how does samba derive it?
Or am I on a wrong track?
Anyway any advice on this issue is welcome.
Please help me resolve this nasty issue.
Thanks in advance.
More information about the samba
mailing list