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: chmod failed: Invalid argument

> Corinna Vinschen wrote 2016-01-28 18:22:
> On Jan 28 17:06, Rainer Blome wrote:
> > > Corinna Vinschen wrote 2016-01-28 15-44:
> > > On Jan 28 15:24, Rainer Blome wrote:
> > > the acl should always at least contain ACEs for the
> > > default POSIX perms, plus a NULL ACE:
> > > 
> > > foo NULL SID:(DENY)(Rc,S)
> > >     VINSCHEN\corinna:(R,W,D,WDAC,WO)
> > >     VINSCHEN\vinschen:(R)
> > >     Everyone:(Rc,S,RA)
> > 
> > In Windows Explorer -> `bar` -> RMB -> Properties -> Security ->
> > Advanced, I am told that it inherits ist permissions from `base`,
> > the parent of `bar`. (To be precise, it inherits from its
> > grandparent, but I assume that the length of the ancestor chain is
> > not important here.)
> This means the permission have been inherited when creating the
> file but Cygwin couldn't overwrite the ACL with a POSIXified variant
> for one reason or another.  It might have to do with this mysterious
> group 213...
> > > For directories also inheritable default perms for "CREATOR OWNER" and
> > > "CREATOR GROUP".  Is that really a Cygwin mkdir?!?
> > 
> > As far as can see, yes, see above.
> > 
> > > And then, what about
> > > this unknwon group with gid 213?  What does
> > > 
> > >   $ getent group 213
> > > 
> > > print?  Something's weird here...
> > 
> > getent group 213; echo $?
> > 2
> Ok, that's not exactly helpful to analyze this problem.  Can you try
> running another strace
>   strace -o getfacl.trace getfacl <file>
> on a file which has supposedly that group as owning group, e.g.  your
> "base" dir?  We might have a chance to look at the SID of group 213 in
> there.

That command segfaults, just as `strace : ` does.

> On a hunch, do you have old /etc/passwd and /etc/group files by any
> chance?  Does moving them out of /etc (don't delete them for now!),
> exiting from Cygwin and starting a new shell somehow fix things for you?
> How do the files look like?

Define "old"! ;-) Yes, I do. There is no `/etc/group`, but
`/etc/passwd` defines the group ID of my user as 213 (the real ID
is a bit different, to be honest, but I do not think that matters.)
When I rename the file and open a new Cygwin terminal, things start
to work. `strace echo` yields the expected output, `chmod` does
what it's supposed to do, and `git config`, `git init` and `git
clone foo foo2` work as well.

The `git clone repo:bar` then fails because my `~/.ssh` is
apparently no longer found (and I can only log in via SSH
key). This is a bit surprising, because in the new terminal,
`$HOME` and `~/.` are still set the way I specified it in the old
`/etc/passwd` (now with extension `.renamed`). So some programs
apparently use one method of determining the home directory, and
others use a different method. I will look into that tomorrow.

If, after this "breakthrough", there is still value in looking
further into the ACLs, I am willing to do that. However, the strace
output looks awfully laborious to sanitize, so I can not do this

Thanks for the help so far.


Problem reports:
Unsubscribe info:

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