В настоящее время я настраиваю apache на сервере Linux, и мне нужно создать нового пользователя, который может входить в систему и редактировать файлы только в определенном каталоге.
В настоящее время мой веб-сайт настроен как
/ данные / htdocs / mywebsite /
Разрешения на это apache: apache
Теперь мне нужно создать нового пользователя «joeblogs» и ограничить этого пользователя доступом только к / data / htdocs / mywebsite / store /
Пользователи должны иметь возможность использовать SSH, а также SFTP, но всегда быть направленными непосредственно в эту папку, также пользователь должен иметь полный доступ к папке / store /, но не иметь возможности видеть какие-либо другие папки или файлы на система /
Любая помощь в этом будет оценена по достоинству. Я бегал по кругу часами.
SSH имеет встроенную возможность chroot для пользователя (начиная с 4.9p1), но использовать его для интерактивных сеансов довольно сложно.
Однако ограничить sftp довольно просто, и его можно настроить для каждого пользователя или группы.
Match User joeblogs
ChrootDirectory /data/htdocs/mywebsite/store/
ForceCommand internal-sftp
AllowTcpForwarding no
Интерактивные сеансы более сложны, потому что пользователю нужна оболочка и некоторые файлы устройств.
Из man 5 sshd_config
:
ChrootDirectory должен содержать необходимые файлы и каталоги для поддержки сеанса пользователя. Для интерактивного сеанса требуется как минимум оболочка, обычно sh (1), и базовые узлы / dev, такие как null (4), zero (4), stdin (4), stdout (4), stderr (4), arandom (4) и tty (4) устройства
Я бы не рекомендовал это, так как вам нужно будет создавать и поддерживать копии любых утилит, которые им нужны, в их chroot. Если вы все еще хотите попробовать пойти по этому пути, вы можете узнать больше об этом на странице руководства sshd_config и Вот