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

Samba, Apache и SVN. Получение правильных разрешений

У меня две машины, на которых я работаю:

  1. Клиент Windows (машина разработки)
  2. Веб-сервер Linux (Ubuntu)

На сервере Linux я установил Apache, Samba и SVN.

Я создал общий ресурс samba, который сопоставляется с каталогом htdocs /, чтобы я мог получить доступ к веб-файлам из Windows.

Следующее иллюстрирует мой рабочий процесс:

  1. Из командной строки на сервере Linux я загружаю рабочие копии веб-проектов с удаленного сервера в каталог htdocs моего локального сервера Linux.
  2. На машине с Windows я получаю доступ к этим файлам (используя самбу), редактирую их в своем редакторе и тестирую в веб-браузерах.
  3. Вернувшись на машину Linux, я регистрирую свою работу на удаленном сервере.

Проблема в том, что в настоящее время для меня, чтобы иметь возможность редактировать файлы в окне Windows через Samba, мне нужно изменить владельца файлов на none (пользователь apache) и настроить общий ресурс Samba для использования разрешений SHARE.

Когда я пытаюсь использовать SVN для фиксации и обновления и т. Д., Я не могу, потому что мой пользователь Linux не «никто» и не имеет на это разрешений. Итак, я должен стать пользователем root, выполнить SVN [команду], а затем изменить все файлы на «никто», чтобы я не мог редактировать в Windows.

Я бы хотел, чтобы веб-файлы принадлежали моему локальному пользователю Linux, что позволило бы командам SVN работать, а для Windows (через самбу) также использовать этого же пользователя.

Как я могу заставить это работать, есть ли способ сопоставить пользователей Windows и Linux?

Файлы и каталоги принадлежат группе, которая Apache работает как. Сделайте каталоги SGID.

chgrp -R group1 /path/to/htdocs
find  /path/to/htdocs -type d -exec chmod 2775 {} \;

Укажите эту группу под общей папкой SAMBA, что можно сделать с помощью force group=group1.

Сделайте пользователя, которого вы аутентифицируете, в SAMBA членом этой группы. Укажите этого пользователя в valid users и write list в пределах вашей доли в САМБА. Это также должно позволить вам использовать SVN.

Также укажите create mask=0664 и directory mask=2775 в smb.conf, который установит соответствующие разрешения при создании. Если файлы принадлежат тому же пользователю, что и Apache, вы можете установить последний бит на 0 в обеих настройках.

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

Уорнер, этот ответ был для меня спасением. Одна вещь, которую я не знал, - это то, что вам нужно подумать, хочет ли кто-нибудь запустить обновление SVN из командной строки. Видеть http://svnbook.red-bean.com/en/1.1/ch06s05.html, это покрывает это.