Lisa,

How will this impact desktop components like Nautilus?
Does there need to be a corresponding update?

Thanks,

John

Tim Haley wrote:
> I am sponsoring the following fast-track for Lisa Week.  It introduces
> a new reserved uid and gid for purposes of improved ACL manipulation
> when an id is not mappable by the client or server.  Requested binding
> is patch/micro.  Timeout is 1/6/2010.
> 
> Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
> This information is Copyright 2009 Sun Microsystems
> 1. Introduction
>     1.1. Project/Component Working Name:
>        Reserved uid/gid for distinguishing unmappable users/groups in NFSv4 
> ACLs
>     1.2. Name of Document Author/Supplier:
>        Author:  Lisa Week
>     1.3  Date of This Document:
>       21 December, 2009
> 
> 4. Technical Description
> 
> When Access Control Lists (ACLs) are sent over the wire in NFSv4 the
> users and groups in the Access Control Entries (ACEs) are in the form
> of UTF-8 strings. nfsmapid(1M) is responsible for translating or mapping
> these strings into valid users and groups on the client and server.
> 
> If there are entries in the ACL that cannot be mapped to valid users
> or groups we run into the two type of problems:
> 
> Case 1: Upon doing a get ACL operation, the server may send the client
>       an ACL with a user or group that the client does not know
>       about.
> 
> Case 2: Upon doing a set ACL operation, the client may
>       send the server an ACL with a user or group that the server
>       does not know about.
> 
> Currently, the NFSv4 implementation will fail the operations in both
> Case 1 and 2.  Case 2 remains valid (i.e. it is appropriate to fail
> the set ACL operation), but Case 1 has proven to be confusing to users
> as it causes simple operations such as "ls -l" and "ls -l[V|v]" to
> fail with "Permission denied".
> 
> 
> Proposed Solution:
> ------------------
> 
> This case proposes a new reserved uid and gid in the vendor range
> (0-99) that the NFSv4 client and server will use to designate that an
> unmappable user or group has been detected in the ACE of an ACL.  This
> reserved uid and gid will be installed in /etc/passwd (also
> /etc/shadow) and /etc/group, respectively.
> 
> The /etc/passwd entry will be as follows:
> unknown:x:96:96:Unknown Remote UID:/:
> 
> The /etc/shadow entry will be as follows:
> unknown:NP:::::::
> 
> The /etc/group entry will be as follows:
> unknown::96:
> 
> The client will map users or groups in an ACL that are unmappable to
> this newly reserved uid/gid.  This reserved uid/gid will not be allowed
> to be set in an ACL from the Solaris NFSv4 client.
> 
> Example:
> 
> For this example, we will assume we have the following ACL set on a
> file at the server:
> 
> (nfs-server:/export):37 % ls -lV aclfile
> -rw-r--r--+  1 lisagab     staff           0 Nov 25 16:47 aclfile
>           user:junkuser:rwx-----------:-------:deny
>                  owner@:--x-----------:-------:deny
>                  owner@:rw-p---A-W-Co-:-------:allow
>                  group@:-wxp----------:-------:deny
>                  group@:r-------------:-------:allow
>               everyone@:-wxp---A-W-Co-:-------:deny
>               everyone@:r-----a-R-c--s:-------:allow
> 
> (Note: "junkuser" is a user that is not mappable to a valid user on
> the NFSv4 client.)
> 
> Behavior before the fix:
> -------------------------------
> 
> The end user on the NFSv4 client saw a simple "ls -lV" failing:
> (old-nfs-client:/mnt):6 % df /mnt
> Filesystem            kbytes    used   avail capacity  Mounted on
> nfs-server:/export   57621265      23 57621242     1%    /mnt
> (old-nfs-client:/mnt):11 % ls -lV aclfile
> ls: can't read ACL on aclfile: Permission denied
> -rw-r--r--   1 lisagab  staff          0 Dec 16 17:31 aclfile
> 
> Behavior after the fix:
> ----------------------------
> 
> The end user on the NFSv4 client will see:
> 
> (new-nfs-client:/mnt):21 % ls -lV aclfile
> -rw-r--r--+  1 lisagab     staff           0 Nov 25 16:47 aclfile
>            user:unknown:rwx-----------:-------:deny
>                  owner@:--x-----------:-------:deny
>                  owner@:rw-p---A-W-Co-:-------:allow
>                  group@:-wxp----------:-------:deny
>                  group@:r-------------:-------:allow
>               everyone@:-wxp---A-W-Co-:-------:deny
>               everyone@:r-----a-R-c--s:-------:allow
> 
> If an end user tries to do a read, modify, write ACL operation on the
> NFSv4 client on an ACL with an unmappable user/group they will see:
> 
> (new-nfs-client:/mnt):22 % chmod A+user:lisagab:rwx:allow aclfile
> chmod: ERROR: Failed to set ACL: Permission denied
> 
> If a user tries to do a NON-read,modify,write ACL operation on the
> NFSv4 client, everything works as expected (because the unknown user
> is not in the ACL):
> 
> (new-nfs-client:/mnt):26 % chmod A=user:lisagab:rwx:allow aclfile
> (new-nfs-client:/mnt):27 % ls -lV
> total 4 ----------+ 1 lisagab staff 0 Nov 25 16:47 aclfile
> user:lisagab:rwx-----------:-------:allow
> 
> Alternative solutions considered:
> --------------------------------------------
> 
> 1. Repurposing "nobody4" user rather than reserving a new user:
> 
> The "nobody4" user is the anonymous user account that is the SunOS 4.X
> software version of the "nobody" account.  As a reminder, the "nobody"
> account secures NFS resources.  When a user is logged in as root on an
> NFS client and attempts to access a remote file resource, the UID
> number changes from 0 to the UID of nobody (60001).
> 
> There are no major technical problems behind reusing nobody4, the main
> problems revolve around documentation and the current user base's
> understanding of what this user/group is for.  There would be a large
> amount of documentation updates needed in order to repurpose nobody4
> from the SunOS 4.X anonymous account to the new "Unknown Remote UID".
> Of course, we also have to update documentation for adding a new
> user/group, but there is no risk assumed.  Risk is introduced when we
> consider all of the external documentation sites that have information
> about nobody4 documented.  We do not control these sites and expect
> that we will introduce customer confusion if we repurpose.
> 
> A good example is: there are external documentation sites out there
> that advise users to get rid of the "nobody4" account as it is
> unneeded.  How can we make sure that we change this practice?  It
> seems like it may be close to impossible.
> 
> E.g.
> http://www.accs.com/p_and_p/SolSec/clean.html
> http://www.mail-archive.com/focus-sun at securityfocus.com/msg00067.html
> http://www.gotroot.com/tiki-index.php?page=Solaris+Hardening+Guide
> 
> 2. Reusing "noaccess" user/ group rather than reserving a new user/group:
> 
> The "noaccess" user/group is an account assigned to a user/group or a
> process that needs access to a system through some application without
> actually logging into the system.
> 
> Reusing this account would introduce the side effect that users cannot
> set ACLs with the noaccess user or group in ACLs over NFS.  They would
> still be able to do this on local file systems, but not on NFS.  This
> leaves NFS at a disadvantage and since the noaccess user/group already
> has well defined semantics, it is deemed not suitable for this
> purpose.
> 
> 
> Man page changes:
> --------------------------
> 
> The new reserved user and group will be documented in the appropriate
> man pages and system administration guides.  Documentation addendum is
> as shown below:
> 
> To documentation associated with the default passwd file contents:
> 
> User Name     User ID     Description
> unknown         96        Account reserved for unmappable users in NFSv4 ACLs
> 
> Those documentation with the default group file contents
> 
> User Name     Group ID     Description
> unknown         96         Account reserved for unmappable groups in NFSv4 
> ACLs
> 
> 6. Resources and Schedule
>     6.4. Steering Committee requested information
>       6.4.1. Consolidation C-team Name:
>               ON
>     6.5. ARC review type: FastTrack
>     6.6. ARC Exposure: open
> 
> _______________________________________________
> opensolaris-arc mailing list
> opensolaris-arc at opensolaris.org

Reply via email to