[PATCH setup] Add new option --chown-admin
Jon Turney
jon.turney@dronecode.org.uk
Tue Jul 12 12:50:26 GMT 2022
[Replying to the right list this time...]
On 09/07/2022 13:21, Christian Franke wrote:
> Jon Turney wrote:
>> On 07/07/2022 15:45, Christian Franke wrote:
>>> Jon Turney wrote:
>>>> On 06/07/2022 17:34, Christian Franke wrote:
>>>>> Jon Turney wrote:
>>>>>> On 06/07/2022 08:14, Christian Franke wrote:
>> [...]
>>>>>>>
>>>>>>> BTW: 'nt_sec.setDefaultSecurity (isAdmin)' is never called with
>>>>>>> 'isAdmin==true' as 'root_scope' is always 0.
>>>>>>
>>>>>> root_scope is set later, by the "Install For" option on the
>>>>>> "Select Root Install Directory" page.
>>>>>>
>>>>>> To me, this looks like a (very long standing) bug that we
>>>>>> shouldn't be calling setAdminGroup() here, but after root_scope
>>>>>> has been set.
>>>>>
>>>>> If this bug is very old, I'm not sure whether this should be fixed.
>>>>> Setting admin group to files which are owned "only" by current user
>>>>> is possibly not very effective.
>>>>
>>>> It's true that some people might be relying on that buggy behaviour.
>>>
>>> I have one very old Cygwin installation from Win7 times. Very old
>>> installed files still have group="Administrator", newer files have
>>> group="None". The timestamps suggest that the regression was
>>> introduced early in 2012. The first file with group="None" is from
>>> March 2 2012.
>>
>> Hmm... [1] seems like the obvious suspect for the change responsible
>> for that, but I don't immediately see how...
>>
>> [1]
>> https://cygwin.com/git/?p=cygwin-apps/setup.git;a=commitdiff;h=befc9dd806824f22ebb740be96ba8c0ae8f63bb4;hp=34d534a6d74e5516d6691fb1d9cb6309682afa0b
>>
>>
>
> Hmm... correct as this change moves UserSettings ctor behind
> setDefaultSecurity ():
>
> Old version 34d534a:
> ...
> UserSettings Settings (local_dir);
> ...
> nt_sec.setDefaultSecurity ();
> ...
> Main.WindowCreate()
>
>
> New version befc9dd:
> ...
> nt_sec.setDefaultSecurity ();
> ...
> UserSettings Settings (local_dir);
> ...
> Main.WindowCreate()
>
>
> The UserSettings ctor has a somewhat hidden side effect which sets
> root_scope correctly:
>
> UserSettings::UserSettings(...);
> open_settings("setup.rc", ...);
> io_stream::open("cygfile:///etc/setup/setup.rc", ...);
> io_stream_cygfile::io_stream_cygfile("/etc/setup/setup.rc", ...);
> get_root_dir_now();
> read_mounts("");
> read_mounts_nt("");
> root_scope = isuser ? IDC_ROOT_USER : IDC_ROOT_SYSTEM;
>
> Conclusion: Regression introduced Feb 24, 2012 (befc9dd).
>
Thanks for tracking this down.
That just seems... fractally wrong.
More information about the Cygwin-apps
mailing list