Всем здравствуйте. Перед вопросом краткое описание: имеется сервер, установлена Ubuntu, настроен вход по SFTP для каждого пользователя.
Кусочек конфигурационного файла sshd:
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
Каждый пользователь в своем клиенте заходит только в свою домашнюю директорию, все работает.
Вопрос следующий: к примеру есть пользователь user, с домашней директорией /var/www/user/, у этого пользователя есть два сайта которые лежат соответственно в /var/www/user/site1, /var/www/user/site2. Каждый сайт ведут разные разработчики user-dev1 и user-dev2. Как разграничить права или может сконфигурировать ssh, чтобы user-dev1 при входе по SFTP видел и имел доступ только к /var/www/user/site1, user-dev2 соответственно только к /var/www/user/site2, а user к своей домашней директории со своими сайтами?
P.S. Пробовал задать пользователю user-dev1 в качестве домашней директорию /var/www/user/site1, но тогда ее владелец должен быть root (ChrootDirectory %h, если я правильно понимаю), и у пользователя user тогда нет к ней доступа, а должен быть к обоим директориям.
Благодарю за совет, попробовал, однако результат половинчатый, может сам по неопытности что-либо не предусмотрел.
использую: mount -o bind /var/www/user/site1 /home/user-dev1/site1
сделал: chown root:root /home/user-dev1/site1
user-dev1 заходит только в /var/www/user/site1, вроде все круто, но делать там ничего не может, естественно.
Права на /var/www/user/site1 выставлены 755, поместил user-dev1 в группу user, сменил права на директорию:
chmod -R 775 /var/www/user/site1. Вроде должно сработать, однако под user-dev1 перестал коннектится. Пошагово вернулся назад, перестает коннектится после шага изменения прав на директорию. Непонятно, почему именно смена прав на директорию (права расширяются), влияет на соединение. Есть какие-нибудь мысли?
sevastopoles: Хм.. Сложно вот так сразу сказать. Что выдает "ls -l /home/user-dev1" при выставлении прав 755 и 775? И зачем chown root:root?
Давайте по порядку посмотрим. Что сразу после mount -o bind? Какие права у директории /var/www/user/site1 и /home/user-dev1/site1 и кто владелец?
сразу после mount -o bind права у директории /var/www/user/site1 755.
до монтирования владелец /home/user-dev1/site1 user-dev1, после автоматически стал user. user-dev1 так не коннектился, я сделал chown root:root на его домашнюю директорию (/home/user-dev1/site1), после этого стал коннектится, в нужную мне директорию ( /var/www/user/site1). Но любое действие кроме просмотра выдавало "нет доступа", поэтому пробовал изменить права на директорию и добавить user-dev1 в группу к user.
sevastopoles: У пользователя user-dev1 домашняя директория должна быть /home/user-dev1, и он должен быть ее владельцем. И уже внутри нее монтируем директорию с файлами.