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

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

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

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам