Intereting Posts
У сервера Ubuntu есть корзина? Ubuntu 14.04 Nautilus «подключиться к серверу …» изменилось окно Кого я должен попросить обновить пакет до новой версии по выпуску? Запустите сценарий из представления Django как root без запроса пароля Как обрабатывать ошибку «Нет такого файла или каталога» для файла заголовка из make? / var / log / syslog не вращается Случается ли что-нибудь полезное во время задержки загрузки заставки экрана KDE Plasma5? Кажется, просто время от времени Приостановить включение питания при закрытии сеанса Есть ли контроль яркости для рабочих столов? Какие еще способы установки ubuntu без использования flashdrive? Черный экран после входа Обновлен до Маверика; не может изменить тему Как найти текстовый файл, который содержит определенное слово внутри (не от его имени) Как я могу отключить поведение gedit выравнивания по правому арабскому тексту? LBP1120 на Ubuntu 14.04

В чем разница между ln -s и mount -rbind?

В чем разница между:

ln -s /mnt/extra/home / 

а также

 mkdir /home mount --rbind /mnt/extra/home /home 

mount --rbind делает рекурсивную привязку привязки; то есть иерархия файловой системы, установленная на /mnt/extra/home , также будет доступна через /home .

На практике существенная разница между решением ln -s решением mount --rbind заключается в том, что с ln -s /home символическая ссылка, а mount --rbind – это каталог; это влияет на инструменты, такие как find , df , test / [ и т. д.

Кроме того, ln -s завершится с ошибкой, если /home существует, а mount --rbind завершится с ошибкой, если он не существует, или это не пустой каталог.

Комментарий Mark также ниже: ln -s требует файловой системы с возможностью записи, на которой создается символическая ссылка.

В этом случае как привязка привязки, так и символическая ссылка будут работать аналогично для большинства целей, но они имеют важные отличия.

Символическая ссылка немного более легкая. У вас могут быть сотни или тысячи символических ссылок, если это не проблема управления. Они сидят в файловой системе, а не требуют специальной настройки на системном уровне.

Символьные ссылки могут быть скопированы и скопированы правильно с помощью таких инструментов, как cp и rsync. То есть, инструменты могут распознавать и копировать символическую ссылку, гарантируя, что при восстановлении в другом месте ссылка будет восстановлена ​​и укажет на правильный пункт назначения. По умолчанию все будет работать «правильно». Напротив, при резервном копировании или копировании монтирования привязки будет обработано прозрачно, что приведет к копированию самих файлов, что может привести к дублированию, если вы также получите одинаковые файлы в другом месте и требуете дополнительной работы, если хотите для репликации привязки в месте назначения.

Символьные ссылки могут быть изменены или удалены любым пользователем, имеющим доступ к ссылке, поэтому легко сделать его только суперпользователем или открыть его конкретному пользователю. Приспособления привязки могут быть настроены или изменены только суперпользователем.

Еще одно отличие состоит в том, что символическая ссылка символична , то есть она просто ссылается на путь – строку символов, и она разыгрывается каждый раз, когда вы открываете подкаталог / файл в целевом пути. Напротив, mount --rbind ведет себя как жесткая ссылка, для которой путь не переоценивается при каждом разыменовании.

Это имеет значение в некоторых сценариях, таких как chroot . Например, vsftpd chroot s в домашний каталог учетной записи пользователя FTP, в которую вы входите. Таким образом, если вы поместите символическую ссылку в этот каталог, vsftpd не сможет разыменовать ее, и, таким образом, цель не будет доступна через FTP. Если вы вместо этого сделаете mount --rbind , то vsftpd просто получит доступ к этому поддереву, как если бы он действительно был там, аналогично тому, как если бы вы жестко связали файл.