Назад | Перейти на главную страницу

Управление несколькими пользователями для нескольких сайтов в Ubuntu

Для управления сайтами на моем веб-сервере я создаю нового пользователя для каждого сайта. Они получают домашний каталог, в котором находится их общая папка. Время от времени я могу войти в систему как сайт и хотел бы, чтобы мои config / dotfiles были доступны для работы. Это нормально работает с моим единственным пользователем-администратором, я могу вытащить свой репозиторий git с файлами точек и обновить его, когда есть изменения. Я добавил свое репозиторий точечных файлов в /etc/skel поэтому он добавляется к каждому новому пользователю. Это становится болью, потому что теперь я не могу git pull потому что мой открытый ключ неверен или что-то в этом роде. Кроме того, будет сложно переходить с сайта на сайт и обновлять репо. Есть ли хороший способ справиться с этим? Есть ли где-нибудь, на что я могу просто сделать символическую ссылку и иметь доступ к git и доступ на запись с любой учетной записью? Я пока единственный пользователь, который будет входить в систему с помощью оболочки.

Прежде всего вы должны знать, что для некоторых точечных файлов требуются особые разрешения (например, 700 для ~/.ssh) и что делить некоторые из них между разными аккаунтами потенциально рискованно и нежелательно.

Тем не менее, возможный подход зависит от того, что вы хотите иметь в своих пользовательских каталогах: репозиторий git файлов точек или только файлы точек (без репозитория). Для первого сценария вы можете вытащить свой удаленный репозиторий с учетной записью администратора (что вы уже делаете, если я правильно понимаю). Как только это будет сделано, вы можете клонировать / вытащить репозиторий для других учетных записей. Если невозможно получить репо с удаленного сервера (это кажется вашей проблемой), вы можете просто использовать локальный репозиторий на сервере. Этому просто потребуются разрешения на чтение для рассматриваемых пользователей.

Если вы просто хотите иметь точечные файлы для всех пользователей (без репо), вы можете выполнить проверку из локального на сервере репозитория в другое рабочее дерево, например GIT_WORK_TREE=/path/to/home/dir git checkout -f или используйте rsync для синхронизации файлов. Позаботьтесь о том, чтобы у вас были разрешения и право собственности на все это.

Какой бы подход вы ни выбрали, это можно сделать вручную или автоматически, используя соответствующий скрипт в качестве ловушки git.