WSL symbolic links

Brian Inglis Brian.Inglis@SystematicSw.ab.ca
Sat Mar 28 03:32:42 GMT 2020


On 2020-03-27 12:53, Corinna Vinschen wrote:
> On Mar 27 11:58, Brian Inglis wrote:
>> On 2020-03-26 14:05, Corinna Vinschen wrote:
>>> On Mar 26 13:12, Brian Inglis wrote:
>>>> On 2020-03-26 05:00, Corinna Vinschen wrote:
>>>>> On Mar 26 10:00, Thomas Wolff wrote:
>>>>>> A symbolic link created with WSL is neither interpreted in cygwin nor can it
>>>>>> be deleted:
>>>>>>> touch file
>>>>>>> wsl ln -s file link
>>>>>>> wsl ls -l link
>>>>>> lrwxrwxrwx    1 towo     towo             1 Mar 26 08:56 link -> file
>>>>>>> ls -l link
>>>>>> -rw-r----- 1 Unknown+User Unknown+Group 0 Mar 26 00:00 link
>>>>> What kind of file are they in the real world?  Reparse points?  If so,
>>>>> what content do they have?  I attached a Q&D source from my vault
>>>>> of old test apps to check on reparse point content.  Please compile with
>>>>>   gcc -g ../src/rd-reparse.c -o rd-reparse -lntdll
>>>>> It takes a single native NT path as parameter, kind of like this:
>>>>>   ./rd-reparse '\??\C:\cygwin64\home\corinna\link'
>>>> They should be WSL or Windows mklink (soft) links, and the reason why mklink was
>>>> allowed unelevated in Windows 10 with Developer mode.
>>>> In an *elevated* shell:
>>>> $ ls -dln u
>>>> -rw-r----- 1 4294967295 4294967295 0 Nov  9 06:09 u
>>>                ^^^^^^^^^^^^^^^^^^^^^
>>> This is unknown user, unknown group, which means, the Windows
>>> function LookupAccountSid() probably returned a domain name which
>>> is unknown (neither account domain, nor primary, nor trusted domain).
>>>
>>> An strace of `ls -l u' may be helpful...
>>
>> Attached with startup environment, locale, and message setup cut (reduced by
>> 100KB), and rest sanitized as below. Could DM/PM original on request.
> 
> Thanks!  This should already be fixed in the latest developer snapshot
> after I was finally able to install WSL myself.  See my reply to Thomas
> in https://sourceware.org/pipermail/cygwin/2020-March/244211.html
> 
> All the effects are a result of not opening the reparse point as reparse
> point, as weird as it sounds at first :)

Would you consider that test program a reasonable base for something I have
wished for a while: a program that would classify a file name as a (regular)
hard link, a Windows directory or file link, a junction, a Windows shortcut, a
Cygwin symlink, a Unix/WSL symlink, a URL link, and/or tell me where it links to
etc. Thinking of hacking that plus maybe bits of file, cygpath, readshortcut,
readlink, lsattr together to display otherwise awkward to access attributes and
properties.

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.


More information about the Cygwin mailing list