Нужно написать скрипт, который будет джейлкит пользователей и даст им доступ к определенной директории сайта

У меня есть сервер приложений Ubuntu 12.04, на котором размещены несколько веб-сайтов. Нам нужно предоставить разработчику доступ, чтобы иметь возможность загружать файлы только на один из веб-сайтов. Я установил Jailkit, но не могу найти, как предоставить ему доступ по sFTP к каталогу веб-сайта.

Вот наша структура каталогов:

/var/www/website.com/htdocs/ /var/www/someotherwebsite.com/htdocs/ /var/www/website3.com/htdocs/ all принадлежит www-data: www-data

Может ли кто-нибудь дать мне пошаговые инструкции по предоставлению пользователю доступа только к одному или двум из этих каталогов через sFTP и без доступа ssh?

3
задан 1 November 2012 в 17:24

1 ответ

В общем, это непрактичная структура каталогов по причинам, с которыми вы сталкиваетесь. Если у вас есть только один веб-сайт, то каталог / var / www вполне подойдет. Однако, по моему опыту, 20+ лет, лучший подход - создать отдельный домашний раздел, чтобы домашний раздел мог быть смонтирован nosuid, noexec, nodev и др. Каждый сайт имеет свою собственную учетную запись пользователя системы. Эта учетная запись имеет оболочку, rssh, которая позволяет sftp, но не ssh. Это практично при хостинге, при найме разработчиков или даже с точки зрения безопасности.

Написав так много, становится ясно одно решение: переместить сайты в каталоги учетных записей пользователей и обновить конфигурацию веб-сервера. Это можно сделать безопасно, создав копию сайта на поддомене. Например, для домена www.website.com создайте CNAME с именем test.website.com. Убедитесь, что сайт на test.website.com работает. Затем обновите файл конфигурации веб-сервера, указав www.website.com на новом месте, если вы знаете, что оно безупречно.

На этом этапе вы можете предоставить доступ через sFTP всем, кому пожелаете, без этой проблемы.

Но ... чтобы перейти к сути и ответить на вопрос: менее очевидным, но эффективным решением является использование ACL. С помощью ACL вы можете получить намного более точные элементы управления разрешениями файловой системы. Использование ACL может обеспечить желаемые ограничения.

Первое, что нужно сделать, это установить программное обеспечение acl:

sudo apt-get install acl

Следующее, что нужно сделать, - это смонтировать или перемонтировать файловую систему с опцией ACL.

sudo -e /etc/fstab

Вы можете увидеть такую ​​строку, поэтому добавьте опцию acl.

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 defaults,acl 0 1

Сохраните и выйдите. Перемонтировать с включенным acl.

sudo mount -o remount,acl /

После этого у вас будет доступ к ACL. Руководство по ACL доступно на help.ubuntu.com . Некоторые примеры использования ACL на askubuntu.com :

Управление произвольными правами пользователей в PureFTPd

Какой самый простой способ редактировать и добавлять файлы в & quot; / вар / WWW & Quot;?

0
ответ дан 1 November 2012 в 17:24

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

Похожие вопросы: