У меня две машины, на которых я работаю:
На сервере Linux я установил Apache, Samba и SVN.
Я создал общий ресурс samba, который сопоставляется с каталогом htdocs /, чтобы я мог получить доступ к веб-файлам из Windows.
Следующее иллюстрирует мой рабочий процесс:
Проблема в том, что в настоящее время для меня, чтобы иметь возможность редактировать файлы в окне 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, это покрывает это.