Possible problem with ACL masks and getfacl (fwd)
Glen Gibb
grg at ridley.unimelb.edu.au
Wed Jul 23 23:55:40 PDT 2003
Whoops - it helps if I attach the patch :)
Glen
---------- Forwarded message ----------
Date: Thu, 24 Jul 2003 16:54:55 +1000 (EST)
From: Glen Gibb <grg at ridley.unimelb.edu.au>
To: freebsd-current at freebsd.org
Subject: Possible problem with ACL masks and getfacl
Hi all,
I'm not sure if this is a real problem or not, but if I set a group
ACL on a file, and then set a mask, when running getfacl the group names
are not listed.
I'm running 5.1 RELEASE.
The following sequence commands show the problem (I create a file, display
the ACL, set a group ACL, display the ACL, set a mask, and then display
the ACL again. The problem is with the final display - the group name is
not displayed).
# touch testfile
# getfacl testfile
#file:testfile
#owner:0
#group:0
user::rw-
group::r--
other::r--
# setfacl -m g:staff:rwx testfile
# getfacl testfile
#file:testfile
#owner:0
#group:0
user::rw-
group::r--
group:staff:rwx
mask::rwx
other::r--
# setfacl -m m::rx testfile
# getfacl testfile
#file:testfile
#owner:0
#group:0
user::rw-
group::r--
group::rwx # effective: r-x
mask::r-x
other::r--
Attached is a proposed patch to lib/libc/posix1e/acl_to_text.c to correct
this problem. Please note that this patch has not been tested as the
computer I'm testing on won't build world :( (cheap computer with cheap
components). The source used is actually CURRENT as of Tuesday July
22nd.
I admit that there may be a reason why the user name is not shown
which I don't know about :).
Feedback is greatly appreciated.
Glen Gibb
-------------- next part --------------
--- /usr/src/lib/libc/posix1e/acl_to_text.c.orig Thu Jul 24 16:47:41 2003
+++ /usr/src/lib/libc/posix1e/acl_to_text.c Thu Jul 24 16:48:12 2003
@@ -177,9 +177,10 @@
effective_perm_buf);
if (error)
goto error_label;
- len = asprintf(&tmpbuf, "%sgroup::%s\t\t# "
+ len = asprintf(&tmpbuf, "%sgroup:%s:%s\t\t# "
"effective: %s\n",
- buf, perm_buf, effective_perm_buf);
+ buf, name_buf, perm_buf,
+ effective_perm_buf);
} else {
len = asprintf(&tmpbuf, "%sgroup:%s:%s\n", buf,
name_buf, perm_buf);
More information about the freebsd-current
mailing list