From: YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
To: 17810@debbugs.gnu.org
Subject: bug#17810: 24.3.91; file-acl does not return ACL on Mac OS X
Date: Thu, 19 Jun 2014 19:39:14 +0900 [thread overview]
Message-ID: <wla999ji99.wl%mituharu@math.s.chiba-u.ac.jp> (raw)
On Mac OS X >= 10.5, the directory ~/Desktop has ACL, but (file-acl
"~/Desktop") returns nil.
$ ls -lde ~/Desktop
drwx------+ 4 mituharu staff 136 6 11 12:04 /Users/mituharu/Desktop
0: group:everyone deny delete
A comment in lib/qcopy-acl.c and lib/qset-acl.c says:
# if !HAVE_ACL_TYPE_EXTENDED
/* Linux, FreeBSD, IRIX, Tru64 */
...
# else /* HAVE_ACL_TYPE_EXTENDED */
/* Mac OS X */
/* On Mac OS X, acl_get_file (name, ACL_TYPE_ACCESS)
and acl_get_file (name, ACL_TYPE_DEFAULT)
always return NULL / EINVAL. You have to use
acl_get_file (name, ACL_TYPE_EXTENDED)
or acl_get_fd (open (name, ...))
to retrieve an ACL.
On the other hand,
acl_set_file (name, ACL_TYPE_ACCESS, acl)
and acl_set_file (name, ACL_TYPE_DEFAULT, acl)
have the same effect as
acl_set_file (name, ACL_TYPE_EXTENDED, acl):
Each of these calls sets the file's ACL. */
So, the following lines in src/fileio.c seems to always result in
returning Qnil.
acl = acl_get_file (SSDATA (absname), ACL_TYPE_ACCESS);
if (acl == NULL)
return Qnil;
If I change the above ACL_TYPE_ACCESS to ACL_TYPE_EXTENDED as an
experiment, then I get the following string as a result of (file-acl
"~/Desktop"):
"!#acl 1
group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:delete
"
And I could pass it to set-file-acl to set ACL of another file.
YAMAMOTO Mitsuharu
mituharu@math.s.chiba-u.ac.jp
next reply other threads:[~2014-06-19 10:39 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-19 10:39 YAMAMOTO Mitsuharu [this message]
2014-06-20 6:35 ` bug#17810: 24.3.91; file-acl does not return ACL on Mac OS X Paul Eggert
2014-06-21 3:48 ` YAMAMOTO Mitsuharu
2014-06-21 7:04 ` Paul Eggert
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=wla999ji99.wl%mituharu@math.s.chiba-u.ac.jp \
--to=mituharu@math.s.chiba-u.ac.jp \
--cc=17810@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.