У меня есть сервер приложений 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?
В общем, это непрактичная структура каталогов по причинам, с которыми вы сталкиваетесь. Если у вас есть только один веб-сайт, то каталог / 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;?