Я пытаюсь настроить sftp, чтобы несколько доверенных лиц могли получить доступ / редактировать / создавать некоторые файлы. Я заключил пользователя в его домашний каталог (/ home / name), но столкнулся с проблемой. Я хочу, чтобы они также могли получить доступ к другим частям VPS, потому что это также игровой сервер, веб-хост и т. Д., И я хочу, чтобы они могли иметь полный контроль над файлами за пределами своего каталога jailed.
Я попытался создать символическую ссылку (ln -s) на желаемый каталог, но она не работает, как ожидалось. Я попробовал (cp -rl) к файлам, которым хотел предоставить доступ, и это сработало - они могут редактировать файлы в своем каталоге, и это изменяет тот, который хранится вне тюрьмы. НО они не могут создавать новые файлы (они могут, но не обновляются вне тюрьмы). Я знаю, что, вероятно, делаю это «неправильно», но что мне делать, чтобы делать то, что я хочу?
Символьные ссылки являются чисто символическими: они не содержат ничего, кроме пути, поэтому, когда вы открываете символическую ссылку, ОС считывает путь и использует его вместо этого. В среде chroot ссылки (особенно с абсолютными путями) обычно не указывают на то же место, на которое они указывали в обычной среде.
Если ОС сервера - Linux, лучше всего связать-смонтировать весь каталог где-нибудь внутри каталога chroot. При использовании этого важно помнить, что это не копия каталога, все, что удалено здесь, будет удалено из другого каталога (важно, если пользователь может mv
файлы или rm -rf
). Сделать это:
mount --bind /some/directory /somewhere/else
Файлы в каталоге должны быть настоящими файлами. С символическими ссылками здесь, вероятно, будут те же проблемы, которые вы пытаетесь связать с файлами в первую очередь.