Srikar Somineni
2017-May-31 16:02 UTC
[Samba] Unable_to_migrate_shares_from_AD_to_file_server
Hi All,
I am trying to migrate shares from my Win2k12 R2 AD
server(SJCLAB2.LOCAL) to Ubuntu 16.04 samba fileserver present in same
domain. Samba version is 4.3.11-Ubuntu.
Before migrating shares I was able to successfully join fileserver to
Active Directory.
Below is my samba server configuration.
#======================= Global Settings ======================
[global]
workgroup = SJCLAB2
security = ADS
realm = SJCLAB2.LOCAL
wins server = SJCLAB2.LOCAL
password server = SJCLAB2.LOCAL
server string = %h server (Samba, Ubuntu)
domain master = no
local master = no
preferred master = no
printcap name = /etc/printcap
load printers = no
dns proxy = no
interfaces = 127.0.0.0/8 ens4
bind interfaces only = yes
log file = /var/log/samba/log.%m
log level = 10
max log size = 1000
panic action = /usr/share/samba/panic-action %d
server role = member server
passdb backend = tdbsam
map untrusted to domain = Yes
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n
*Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
############ Misc ############
template shell = /bin/bash
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
restrict anonymous = 2
idmap config *:backend = tdb
idmap config *:range = 10000-20000
winbind enum users = yes
winbind enum groups = yes
# This way users log in with username instead of username at example.org
winbind use default domain = yes
# Inherit groups in groups
winbind nested groups = yes
winbind refresh tickets = yes
winbind offline logon = true
# Allow users who've been granted usershare privileges to create
# public shares, not just authenticated ones
usershare allow guests = no
[sjc_demouser2] -------------------->Share present on AD and create on
file server
browseable = yes
users=@SJCLAB2/administrator
force unknown acl user = yes
writable = yes
create mask = 0700
directory mask = 0770
acl group control = yes
acl check permissions = True
nt acl support = yes
force directory security mode = 770
inherit permissions = yes
inherit acls = yes
inherit owner = no
map acl inherit = yes
path = /home/sjc_demouser2
dos filemode = yes
vfs objects = acl_xattr
After joining I tried to migrate shares on my AD to fileserver using "net
rpc" while preserving acls with the below command.
#net rpc share migrate shares sjc_demouser2 -U administrator -S
sjclab2.local --destination=localhost --acls -v -d=10
After running the above command I got the error
*"*WERR_ACCESS_DENIED*".*
Below is the snippet of debug message that got generated.
rpc_api_pipe: host localhost
signed SMB2 message
rpc_read_send: data_to_read: 20
r: struct ncacn_packet
rpc_vers : 0x05 (5)
rpc_vers_minor : 0x00 (0)
ptype : DCERPC_PKT_RESPONSE (2)
pfc_flags : 0x03 (3)
1: DCERPC_PFC_FLAG_FIRST
1: DCERPC_PFC_FLAG_LAST
0: DCERPC_PFC_FLAG_PENDING_CANCEL_OR_HDR_SIGNING
0: DCERPC_PFC_FLAG_CONC_MPX
0: DCERPC_PFC_FLAG_DID_NOT_EXECUTE
0: DCERPC_PFC_FLAG_MAYBE
0: DCERPC_PFC_FLAG_OBJECT_UUID
drep: ARRAY(4)
[0] : 0x10 (16)
[1] : 0x00 (0)
[2] : 0x00 (0)
[3] : 0x00 (0)
frag_length : 0x0024 (36)
auth_length : 0x0000 (0)
call_id : 0x00000008 (8)
u : union dcerpc_payload(case 2)
response: struct dcerpc_response
alloc_hint : 0x0000000c (12)
context_id : 0x0000 (0)
cancel_count : 0x00 (0)
_pad : DATA_BLOB length=1
[0000] 00 .
stub_and_verifier : DATA_BLOB length=12
[0000] 1C 00 02 00 00 00 00 00 05 00 00 00 ........ ....
Got pdu len 36, data_len 12
rpc_api_pipe: got frag len of 36 at offset 0: NT_STATUS_OK
rpc_api_pipe: host localhost returned 12 bytes.
srvsvc_NetShareAdd: struct srvsvc_NetShareAdd
out: struct srvsvc_NetShareAdd
parm_error : *
parm_error : 0x00000000 (0)
result : WERR_ACCESS_DENIED
cannot add share: WERR_ACCESS_DENIED
signed SMB2 message
rpc command function failed! (NT_STATUS_ACCESS_DENIED)
signed SMB2 message
return code = -1
Freeing parametrics:
Later I tried "net rpc share migrate files"
#net rpc share migrate files sjc_demouser2 -U administrator -S
sjclab2.local destination=localhost --acls -v -d=10
Observed that I was able to migrate files from my AD share to fileserver
share but when directories are migrated, I got the error
"NT_STATUS_REVISION_MISMATCH "
Below is the snippet of debug message that got generated.
signed SMB2 message
signed SMB2 message
signed SMB2 message
signed SMB2 message
signed SMB2 message
got mask: \*, name: tst
got dir: tst
opening dir \tst on originating server
signed SMB2 message
creating dir \tst on the destination server
signed SMB2 message
signed SMB2 message
cannot check for directory \tst: NT_STATUS_REVISION_MISMATCH
signed SMB2 message
signed SMB2 message
listing \* failed with error: NT_STATUS_REVISION_MISMATCH
could not handle files for share: sjc_demouser2
rpc command function failed! (NT_STATUS_REVISION_MISMATCH)
signed SMB2 message
return code = -1
Freeing parametrics:
Can someone please tell me why I was unable to migrate shares using net rpc
and got error "WERR_ACCESS_DENIED"?
Also please tell me why I got an error "NT_STATUS_REVISION_MISMATCH"
when
migrate files command was run on share containing directories?
Please excuse me for the lengthy text.Thanks in advance.
Regards,
S.Srikar.
Rowland Penny
2017-May-31 16:29 UTC
[Samba] Unable_to_migrate_shares_from_AD_to_file_server
On Wed, 31 May 2017 21:32:32 +0530 Srikar Somineni via samba <samba at lists.samba.org> wrote:> Hi All, > I am trying to migrate shares from my Win2k12 R2 AD > server(SJCLAB2.LOCAL) to Ubuntu 16.04 samba fileserver present in same > domain. Samba version is 4.3.11-Ubuntu. > Before migrating shares I was able to successfully join fileserver to > Active Directory. > > Below is my samba server configuration. > #======================= Global Settings ======================> > [global] > > > workgroup = SJCLAB2 > security = ADS > realm = SJCLAB2.LOCAL > wins server = SJCLAB2.LOCAL > password server = SJCLAB2.LOCAL > server string = %h server (Samba, Ubuntu) > domain master = no > local master = no > preferred master = no > printcap name = /etc/printcap > load printers = no > dns proxy = no > interfaces = 127.0.0.0/8 ens4 > bind interfaces only = yes > log file = /var/log/samba/log.%m > log level = 10 > max log size = 1000 > panic action = /usr/share/samba/panic-action %d > server role = member server > passdb backend = tdbsam > map untrusted to domain = Yes > obey pam restrictions = yes > unix password sync = yes > passwd program = /usr/bin/passwd %u > passwd chat = *Enter\snew\s*\spassword:* %n\n > *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . > pam password change = yes > map to guest = bad user > > ############ Misc ############ > template shell = /bin/bash > client use spnego = yes > client ntlmv2 auth = yes > encrypt passwords = yes > restrict anonymous = 2 > idmap config *:backend = tdb > idmap config *:range = 10000-20000 > winbind enum users = yes > winbind enum groups = yes > # This way users log in with username instead of > username at example.org winbind use default domain = yes > # Inherit groups in groups > winbind nested groups = yes > winbind refresh tickets = yes > winbind offline logon = true > > # Allow users who've been granted usershare privileges to create > # public shares, not just authenticated ones > usershare allow guests = no > > [sjc_demouser2] -------------------->Share present on AD and > create on file server > browseable = yes > users=@SJCLAB2/administrator > force unknown acl user = yes > writable = yes > create mask = 0700 > directory mask = 0770 > acl group control = yes > acl check permissions = True > nt acl support = yes > force directory security mode = 770 > inherit permissions = yes > inherit acls = yes > inherit owner = no > map acl inherit = yes > path = /home/sjc_demouser2 > dos filemode = yes > vfs objects = acl_xattr > >You seem to have several problems with your smb.conf You seem to be trying to put all your users and groups into the '*' domain, this is meant for the BUILTIN users etc. You have 'unix password sync = yes' , why ? You cannot have users in /etc/passwd and AD, they have to be in AD, so this line is not required. You have 'users=@SJCLAB2/administrator' in the share, Administrator is a Windows user and should be mapped to the Unix user 'root' by a user.map by a line in the [global] part of smb.conf You would be better off setting the ACLs on the share from Windows, you wouldn't need all those extraneous lines. Can I suggest that you spend sometime reading the Samba wiki: https://wiki.samba.org/index.php/Main_Page Rowland