This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: incompat in cygwin choice of using '+' as domain and user separator.


On Aug 22 15:36, L A Walsh wrote:
> Ran in to this trying to use tar to store acls and xattrs:
> 
> >  tar caf lawbins.tar scripts scripts- bin
> tar: miner.js: Warning: Cannot acl_to_text: Invalid argument
> tar: run-crons.sys: Warning: Cannot acl_to_text: Invalid argument
> tar: smallprof.out: Warning: Cannot acl_to_text: Invalid argument
> tar: tmon.out: Warning: Cannot acl_to_text: Invalid argument
> tar: ubytes_to_utf8.new: Warning: Cannot acl_to_text: Invalid argument
> 
> examining one of these:
> 
> >  find bin -name tmon.out
> bin/tmon.out
> 
> >  lsacl bin/tmon.out
> [u::rwx,g::rwx,o:r-x,u:Unknown+User:rwx,g:Unknown+Group:rwx,g:Administrators:rwx,g:Bliss\Domain
> Admins:rwx,m:rwx/] bin/tmon.out

lsacl?  I don't know this tool.  The fact that it prints the unknown
accounts with '+' and the known account with '\' is weird.  This
shouldn't happen.  It should print all accounts with a '+'.  Please use
`getfacl' to examine the ACLs.

> 
> I tried tar in an existing dir:
> 
> >  mkdir test
> >  tar caf test.tar test
> >  ll test
> total 0
> >  cd test
> >  tar xaf ../test.tar
> >  ll
> total 0
> drwxrwxr-x+ 1 0 Aug 22 15:26 test/
> >  lsacl test
> [u::rwx,g::rwx,g:Bliss\lawgroup:rwx,g:Bliss\Domain Admins:rwx,m:rwx,o:r-x/
> u::rwx,g::rwx,g:Bliss\lawgroup:rwx,g:Bliss\Domain Admins:rwx,m:rwx,o:r-x]
> test
> 
> With the above and only standard separator chars, no problem
> 
> I'm guessing, but '+' is a reserved char that's not permitted in
> acl_to_text...

No, that's a wrong assumption.  Think about it.  The ACL given to
acl_to_text is the binary form, so it doesn't contain user or group
names, only uids and gids.  The usernames are only generated in the
output.

EINVAL from acl_to_text means the incoming acl is invalid.  Either it's
so broken that acl_to_text crashes, or it'sa NULL pointer, or it has
less then MIN_ACL_ENTRIES (3) entry, or it has more than MAX_ACL_ENTRIES
(2730) entries, or it doesn't follow the required rules for POSIX ACLs.

I assume the latter is the case here.  *Why* this occurs, I can't
tell.  I'd need a simple, reproducible testcase for that.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: signature.asc
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]