Symlinks vs. NFS

William Roberts liam at cs.qmc.ac.uk
Fri Jun 24 20:25:40 AEST 1988


In article <2372 at quacky.mips.COM> dce at mips.COM (David Elliott) writes:
>We have run across a problem with NFS and symlinks that we would like
>to solve.

What you are asking for is "interpret the symlink in the NFS
server and then return the file handle", as opposed to the
current behaviour which is "return the symlink information and
interpret it in the NFS client".

This has some merits, particularily when the NFS server
understands symlinks but the client doesn't. However it would
need to be an additional file type: this doesn't stop YOU
implementing it in YOUR NFS SERVER and providing the interface
to NFS clients that the NFS protocol allows (rather like the
distinction between stat and lstat in fact :-)).

In our network, the major ways that we cope with symbolic
links are:

1) Use symlinks to go from local filestore to remote filestore,
   e.g. to "stick on" chunks of /usr when the client doesn't
   have enough disk (I know we could mount this stuff, but it
   is sometimes done for individual binaries). Naming is then
   a purely local problem.

2) Use symlinks with relative paths when connecting related
   filestores that are likely to be mounted as a group. To be
   specific, our user filestores on the main machine are
   called /users/staff and /users/staff2 (too much for one
   disk), but all staff login names are known in both, e.g.

        /users/staff/liam       - home directory
        /users/staff2/liam -> ../../staff/liam

   On other machines, the filestores are mounted as X/staff
   and X/staff2 for some convenient X (e.g. /sequent, /users
   or even /nfs/sequent), but the discipline of mounting them
   as a group means that the relative symlinks still work.


Two related things:

A) Why do Sun persist in thinking that it is a bug for symlinks
   to be followed when identifying the directory that is being
   mounted? Example:

       On "server": /usr/link -> /usr/games         (a symlink)
       a) mount server:/usr/link  /mnt
       b) mount server:/usr/games /mnt

   The name "/usr/link" is interpreted on server and resolved
   to be /users/games, so command a) is actually the same as
   command b).  I have found this useful (on occasion), though
   I will admit it to be very confusing!

B) Does anyone have a table showing which utilities follow
   symlinks and which don't? I am thinking mostly of
   adminstrative things like tar, du, cp, dump and so on.
-- 

William Roberts         ARPA: liam at cs.qmc.ac.uk  (gw: cs.ucl.edu)
Queen Mary College      UUCP: liam at qmc-cs.UUCP
LONDON, UK              Tel:  01-975 5250



More information about the Comp.unix.wizards mailing list