On Dec 22, 2009, at 10:27 AM, John Fischer wrote:

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

As far as I can tell, this will not affect Nautilus.

Thanks,
Lisa

>
> 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
> _______________________________________________
> opensolaris-arc mailing list
> opensolaris-arc at opensolaris.org

Reply via email to