У меня есть сервер, к которому несколько пользователей получают доступ через sftp. У них нет доступа по ssh, и они содержатся в своем домашнем каталоге, установив параметр ChrootDirectory /home/%u
в /etc/ssh/sshd_config
файл. Я хочу, чтобы один пользователь мог получить доступ ко всему каталогу, содержащему файлы, загруженные другим пользователем. Я попытался создать символическую ссылку: ln -s /home/user2/files /home/user1/other_files
но когда user1 входит в систему, они могут видеть ссылку, но не переходить по ней. Если я использую ssh в поле, я могу использовать символическую ссылку other_files, чтобы увидеть загруженные файлы, но пользователи sftp не могут (они получают ошибку разрешения при доступе).
Могу ли я позволить этим пользователям автоматически обмениваться файлами, сохраняя их в своем домашнем каталоге? Я знаю, что символическая ссылка указывает на путь за пределами их каталога, что, как я считаю, вызывает проблему с разрешением. Я не могу перемещать файлы вручную - загрузка происходит автоматически и происходит часто, поэтому мне нужно, чтобы пользователь user1 мог видеть файлы сразу после их загрузки. Если я воссоздаю пользователей с тем же домашним каталогом и настрою разрешения для их соответствующих каталогов загрузки, позволит ли это пользователю 1 получить файлы? В идеале у пользователя 2 не должно быть доступа ни к одному из файлов пользователя 1, но если это произойдет, у меня все равно будет работать.
Некоторые случайные непроверенные идеи:
Вы пробовали chroot user2 в подкаталог каталога, к которому привязан user1?
Если у них нет логинов SSH или они не используют другие службы, перекрытие, вероятно, не вызовет никаких проблем :-)
Возможно, вы также можете использовать липкий бит, чтобы предотвратить повреждение пользователем user1 среды chroot для user2?
Наконец, если вам необходимо постоянно дублировать файлы между двумя отдельными корневыми домашними каталогами, взгляните на inotify
. Есть также inotify-tools
посылка, которая выглядит удобной