WSL symbolic links

Brian Inglis Brian.Inglis@SystematicSw.ab.ca
Thu Mar 26 19:12:32 GMT 2020


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
$ getfacl u
getfacl: u: Permission denied
$ icacls u
u NULL SID:(DENY)(Rc,S,REA,WEA,X,DC)
  $HOSTNAME\$USER:(F)
  $HOSTNAME\$USER:(RX,W,DC)
  BUILTIN\Users:(Rc,S,RA)
  BUILTIN\Administrators:(RX,W,DC)
  BUILTIN\Users:(DENY)(S,RD,REA,X)
  Everyone:(RX)
  NT AUTHORITY\SYSTEM:(I)(F)
  BUILTIN\Administrators:(I)(F)
  $HOSTNAME\$USER:(I)(F)

Successfully processed 1 files; Failed processing 0 files
$ ./rd-reparse '\??\C:\...\u'
ReparseTag:           0xa000001d
ReparseDataLength:             5
Reserved:                      0
02 00 00 00 75

-- 
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