Server-side NFSv4 ACL support
Prasad P
potluri at us.ibm.com
Tue Aug 8 22:45:54 EDT 2006
Requirements and Design Considerations for Server-side NFSv4 ACL support
I. Overview
Access Control Lists (ACLs) are used to specify fine-grained access
rights
to file system objects. An ACL is a list of Access Control Entries
(ACEs),
each specifying an entity (such as a user or a group) and some level
of
access for that entity.
There are two ACL models commonly used in the current implementations,
ACLs based on withdrawn POSIX 1003.1e draft (will refer as "POSIX
ACLs")
and ACLs based on NFSv4 Protocol (RFC 3530) (will refer as "NFSv4
ACLs").
The POSIX ACLs are implemented in many file systems. These ACLs do
not
provide fine-grained access rights like NFSv4 ACLs.
The NFSv4 ACLs are implemented on few file systems (such as GPFS).
These ACLs resemble that of Windows NT's
All versions of NFS (server and client) support POSIX ACLs. But, only
NFSv4 client supports NFSv4 ACLs.
II. Functional Requirements
NFSv4 ACLs need to be supported by NFSv4 server. The server needs to
support set and get NFSv4 ACL requests from NFS clients. It should
provide the access based on the NFSv4 access rights of the file system
objects.
III. Design Considerations
Here are the possible implementation approaches to support server-side
NFSv4 ACLs on Linux:
1. Implement NFSv4 ACLs by storing the ACLs on the file system (as an
extended attribute, or in a special file).
Pros: Can support NFSv4 ACLs while keeping all the code changes in
the NFS code and not needing to coordinate with the
underlying
file systems. This approach helps when a Linux system is
configured as NFS server without local access (similar to
NAS
appliance).
Cons: The NFSv4 ACLs can not be used by the local users.
2. Standardize the ACL interface with the underlying file system, and
support NFSv4 ACLs only when the underlying file system supports
NFSv4
style ACLs.
Pros: Development work is involved in NFS area only for the NFS
developers. Can support NFSv4 ACLs on the file systems
which
currently support NFSv4 style ACLs.
Cons: Need to involve file systems developers to implement NFSv4
ACLs.
3. Select mostly used file systems and implement NFSv4 ACLs on both
NFS
and underlying file systems.
Pros: Will be having control on the complete implementation
Cons: Involved in extensible development time. Need to monitor
the
changes to the underlying file systems and make sure no
impact
to the ACLs implementation.
4. Map POSIX ACLs to NFSv4 ACLs
Pros: Minimal development time to verify the existing
implementation
and improve/correct where ever possible to reduce the
imperfectness.
Cons: Can not use full range of NFSv4 ACLs. Weak access controls.
Note: The design of the NFSv4 ACL implementation need to be developed
based
on the decision of which approach is considered.
IV. References:
1. RFC3530 (Network File System (NFS) version 4 Protocol)
2. POSIX 1003.1e draft
3. ACLs wiki page (http://wiki.linux-nfs.org/index.php/ACLs)
Thanks.
Regards,
Prasad Potluri
email: pvp at-sign us dot ibm dot com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://linux-nfs.org/pipermail/nfsv4/attachments/20060808/f00d208d/attachment.htm
More information about the NFSv4
mailing list