Является ли /etc/init.d жестко привязанным к CentOS?

Вы можете добавить их в файл / etc / fstab Вот пример:

UUID=35ba5186-5e5a-41e7-80b7-5247d8e06d95 /backup auto nosuid,nodev,nofail 0 0
2
27.07.2017, 16:09
3 ответа

В RHEL, Fedora и CentOS /etc/init.dявляется символической ссылкой на /etc/rc.d/init.d. Там нет жесткой ссылки.

Даже если бы Red Hat захотела, это было бы невозможно в используемых файловых системах.

2
27.01.2020, 21:58

Это мягкая -ссылка, а не жесткая. Символические ссылки указывают на другие файлы. При открытии символической ссылки открывается файл, на который указывает ссылка. Удаление символической ссылки с помощью rm удалит саму символическую ссылку, но не фактический файл.

На это указывает буква l в начале разрешений

lrwxrwxrwx. 1 root root 11 Aug 10 2016 init.d -> rc.d/init.d

Также все от rc0.d до rc6.d являются символическими ссылками на rc.d/rc0.d

2
27.01.2020, 21:58

Этот пост немного устарел, но я не чувствую, что поведение, которое видит ОП, еще не объяснено. Как заявляли другие, /etc/init.dявляется символической ссылкой на /etc/rc.d/init.d. Отсутствующая часть является причиной того, что оба пути, использованные выше, возвращают один и тот же индексный дескриптор из-за использования завершающей косой черты -. Когда путь заканчивается косой чертой, это сообщает ядру и другим инструментам, что предназначен каталог. Он может защитить команду mv/cp от переименования файла, когда предполагаемый пункт назначения должен быть каталогом, которого на самом деле не существует. Это также приводит к тому, что системный вызов lstat (2 ), используемый ls, разыменовывает символическую ссылку и вместо этого возвращает каталог, на который он указывает (, или выдает ошибку, если он не указывает на существующий каталог ). ]. Попробуйте этот пример, чтобы увидеть разницу:

$ ls -id.
927578.
$ ls -id./parent
927641./parent
$ ls -id./parent/
927641./parent/
$ ls -id./parent/child
927643./parent/child
$ ls -id./parent/child/
927643./parent/child/
$ ls -id./child
927645./child
$ ls -id./child/
927643./child/
$ ls -idL./child
927643./child
$ ls -id./child/..
927641./child/..
$ ls -id./child/../..
927578./child/../..

Вы можете видеть, что наличие косой черты в конце имеет значение только для случая символической ссылки, но скрывает индекс ссылки. Кроме того, опция -L для ls делает что-то подобное, хотя и для любого типа файлов.

1
27.01.2020, 21:58

Теги

Похожие вопросы