Verification: a143cc29221c9be0

Nd nnov ru bitrix admin

Nd nnov ru bitrix admin

Введение

Ранее я уже рассказывал, как делать тонкую настройку сервера под bitrix на основе bitrixenv. Сейчас продолжу эту тему и расскажу, как добавить еще одного пользователя в систему, чтобы он мог спокойно работать над сайтом. Напомню, что по умолчанию bitrixenv создает системного пользователя bitrix с доступом по ssh к серверу. От этого пользователя работают многие службы, так же для него выставлены полные права на исходники сайта.

Если над проектом работает один программист, то нет никаких проблем. Ему выдается пользователь bitrix, который не имеет полных прав на сервере, но при этом может работать с исходниками сайта. И все в порядке. А вот если надо организовать одновременную работу нескольких разработчиков, которым нужен прямой доступ к исходникам сайта, то придется что-то придумывать. Давать им всем одного и того же пользователя неудобно. Нужно каждому свой. Я покажу далее, как это сделать.

Напомню, что по-хорошему, вести разработку сайта необходимо с использованием git. Ранее я показывал пример, как можно деплоить bitrix сайт из репозитория. На практике, над небольшими проектами работают по старинке, правя напрямую исходники сайта. Зачастую даже без dev окружения. Я с этим постоянно сталкиваюсь, когда соприкасаюсь с небольшими интернет магазинами. Думаю, для микро проектов это приемлемо, так как отслеживать изменения по репозиторию банально некому.

В общем, если вам нужна дополнительная учетная запись для работы с bitrix, рассказываю, как это сделать. Причем доступ у этой учетки будет только к папке с исходниками сайта. Первое, что приходит на ум, это создать отдельного пользователя с шелом /sbin/nologin и настроить ему chroot по sftp в настройках ssh. Это первое, что я попробовал. Подробно об этом я рассказываю в отдельной статье про доступ к сайту через sftp. Но в данном случае это не прокатывает. При подключении вы будете получать ошибку в /var/log/secure:

Aug 10 16:11:08 bitrix-dev sshd[3819]: pam_unix(sshd:session): session opened for user devbitrix01 by (uid=0)
Aug 10 16:11:08 bitrix-dev sshd[3819]: fatal: bad ownership or modes for chroot directory component "/home/bitrix/" [postauth]
Aug 10 16:11:08 bitrix-dev sshd[3819]: pam_unix(sshd:session): session closed for user devbitrix01

Суть ошибки в том, что на всем пути до chroot директории, владельцем каталогов с правами на запись может быть только root. Нам это никак не подходит, так как у домашнего каталога /home/bitrix владельцем должен быть пользователь bitrix.

Добавление sftp пользователя в bitrixenv

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

Добавляем в систему группу dev-group.

# groupadd dev-group

Настроим chroot для всех пользователей этой группы, чтобы они не могли выйти за пределы каталога с сайтами при подключении к исходникам по sftp. Для этого редактируем файл /etc/ssh/sshd_config. Комментируем существующий параметр и добавляем новые.

#Subsystem	sftp	/usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match Group dev-group
ChrootDirectory /home/dev-group/

Для применения настроек перезапускаем sshd.

# systemctl restart sshd

Теперь создаем нового пользователя, который будет работать с сайтом.

# adduser devbitrix01 -g600 -o -u600 -s /sbin/nologin -d /home/dev-group/
devbitrix01 имя нового пользователя
-g600 принадлежность к группе с id 600, дефолтный id для группы bitrix в bitrixenv
-o ключ, позволяющий создать пользователя с неуникальным id
-u600 задаем id пользователя 600 как у пользователя bitrix в bitrixenv
-s /sbin/nologin указываем shell, данном случае его отсутствие
-d /home/dev-group домашний каталог для пользователя

Если пользователю нужен будет доступ к консоли по ssh, то вместо /sbin/nologin укажите /bin/bash. Устанавливаем пароль для пользователя:

# passwd devbitrix01

Теперь для того, чтобы заработал chroot по sftp, выставляем необходимые права доступа на домашний каталог пользователя:

# chown root:bitrix /home/dev-group/
# chmod 750 /home/dev-group/

Уже сейчас вы можете подключиться по sftp пользователем и проверить доступ. Удивитесь, когда обнаружите, что пользователь может перемещаться по всем директориям сервера.

Подключение по sftp к bitrix

Все правильно, я еще не добавил его в группу dev-group, для которой назначен chroot. Делаем это.

# usermod -aG dev-group devbitrix01

Отключитесь и подключитесь заново. Пользователь будет сразу попадать в свой домашний каталог, выхода из которого у него теперь нет. Дальше нам осталось добавить в этот каталог исходники сайта.