This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: chmod failed: Invalid argument
- From: "Rainer Blome" <rainer dot blome at gmx dot de>
- To: cygwin at cygwin dot com
- Date: Thu, 28 Jan 2016 19:43:47 +0100
- Subject: Re: chmod failed: Invalid argument
- Authentication-results: sourceware.org; auth=none
- References: <trinity-f5aca8d9-16f5-41e1-a521-60beada36d8e-1453991058087 at 3capp-gmx-bs39> <20160128144429 dot GC27369 at calimero dot vinschen dot de> <trinity-1207f321-8a47-46bf-99f9-9c2eb5b08d91-1453997213459 at 3capp-gmx-bs39>, <20160128172256 dot GB18626 at calimero dot vinschen dot de>
- Sensitivity: Normal
> 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
today.
Thanks for the help so far.
Rainer
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple