Як я можу отримати доступ до каталогу поза chroot зсередини?


33

У мене є користувач, який записаний у свій домашній каталог, але я хочу, щоб вона також могла управляти файлами всередині /var/www. Як такий, я зробив наступне:

root@server:/home/username# ln -s /var/www www
root@server:/home/username# cd www
root@server:/home/username/www# chown username:username *

Однак, коли я намагаюся відкрити /wwwфайл FileZilla, він повертає "немає такого файлу чи каталогу". Я бачу пов'язаний каталог, але не можу отримати доступ до нього. Що я роблю неправильно?

Відповіді:


52

Посилання посилань по суті є лише вказівниками на інший файл, ви не можете вказати на щось поза chroot, оскільки він шукає файл з таким ім'ям ( /var/wwwякого немає у chroot). З іншого боку, жорсткі посилання є вказівниками на інде. Таким чином, якщо ви хочете це зробити, вам потрібно використовувати жорстке посилання, опустивши його -s. Однак ви не можете важко зв’язати каталог (крім .та ..) в Linux з різних причин (головна з них - це те, що ці файлові системи є DAG ).

Мабуть, найкращим способом було б використання кріплення для прив’язки. Спробуйте це:

mount --bind /var/www /home/username/www

ln: '/var/www': hard link not allowed for directory
Док.

7
@Doc - Каталоги не можуть бути жорстко пов'язані в Linux. Скріплення кріплення повинно працювати.
Кріс Даун

1
Чи можу я додати це до fstab, щоб зробити його стійким?
Корнель

Не могли б ви повторитись через каталоги та копіювати дерево із жорсткими посиланнями? Наприклад, якщо у батьків є, /foo/a.txtі /foo/bar/b.txtтоді ви могли б це зробити mkdir -p ./chroot/foo/; mkdir -p ./chroot/foo/bar; ln /foo/a.txt ./chroot/foo/a.txt; ln /foo/bar/b.txt ./chroot/foo/bar/b.txt? Або це все-таки не допоможе чомусь? (Очевидно, що це ви б написали сценарій, а не робили вручну).
shadowtalker

1
@Kornel ви можете використовувати noneрежим разом із bindопцією: serverfault.com/questions/613179/…
Іван
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.