SFTP: символьные ссылки файла в защищенном (chrooted) каталоге


22

Я пытаюсь настроить sftp так, чтобы несколько доверенных людей могли получить доступ / редактировать / создавать некоторые файлы. Я посадил пользователя в домашний каталог (/ home / name), но столкнулся с проблемой. Я хочу, чтобы они также имели доступ к другим частям VPS, потому что это также игровой сервер, веб-хостинг и т. Д., И я хочу, чтобы они имели полный контроль над файлами за пределами своего закрытого каталога.

Я попытался создать символическую ссылку (ln -s) на нужный каталог, но он не работает, как ожидалось. Я попытался (cp -rl) к файлам, к которым я хотел предоставить доступ, и это сработало - они могут редактировать файлы в своем каталоге, и это меняет тот, который хранится вне тюрьмы. НО они не могут создавать новые файлы (они могут, но это не будет обновляться за пределами тюрьмы). Я знаю, что, вероятно, я не делаю это "правильным образом", но что я могу сделать, чтобы делать то, что я хочу?

Ответы:


40

Символьные ссылки являются чисто символическими: они не содержат ничего, кроме пути, поэтому, когда вы открываете символическую ссылку, ОС считывает путь и использует его вместо этого. В среде chroot ссылки (особенно с абсолютными путями) обычно не указывают на то же место, на которое они указывали в обычной среде.

Если серверной ОС является Linux, лучше всего связать и смонтировать весь каталог где-нибудь внутри каталога chroot. При использовании этого важно помнить, что это не копия каталога, все удаленное здесь будет удалено из другого каталога (важно, если пользователь может mvфайлы или rm -rf). Сделать это:

mount --bind /some/directory /somewhere/else

Файлы в каталоге должны быть реальными файлами. Символьные ссылки здесь, вероятно, будут иметь те же проблемы, с которыми вы пытаетесь связать файлы в первую очередь.


Спасибо за Ваш ответ. Можете ли вы объяснить или указать мне учебник о том, как я могу заставить это работать? Я отключил ssh для гостей, поэтому у них есть только доступ по sftp. В какой файл я положил эту команду?
— Dukevin

Хотя это не рекомендуется, вы также можете создавать жесткие ссылки на каталоги, что будет проще, но только если все файлы находятся на одном устройстве.
— Сокол Момот

Какова команда для этого
— Dukevin

@KevinDuke Это не то, что пользователи могут делать сами, только root может использовать mountэтот способ. Там может быть способ указать это, /etc/fstabтак что это делается автоматически при загрузке, но я не уверен, как
— DerfK

1
Спасибо. Я прочитал несколько уроков и понял это. Ваш ответ действительно помог направить меня в правильном направлении. Благодарность! Для тех, кто хочет знать, это помогло: aplawrence.com/Linux/mount_bind.html freebsd.org/doc/en_US.ISO8859-1/books/handbook/… redbottledesign.com/…
— dukevin
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.