git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 4/5] t/t1304: set the mask ACL that is checked in check_perms_and_acl

From
Brandon Casey <casey@nrlssc.navy.mil>
Date
Mar 15, 2010, 18:17 UTC
Message-ID
<D90FzSTc_sIuYUj84CpQ_qxlaiYTWQsa6KDiDVYCRLQ@cipher.nrlssc.navy.mil>
In-Reply-To
<vpqy6ht5vvs.fsf@bauges.imag.fr>
On 03/15/2010 12:37 PM, Matthieu Moy wrote:
Show 9 quoted lines
> Brandon Casey <casey@nrlssc.navy.mil> writes:
> 
>>  test_expect_success 'Setup test repo' '
>>  	setfacl -m d:u::rwx,d:g::---,d:o:---,d:m:rwx $dirs_to_set &&
>> +	setfacl -m m:rwx               $dirs_to_set &&
> 
> The patch sounds right, but I don't understand the commit message. You
> set m:rwx, and check_perms_and_acl expects mask::r--, so it's not
> exactly what check_perms_and_acl checks.

Ah, yeah, it does sound like I'm saying that check_perms_and_acl is checking for the particular mask that I'm setting. I really meant it to read more like: since check_perms_and_acl is checking the 'mask ACL', it should be set appropriately.

> My understanding is that you set the mask here to enforce the validity
> of the ACL, but then you may want to just squash this into [PATCH 2/5].

I think the ACL is valid according to the rules stated in the Linux man page, but depending on the previously existing mask ACL on the directories, the other ACL's that were set may or may not have any effect. I think on Linux, the setfacl command updates the effective rights mask when other ACL entries are modified. I don't think this happens on Solaris.

If I do this:
  $ cd /var/tmp &&
    mkdir test &&
    setfacl -m d:u::rwx,d:g::---,d:o:---,d:m:rwx test &&
    setfacl -m d:u:guest:rwx test &&
    setfacl -m u:guest:rwx test &&
    getfacl test
On Solaris I get:
  # file: test
  # owner: XXX
  # group: XXX
  user::rwx
  user:guest:rwx                #effective:---
  group::---              #effective:---
  mask:---
  other:---
  default:user::rwx
  default:user:guest:rwx
  default:group::---
  default:mask:rwx
  default:other:---
and on Linux I get:

# file: test # owner: XXX # group: XXX user::rwx user:guest:rwx group::--- mask::rwx other::--- default:user::rwx default:user:guest:rwx default:group::--- default:mask::rwx default:other::---

Notice how the mask entry is different. On Solaris you get --- and user 'guest' effectively has no permissions, while on Linux it has full rwx. So for the test we should set the mask explicitly.

-brandon
Previous: Matthieu MoyNext: Brandon Casey
Message 9 of 12 in “tweak t1304 ACL tests so they work on Solaris”
  1. 0/5 tweak t1304 ACL tests so they work on SolarisBrandon Casey, Mar 15, 2010
  2. 1/5 t/t1304: avoid -d option to setfaclBrandon Casey, Mar 15, 2010
  3. 2/5 t/t1304: set the Default ACL base entriesBrandon Casey, Mar 15, 2010
  4. 3/5 t/t1304: use 'test -r' to test readability rather than looking at mode bitsBrandon Casey, Mar 15, 2010
  5. Matthieu MoyMar 15, 2010
  6. Brandon CaseyMar 15, 2010
  7. 4/5 t/t1304: set the mask ACL that is checked in check_perms_and_aclBrandon Casey, Mar 15, 2010
  8. Matthieu MoyMar 15, 2010
  9. Brandon CaseyMar 15, 2010
  10. 4/5 t/t1304: set the ACL effective rights maskBrandon Casey, Mar 15, 2010
  11. Matthieu MoyMar 15, 2010
  12. 5/5 t/t1304: make a second colon optional in the mask ACL checkBrandon Casey, Mar 15, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.