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

Как мне управлять разрешениями для нескольких пользователей, редактирующих один и тот же код на моем сервере?

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

Я придумал два "чистых" метода, но я бы предпочел их избегать ...

  1. Каждому веб-сайту дается собственный пользователь / группа, которой он владеет. Веб-сайт будет храниться в / home / username / www /, и я буду использовать suEXEC Apache для переключения между пользователями / виртуальными хостами.

  2. Я создаю одного пользователя / группу в системе, которую каждый кодировщик использует для входа в систему. Затем веб-сайты можно хранить в /var/www/website.com/, и Apache будет работать от имени этого пользователя, чтобы иметь доступ для чтения / записи к файлам.

Очевидные преимущества в плане безопасности пункта 1 заключаются в том, что каждый веб-сайт представляет собой песочницу. Если один сайт скомпрометирован, остальные должны быть в безопасности. Обратной стороной этого метода является наличие нескольких имен пользователей / паролей для запоминания каждым кодировщиком.

Пункт 2 означает, что у каждого кодировщика один логин (тот же логин ...) и меньше беспорядка (50 веб-сайтов на хосте означают 50 новых пользователей / групп)

Моя идеальная установка заключалась в том, чтобы дать каждому программисту своего пользователя / группу. Это даст им их собственную папку ~ для хранения их материалов, и, если мне нужно отозвать доступ кодировщика, я просто отключу их логин. Это превосходит необходимость менять пароль для каждой учетной записи веб-сайта / кодера.

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

Поэтому я в основном ищу чистый и безопасный способ для нескольких программистов работать на нескольких общих веб-сайтах на одном хосте. Что ты предлагаешь?

Если разрешить нескольким людям редактировать производственный код, это принесет много боли. Используйте контроль версий и развертывайте только сборки с тегами.

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

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

Так вот ответ на ваш вопрос:

Создайте двух пользователей и дайте им одинаковый идентификатор группы

 #groupadd -g 5000 programmers
 #useradd ren
 #useradd stimpy

Отредактируйте файл / etc / passwd и измените свой guid для двух ваших пользователей:

 ren:x:505:5000::/home/ren:/bin/bash
 stimpy:x:506:5000::/home/stimpy:/bin/bash

Затем измените umask для этих пользователей, чтобы они создавали весь свой файл с rw для групповых программистов.

 #vi /home/ren/.bash_profile
 umask 002

Теперь подайте su каждому пользователю, чтобы убедиться, что они оба могут редактировать одни и те же файлы в будущем:

 #su - ren
 #vi /path/to/file.txt
 here's some content in the file

 #exit

 #su - stimpy
 #vi /path/to/file.txt
 append some more content

Вы обнаружите, что когда ren создавал файл, владельцем был ren: programmers с rw-rw-r. Это позволит стимпи также редактировать файл. Вы также сможете отслеживать, как изначально был создан файл (но не кто его редактировал).