Visible symlinks under Windows

Corinna Vinschen corinna at vinschen.de
Wed Feb 6 20:45:22 GMT 2008


On Feb  6 10:56, James Peach wrote:
> On Feb 6, 2008, at 10:40 AM, Corinna Vinschen wrote:
> I made a note of the file format here:
> 	http://wiki.samba.org/index.php/UNIX_Extensions#Storing_symlinks_on_Windows_servers

Thanks!

>> The idea was to have a technique which allows to utilize real symlinks
>> of the underlying file system and to recognize them as such by an
>> initiated Windows application.  Since Cygwin is a Linux emulator anyway,
>> I think it makes sense to be able to recognize real symlinks correctly.
>> It knows what symlinks are, and it knows how to work with them.
>
> In this case, the EA method doesn't buy you anything. Someone could already 
> modify the server to recognise the existing symlink formats and translate 
> them for real symlinks.

Sure, it would be possible that Samba translates a real symlink to a
normal file with the content as defined by Minshall+French when sending
file information back to Windows.  But that would be incompatible with
what Samba returns today to Windows clients and what a Windows client
expects which has no idea what to do with a symlink.  Keep in mind that
Windows per se has no idea what a symlink is (setting Vista aside for
now).  For those "standard" Windows applications, the symlink has to be
translated to a simple file or directory, depending on the symlink
target.
Vice versa, if a client creates a file with Minshall+French content,
Samba could create a real symlink instead.  But that has some major
disadvantages.  One of them is the fact that Samba wouldn't know that a
symlink should be created at file open time.  It would have to evaluate
the content after the file gets written, figure out that the content is
actually denoting a symlink, close the file, and create it again, this
time as symlink.  This sounds rather impractical, to say the least.

Correct me if I'm wrong, but as far as I can see the Minshall+French
technique is only good for Unix clients which want to create and read
symlinks on remote servers which are not capable of real symlinks.
It creates a fake symlink on the remote share and it recognizes a
fake symlink on a remote share and pretends a real symlink to the *UNIX*
client which knows what symlinks are.

It doesn't give us the backward view, which is what I'm asking for.
It does not allow an initiated Windows client to handle real symlinks
on a Samba share, so that it can transparently interoperate with the
UNIX side.  So far, Windows clients are left alone with the inadequacies
of their base OS.


Corinna


More information about the samba-technical mailing list