Если вы сделали
mkdir /tmp/foo
ln -s ../../etc/passwd /tmp/foo
, то доступ / tmp / foo / passwd
преобразуется в / tmp / foo /../../ etc / passwd
- т.е. ] / etc / passwd
Если вы сделали
mkdir /var/tmp/foo
ln -s ../../etc/passwd /var/tmp/foo
, то доступ к / var / tmp / foo / passwd
преобразуется в / var / tmp / foo /../../ etc / passwd
- ie / var / etc / passwd
Таким образом, вы можете видеть, что "относительный путь символьной ссылки" определяется по-разному, в зависимости от того, где сохранена ссылка. Текущий каталог, в котором вы запускаете команду ln
, вообще не задействован.
Чтобы избежать этой путаницы, некоторые пользователи изменяют свой текущий каталог перед созданием символической ссылки
mkdir /tmp/foo
cd /tmp/foo
ln -s ../../etc/passwd