У меня работает веб-сервер CentOS Linux 7.2.1511. Я выполняю большинство рутинных задач управления через Plesk 12.5.30 Обновление # 29 но я также использую SSH и, когда мне нужно, пачкаю командную строку. На этом сервере работает несколько веб-сайтов. У меня есть несколько разных подрядчиков, каждый из которых работает над своим собственным набором веб-сайтов. Например.
Все веб-сайты существуют в своих каталогах под /var/www/vhosts
. Например.
/var/www/vhosts/website1.com
/var/www/vhosts/website2.com
Как мне предоставить каждому подрядчику доступ к их соответствующим сайтам, не предоставляя им доступ ко всем сайтам? Я не хочу делиться учетными данными между пользователями (т.е. создавать одну учетную запись FTP для каждого веб-сайта и передавать ее). Мне также нужно, чтобы это было масштабируемым. Я буду добавлять больше подрядчиков и больше веб-сайтов, и мне нужно будет предоставить любому подрядчику доступ к любому веб-сайту.
Насколько мне известно, я могу установить только один домашний каталог для каждого пользователя. Я попытался создать символические ссылки в домашних каталогах, но клиенты FTP не отображали и не следовали символическим ссылкам. Из-за проблемы масштабируемости я не думаю, что смогу решить ее просто с помощью прав доступа к файлам (но, возможно, я ошибаюсь). Я видел несколько предложений по монтированию каждой папки в домашнем каталоге пользователей, но это выходит за рамки моих возможностей для комфортной работы, и я не хочу испортить свой жесткий диск.
Как насчет "привязки крепления"?
# mount -o bind /var/www/vhosts/website1.com/ /home/ContractorA/website1.com/
# mount -o bind /var/www/vhosts/website2.com/ /home/ContractorA/website2.com/
# mount -o bind /var/www/vhosts/website3.com/ /home/ContractorA/website3.com/
# mount -o bind /var/www/vhosts/website1.com/ /home/ContractorB/website1.com/
# mount -o bind /var/www/vhosts/website4.com/ /home/ContractorB/website4.com/
Отмонтировать как обычно.
# umount /home/ContractorA/website1.com/
:
Настройте соответствующие логические значения SELinux
Перечислите связанные логические значения
# semanage boolean -l | egrep 'ftp|http' | sort
Включите логические значения, которые могут быть применимы временно, т.е.
# setsebool httpd_can_connect_ftp on
Чтобы включить логическое значение постоянно, используйте флаг -P, т.е.
# setsebool -P ftp_home_dir on