Hi Robert,

this patch has now been released as Cygwin v3.6.3. Would you kindly verify
that it fixes your problem?

Thanks,
Johannes

On Mon, 2 Jun 2025, Johannes Schindelin wrote:

> Hi Robert,
> 
> On Wed, 28 May 2025, Robert Fensterman wrote:
> 
> > getent passwd %USERNAME%
> > is blank
> 
> I _think_ that you are running this in a Bash, therefore you'd need to run
> `getent passwd $USER`.
> 
> As it were, I did reproduce the issue on my end, and this command-line
> reports a SID that starts with `S-1-12-1`. Together with this information:
> 
> > With cygwin 3.6.2-1, I can start bash directly from a CMD window (though it
> > can't find programs, just built-ins).
> > Interestingly: after that test, that and reverting back to .1, my
> > .bash_history permissions seem to be wrong: instead of my AzureAD user as
> > the owner, Windows sees some other SID as owning the file and bash (in
> > cygwin) can't read it (eg., up-arrow doesn't go up past the start of the
> > instance of the shell, where it normally goes quite a bit further back in
> > time). As a workaround, I've given "everyone" rwx permissions, and it seems
> > to be working fine.
> 
> and bisecting my problem to
> https://github.com/cygwin/cygwin/commit/48e7d632689313106d16b0de035fb955c54492b2,
> the following diff (which partially reverts that commit) fixes it for me:
> 
> ```diff
> diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc
> index 83883f9f65..795a00cc1a 100644
> --- a/winsup/cygwin/uinfo.cc
> +++ b/winsup/cygwin/uinfo.cc
> @@ -1996,10 +1996,12 @@ pwdgrp::fetch_account_from_windows (fetch_user_arg_t 
> &arg, cyg_ldap *pldap)
>        if (sid_id_auth (sid) == 5 /* SECURITY_NT_AUTHORITY */
>         && sid_sub_auth (sid, 0) == SECURITY_APPPOOL_ID_BASE_RID)
>       break;
> +#if 0
>        /* AzureAD SIDs */
>        if (sid_id_auth (sid) == 12 /* AzureAD ID */
>         && sid_sub_auth (sid, 0) == 1 /* Azure ID base RID */)
>       break;
> +#endif
>        /* Samba user/group SIDs */
>        if (sid_id_auth (sid) == 22)
>       break;
> ```
> 
> Now, the commit message of that commit includes the name of the reporter,
> which helped me find
> https://inbox.sourceware.org/cygwin/pbli6jecn5go2h7heebwivkwz6xf5h2stvq5fxna4u6pql6uht@7xpentpxjiak/
> as the original reason for that commit. That request only talked about
> `S-1-15-3-*`, though, and not about `S-1-12-1-*`. And the commit message
> makes it sound as if my SID would never resolve by `LookupAccountSid()`,
> but it clearly does.
> 
> So I am not quite sure what to make of this finding... Should the
> `S-1-12-1-*` part of 48e7d63268 (Cygwin: fetch_account_from_windows: skip
> LookupAccountSid for SIDs known to fail, 2025-04-10) simply be dropped? Or
> was there another clever idea to exploit a shortcut that would side-step
> the need to call `LookupAccountSid()` for those SIDs and set `ret = TRUE`?
> 
> Puzzled,
> Johannes
> 
> > 
> > On Wed, May 28, 2025 at 5:50 AM Andrey Repin <anrdae...@yandex.ru> wrote:
> > 
> > > Greetings, Robert Fensterman!
> > >
> > > > When I try to launch Cygwin 3.6.2-1 - be it from the taskbar shortcut,
> > > > double-clicking on mintty.exe, or running mintty.exe from CMD - I get an
> > > > error message:
> > >
> > > >> Error: Could not fork child process: There are no available terminals
> > > (-1)
> > >
> > > > The resulting window is titled "-nologin".
> > >
> > > What's your /etc/shells and what is the output of `getent passwd
> > > %USERNAME%` ?
> > > Can you start bash.exe directly?
> > >
> > > > The taskbar shortcut is:
> > > >> C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -
> > >
> > > > I ran setup this morning to update whatever had updates; this included
> > > the
> > > > base cygwin package. As last week, it warned me that there was a point
> > > > update; I've since downloaded that and re-run setup (without reverting
> > > > anything; just letting it do its normal cleanup) to no avail. I've
> > > attached
> > > > the portion of setup.log with those two runs.
> > >
> > > > I did also update several other Windows apps Windows first thing this
> > > > morning, before I'd tried to open a Cygwin terminal; I don't recall that
> > > > list including anything that should have affected terminals, but I
> > > suppose
> > > > it's possible.
> > >
> > > > Google searches suggest killing several programs (ssh, ssh-agent, bash,
> > > sh,
> > > > git, node etc.); none are running. I have tried rebooting a couple of
> > > > times, launching Cygwin (from the taskbar shortcut) as soon as I can
> > > after
> > > > reboot, and I still get the error.
> > >
> > > > Other terminal-ey apps work: git-bash launches and appears to work
> > > > normally; similarly, CMD and PowerShell both seem to be just fine.
> > >
> > > > Reverting to v 3.6.1-1 seems to work: Cygwin launches and is acting
> > > > normally. Updating cygwin through the current version of setup results 
> > > > in
> > > > the same error condition (and, reverting a second time is still 
> > > > working).
> > >
> > > > Running on Win11 24H2 (OS Build 26100.4061).
> > >
> > >
> > >
> > > --
> > > With best regards,
> > > Andrey Repin
> > > Wednesday, May 28, 2025 13:20:56
> > >
> > > Sorry for my terrible english...
> > >
> > >
> > 
> > -- 
> > Robert F.
> > 

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to