Thursday, March 24, 2016

SMB & NFSv4 ACL mapping

Let's take a quick look at how Windows and UNIX NFSv4 ACLs can kind of co-exist. The purpose of this post is to clear out the inevitable hurdles on mapping permissions between these two systems when a UNIX system shares something to Windows via the SMB/CIFS protocol. To be honest, much of the trouble comes from the cumbersome permission flags (or its unexpected combinations and side-effects) from Windows which may in part reveal how clumsy Windows internals are (and why it's not surprising the vast amount of bugs/flaws per month that have to be patched; a nightmare).

To focus on what matters the scenario assumes no Active Directory, Kerberos, LDAP, and so on..., just plain WORKGROUP operational mode (which implies just the weak NTLM or NTLMv2 authentication mechanisms).

First I'll take at the legacy Windows NT family, then at the next-generation Windows NT family. With the former I cover the legacy and with the later I cover the more recent releases. I think Windows had a good chance by the time of these two mentioned releases, but then it seems to have lost its path amongst a vast amount of crap that was kicked into its code base. But that's not the topic of this post!
 
Windows NT 4.0 (and before - the legacy family)
Please check the details on the post NT4 & NFSv4 ACL mapping.

Windows 2000 (and later - the next-generation family)
Please check the details on the post W2K & NFSv4 ACL mapping.
 
And by the way, what's the point of this post?

Well, Windows is "viral" (sorry, just joking, forgive me) or at least it used to be a decade ago or so and it's still inevitable to interact with it at some point in time. Worse than that, it has spread it's SMB/CIFS protocol throughout the industry and there are many platforms out there which supports it, ranging from Mac laptops to high-end storage systems. And that's why Solaris 11.3 better than ever supports SMB/CIFS protocol, specially on the server side with its SMB version 2.1 implementation which, at least for file-sharing purposes, ranks Solaris 11.3 as a fast Windows 2000 Server (or Windows NT 5.0 Server) amongst other Windows boxes, which is more than enough for most purposes on this area. One silent advantage of SMB 2.1 is it's better operation over WAN, that is, links with moderate-to-high latency. On the client side, Solaris 11.3 stays as a SMB 1.0 client, but frankly, who cares?

root@box-01:/export/project# share
IPC$                      smb   -   Remote IPC
c$       /var/smb/cvol    smb   -   Default Share
Project  /export/project  smb   -