[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: over 30000 bugs in our archive (!)

In an attempt to save the world from disaster, Joey Hess wrote:
> Christian Schwarz wrote:
> > >      In certain cases, however, relative links may cause more problems. For
> > >      example, links into `/etc' and `/var' should be absolute.
> > 
> > As you quoted: links _into_ `/etc' and `/var' should be absolute. But the
> > link in distributed-net is
> > 
> >   var/lib/distributed-net/distributed-net -> /usr/bin/distributed-net
> > 
> > so it's into /usr and thus should be relative :-)
> But the passage in the policy manual says "for example..". I took that to
> mean all such symlinks between top level directories. 
> Does anyone know why exaclty we have this paragraph in policy? I'm not sure
> what the reason it's in there is for, or exaclty what problems the relative
> symlinks can cause.

Ah, I thought you knew...[1]

On my system, my /usr directory sits on a seperate HD from the root
partition. I've got that partition mounted as /mnt/bigfoot, and on
there I've got a directory /mnt/bigfoot/usr. (also /tmp and part of /home
reside on that disk)

My /usr symply is a symlink to /mnt/bigfoot/usr.

The fun starts if I do

cd /usr
mkdir tmp 
cd tmp
ln -s ../../etc/passwd passwd

Now "less /usr/tmp/passwd" will actually read /mnt/bigfoot/etc/passwd,
and _not_ /etc/passwd [2]. This is really extremely funny, as, anyone who
doesn't know /usr is a symlink, and symply cd's to /usr/tmp, and does
a "ls -l passwd", will just see that it's ponting to ../../etc/passwd,
without any warning that that file isn't the same as /etc/passwd.

So, to allow people to put directories like /etc, /var, /usr on
different partitions than the root partition, and allow them to make
symlinks from /etc (&c) to /mnt/whatever/etc, I'd say having absolute
symlinks is A Good Thing.

[1] Yes, my memory is really bad. But I seem to remember that I bugged
    Joey Hess some time ago about a package of him not working. As Joey
    has a login on my system, he started exploring, and finally someone
    of us (don't remember who, so it must be Joey) discovered this
    fun trick of relative symlinks

[2] OK, on my system I've now got a link /mnt/bigfoot/etc -> /etc, so
    /usr/tmp/passwd and /etc/passwd (in the example above) on my system
    now actually are the same file. But before it wasn't. It was _really_

joost witteveen, joostje@debian.org

The upstream maintainer is allowed to do things different 
than Debian, but only if he has good reasons to do so.

TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
debian-devel-request@lists.debian.org . 
Trouble?  e-mail to templin@bucknell.edu .

Reply to: