1.9.2. Примеры создания символических ссылок

1.9.2. Примеры создания символических ссылок

Символическая ссылка создается с помощью команды ln -s, формат которой таков:

ln -s исхолный_файл [имя_ссылки]

Если имя ссылки не указано, будет создана ссылка, имя которой совпадает с именем исходного файла.

Рассмотрим случай, когда в системе регистрируются 40 пользователей, относящихся к двум группам — менеджеры (sales) и административный персонал (admin). Для каждой группы при входе в систему должны быть заданы свои установки. Сначала

я удалю все профильные файлы (.profile) во всех пользовательских начальных каталогах, а затем создам в каталоге /usr/local/menus два новых профильных файла — sales.profile и admin.profile. В начальном каталоге каждого пользователя необходимо создать символическую ссылку на один из этих двух файлов. Вот как это делается для пользователя matty, являющегося членом группы sales:

$ cd /home/sales/matty

$ rm .profile

$ ln -s /usr/local/menus/sales.profile .profile

$ ls -la .profile

lrwxrwxrwx 1 matty sales 5567 Oct 3 05:40 .profile -> /usr/local/menus/sales.profile

Аналогичные действия выполняются для всех пользователей. Теперь для изменения любого из профилей достаточно поменять всего один файл — либо sales.profile, либо admin.profile.

Когда ссылка больше не нужна, ее можно удалить. Однако помните, что при удалении исходного файла символическая ссылка не удаляется автоматически, а лишь становится недействительной. При обращении к ней выводится сообщение "No such file оr directory" (нет такого файла или каталога).

Символическая ссылка может указывать на файл или каталог, находящийся в другой файловой системе. Следует только учитывать, что у вас должно быть право поиска во всех каталогах, перечисленных в путевом имени к исходному файлу. Режим доступа к ссылке устанавливается равным 777 (rwxrwxrwx), но режим доступа к исходному файлу не меняется.

После инсталляции новой системы мне часто приходится создавать ссылку на каталог /tmp из каталога /var, так как некоторые приложения рассчитывают на каталог /var/tmp (а он не всегда существует) для размещения в нем своих временных файлов. Чтобы хранить все временные файлы в одном месте и не создавать новый каталог, я формирую символическую ссылку:

$ ln -s /tmp /var/tmp $ cd /var $ ls -l

lrwxrwxrwx 1 root root 5567 Sep 9 10:40 tmp -> /tmp