Bug 761438 - [RFE] Add support for NFSv4 style ACLs
Summary: [RFE] Add support for NFSv4 style ACLs
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: attr
Version: 6.1
Hardware: All
OS: Linux
unspecified
low
Target Milestone: rc
: ---
Assignee: Kamil Dudka
QA Contact: qe-baseos-daemons
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-12-08 10:45 UTC by Ondrej Valousek
Modified: 2011-12-14 17:28 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Enhancement
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-12-14 17:28:05 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Ondrej Valousek 2011-12-08 10:45:12 UTC
Description of problem:

When I add NFSv4 style ACL rights to the file or directory, those are not visible as the "+" sign in the permissions column in the ls -l listing. Do I take it right that glibc is responsible for this functionality?

Thanks

Comment 2 Jeff Law 2011-12-08 16:45:50 UTC
I'd think this is a coreutils issue rather than a glibc issue.

Presumably the NFS acls are layered on top of traditional ACLs, in which case all the routines from libacl should be usable.

If you run getacl on files/directories with NFSv4 ACLs, are any ACLs reported?

Jeff

Comment 3 Ondrej Valousek 2011-12-14 12:48:02 UTC
No, getfacl command won't show them. I have to use nfs4_getfacl to display them.
Submitted RFE against coreutils package:
https://bugzilla.redhat.com/show_bug.cgi?id=767584

Ondrej

Comment 4 Kamil Dudka 2011-12-14 17:00:19 UTC
Both ls(1) and getfacl(1) use libacl to check ACLs.  libacl uses getxattr() to read the raw data.  getxattr() belongs to glibc, but there is only a trivial wrapper around the getxattr syscall.  As far as I understand the problem, there is nothing to fix or improve in glibc.

Comment 5 Kamil Dudka 2011-12-14 17:28:05 UTC
Actually, libacl uses a getxattr syscall wrapper from libattr.  This issue is  completely unrelated to glibc:

$ gdb -q --args getfacl .
(gdb) break getxattr
(gdb) run
Breakpoint 1, getxattr (path=0x7fffffffd1b0 ".", name=0x3316405db7 "system.posix_acl_access", value=0x7fffffffce30, size=132) at syscalls.c:223
223     {

(gdb) info sym getxattr
getxattr in section .text of /lib64/libattr.so.1

(gdb) list
218             return SYSCALL(__NR_fsetxattr, filedes, name, value, size, flags);
219     }
220
221     ssize_t getxattr (const char *path, const char *name,
222                                     void *value, size_t size)
223     {
224             return SYSCALL(__NR_getxattr, path, name, value, size);
225     }
226
227     ssize_t lgetxattr (const char *path, const char *name,

I am closing this out...


Note You need to log in before you can comment on or make changes to this bug.