lkml.org 
[lkml]   [2002]   [Dec]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Symlink indirection
    On Fri, 13 Dec 2002, Amos Waterland wrote:

    > I think that you and Richard are dicussing a slightly different issue
    > than the original poster asked about. The original question was:
    >
    > On Fri, 13 Dec 2002, Andrew Walrond wrote:
    > > Is the number of allowed levels of symlink indirection (if that is the
    > > right phrase; I mean symlink -> symlink -> ... -> file) dependant on the
    > > kernel, or libc ? Where is it defined, and can it be changed?
    >
    > To which Richard replied:
    >
    > > Since a symlink is just a file containing a name, the resulting path
    > > length is simply the maximum path length that user-space tools allow.
    > > This should be defined as "PATH_MAX". Posix defines this as 255
    > > characters but I think posix requires that this be the minimum and all
    > > file-name handling buffers must be at least PATH_MAX in length.
    > >
    > > A hard link is just another directory-entry for the same file. This,
    > > therefore follows the same rules. There must be enough space on the
    > > device to contain the number of directory entries, as well as enough
    > > buffer length in the tools necessary to manipulate these "nested"
    > > directories, which are not really "nested" at all.
    >
    > But Richard is not actually completely correct. There is a limit of 5
    > levels of symlink indirection in vanilla 2.4 series Linux kernels.
    >
    > % touch 0
    > % for i in `seq 1 10`; do ln -s `ls | sort | tail -1` $i; done
    > % ls
    > 0 1 10 2 3 4 5 6 7 8 9
    > % cat 5
    > % cat 6
    > cat: 6: Too many levels of symbolic links
    > % strace cat 6 2>&1 | grep 'open("6",'
    > open("6", O_RDONLY|O_LARGEFILE) = -1 ELOOP (Too many levels of symbolic links)
    >
    > This has been discussed by Al Viro et al. many times on lkml. I believe
    > that it is not a user-space or POSIX issue, but rather a kernel issue.
    > Thanks.
    >
    > Amos Waterland
    >

    Yep. I thought the original poster was talking about following
    the links, i.e., "indirection", rather than creating links which
    is "definition".

    So, the kernel does set a limit on the number of symlinks of the form,

    ln -s a b ; ln -s b c ; ln -s c d ; ln -s d e ; # etc.


    Cheers,
    Dick Johnson
    Penguin : Linux version 2.4.18 on an i686 machine (797.90 BogoMips).
    Why is the government concerned about the lunatic fringe? Think about it.


    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:31    [W:0.029 / U:89.912 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site