Если вы используете веб-окружение 1С-Битрикс, то вероятно сталкивались с необходимостью предоставить кому-либо доступ к файлам сайтов на сервере.
Сделать это задача нетривиальная, но не стоит направо и налево раздавать доступы от bitrix и root, как и использовать их для повседневной работы.
- root — учетная запись администратора, у неё полный доступ к серверу и настройкам BitrixVM;
- bitirix — то же системная запись, для неё доступен ssh, конфиги все сайты на сервере.
Разработка и поддержка сайта, должна вестись с использованием github или другой системы контроля версий. Если же вы по старинке напрямую “ковыряете” файлы сайтов на сервере, на этот случай заведите отдельную учётку с отключенным ssh и ограниченную домашним каталогом, в который смонтируете нужный для работы сайт (или сайты).
При необходимости, такую же учётную запись можно дать сторонним специалистам или сотрудникам напрямую не связанным с разработкой сайта, например внешнему программисту для установки виджета на сайт, маркетологу, меняющему код аналитики или сотруднику поддержки для отладки модуля или сервиса.
Как настроить
Создадим новую группу пользователей.
groupadd developers
Для созданной группы введём ограничение, её пользователи не смогут подключаться по ssh и не смогут видеть директории за исключением /home/developers/ для этого отредактируем /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp Match Group developers ChrootDirectory /home/developers/ X11Forwarding no AllowTcpForwarding no
Если для доступа к ssh используется ключ, а необходима возможность авторизации по паролю, в /etc/ssh/sshd_config допишите так же:
PasswordAuthentication yes
Перезагрузим sshd для обновления конфигурации.
systemctl reload sshd
Или для более старых версий CentOS.
service sshd restart
Создадим пользователя, которому хотим предоставить доступ.
adduser devuser -g600 -o -u600 -d /home/developers/ -s /sbin/nologin
Число 600 — это id пользователя bitrix, чтобы создаваемые файлы были с нужными правами. Параметр -o позволяет назначить id существующего пользователя другому пользователю.
Установим пользователю пароль.
passwd devuser
Добавим пользователя в ранее созданную группу developers.
usermod -aG developers devuser
Для папки /home/developers/ нужно изменить владельца на root:bitrix и дать права на группу r+x, это нужно для того чтобы ограничения на папку устанавливаемые chroot заработали.
chown root:bitrix /home/developers/ chmod 750 /home/developers/
Создаём в /home/developers директорию для монтирования сайта.
mkdir /home/developers/site chown bitrix /home/developers/site chmod 750 /home/developers/site
Примонтируем сайт к созданной директории
mount --bind /home/bitrix/www /home/developers/site
Но при перезагрузке сервера, монтирование отвалится. Чтобы этого не происходило, добавим в /etc/fstab
/home/bitrix/www /home/developers/site none bind 0 0
Если понадобится дать такой же доступ ещё одному пользователю.
adduser seconduser -g600 -o -u600 -d /home/developers/ passwd seconduser usermod -aG developers seconduser
Если набор сайтов должен отличаться для разных пользователей, придётся создавать отдельные группы и домашние папки с сайтами, остальное по аналогии.
Полезные ссылки
На этом всё. Но вы можете поддержать проект. Даже небольшая сумма поможет нам писать больше полезных статей.
Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.