Want to map symbolic links as Windows Shortcuts

Mayers, Philip J p.mayers at ic.ac.uk
Mon Apr 23 17:45:33 GMT 2001


Samba intentionally does not makes Symlinks look like shortcuts. One reason
is that such files are only meaningful to Explorer, and other Win32 SH*
function-based programs - e.g. the CreateFile API doesn't "follow" them,
although the Common Dialog Boxes do.

So, .LNK files aren't symlinks (and vice-versa) which is why they aren't
translated.

<offtopic>Most Unixes use symlinks as heavily or lightly as you like - they
can be a boon or a nightmare, if used improperly</offtopic>

The SMB protocol is described in some (ahem) detail -
http://www.samba.org/cifs/ is a good place to start.

Windows Shortcuts are just files with some binary junk in them and a .lnk
extension. I *suppose* it would be theoretically possible to remap a symlink
to such a file, and back again, but it would leave a really bad taste in my
mouth... The file format for .LNK files is at:

http://www.wotsit.org/download.asp?f=shortcut

You could do this using the VFS (virtual file system) layer in Samba 2.2
onwards, to hook into the file open/close ops - you'd need to maintain a
virtual (hidden) file which is filled in from the symlink info on open, has
the changes stored to it by explorer, and on close is re-translated back to
a symlink (shudder...). Bear in mind that not all the information (not even
most) in a .LNK file can be stored in a symlink:

Target - can be just a plain file but can also be a program to execute, with
arguments
Start in - directory to make the CWD - no analog for symlinks
Shortcut key - no analog
Run - no analog
Comment - no analog
Run as different user - no analog
Run in seperate memory space - no analog
Icon - no analog

For the items that have no analog, you *could* maintain a separate database
that stores these, but keeping that in-sync with the filesystem would be
tough.

Regards,
Phil

+----------------------------------+
| Phil Mayers, Network Support     |
| Centre for Computing Services    |
| Imperial College                 |
+----------------------------------+  

-----Original Message-----
From: Green, Paul [mailto:Paul.Green at stratus.com]
Sent: 23 April 2001 17:46
To: Samba Technical (E-mail)
Subject: Want to map symbolic links as Windows Shortcuts


I am responsible for the port of Samba 2.0.7 to the Stratus VOS
fault-tolerant operating system. The port has gone well and we are in beta
test now.  Thanks to everyone for creating and maintaining such a
high-quality product.

I have noticed that Windows is able to list a directory and accurately
portray which entries are shortcuts, but that when Windows lists a VOS
directory using Samba, all of the VOS symbolic links are listed as real
files or real directories.  I have assumed that Unix folks must not be big
users of symbolic links...but VOS users do use them fairly often.

I poked around in the source code, but the message formats that Samba uses
to communicate with the client aren't exactly transparent. Short of
capturing and decoding some packets (ugh), I don't see how to mark the reply
so that Windows knows the object is a shortcut.  

Is there a way to map symbolic links to Windows shortcuts and I just don't
see it?   Does anyone at least know the necessary Windows message format so
I can code up a trial solution?

Many thanks,
PG
--
S T R A T U S    C O M P U T E R
111 Powdermill Road
Maynard, MA 01754-3409 U.S.A.

Paul Green
Senior Technical Consultant
TEL +1 (978) 461-7557
FAX +1 (978) 461-3610





More information about the samba-technical mailing list