При создании нового каталога в него по умолчанию записываются две жесткие ссылки: ссылка на самого себя (.) и ссылка на родительский каталог (..). Указатель на подкаталог содержится в родительском каталоге. Таким образом, на каталог может существовать много жестких ссылок: их количество равно числу подкаталогов первого уровня + 2.
Создание иных жестких ссылок на каталог обычно не разрешается никому, включая администратора. Например, если в полном имени файла /home/a/b/c файл c (точнее – файловая запись в каталоге b) является жесткой ссылкой на каталог a, то образуется петля, которая делает невозможным обращение к файлу. Как следствие, становится невозможным рекурсивный обход каталога, а также его удаление. Такой результат может быть получен путем редактирования блока данных каталога, в котором содержатся файловые записи. Реализовать эту угрозу обычному пользователю, не наделенному административными правами, не удастся.
Никто и ничто, кроме квоты на дисковое пространство, не может помешать пользователю в копировании доступных для чтения и известных по имени файлов из каталогов, в которые он может войти. Количество копий также не ограничивается. Угрозы в копировании и тиражировании доступных для чтения файлов нет, тем более что копии меняют владельца. Посмотрим, существуют ли реальные угрозы в создании нового имени у чужого файла.
Угроза конфиденциальности на файловом уровне пресекается запретом чтения файла для посторонних. Обладание именем недоступного для чтения файла не позволяет ни прочитать, ни скопировать его.
Угрозы целостности также не существует. Если целевой файл не доступен на запись, обладание одним из его имен не позволит дописать его либо изменить в нем что-нибудь. Удаление файла – это стопроцентное нарушение его целостности, но в данном случае это не угроза (если исключить случайное удаление). Но здесь мы имеем дело с воспрепятствованием удалению. Единственное доступное право обладателя его последнего имени заключается в удалении файла вместе с его последним именем. Кстати, если администратор намерен уберечь пользовательские файлы от случайного или преднамеренного удаления, он может наряду с резервным копированием создать на них жесткие ссылки из своего каталога.
Угроза блокирования существует, но только для нарушителя – ведь недоступный файл, которому он создал новое имя, остается для него заблокированным. Что касается пользователя как легитимного обладателя файла, то ничего противоестественного в том, что удаленный файл становится для него недоступным, не усматривается.
И все-таки определенная угроза в существовании жестких ссылок существует. Она заключается в том, что один пользователь может воспрепятствовать другому в удалении файлов. Как известно, файл может быть логически удален, если удаляется его последнее имя. Обладатель (не обязательно владелец!) исходного файла может не обратить внимания на увеличившееся количество ссылок на файл и удалить его. Упоминание о файле исчезает из каталога обладателя, и у него может создаться иллюзия удаления файла (на время позабудем, что само логическое удаление файлов – также иллюзия для пользователей). Обладатель перестает беспокоиться о секретности и сохранности (целостности) «удаленного» файла. Между тем этот файл (точнее, его имя) перешел другому пользователю, который его владельцем и обладателем прав доступа не стал (в индексном дескрипторе файла записан UID его прежнего владельца). Если такая угроза представляет опасность для организации, администратору следует обратить внимание на поиск таких файлов и даже написать для этого сценарий.
Зная, что все события в системе могут находиться под контролем администратора, нелояльный пользователь может попытаться скрыть некоторые свои действия от контроля и аудита. Например, пользователь хочет воспользоваться утилитой su и попробовать свои силы в подборе пароля администратора, в отношении которого он имеет некоторые догадки. Для скрытия своих неблаговидных действий он может применить жесткую ссылку на файл программы. Выглядит это так. Пользователь создает из временного каталога жесткую ссылку на файл su и делает это с помощью команды