У нас есть каталог разработки, которым пользуется наша команда. Каждый раз, когда пользователь добавляет файл, владелец переходит к этому пользователю. Есть ли способ гарантировать, что владелец файлов, добавленных в каталог, всегда остается неизменным?
Если вы получаете доступ к каталогу через SMB с помощью Samba, вы можете использовать force user
параметр в smb.conf
. В противном случае вы действительно не сможете заставить владелец. Однако, если проблема заключается просто в том, что пользователи не могут редактировать файлы друг друга в каталоге, вы можете исправить это, выполнив следующие действия:
/etc/profile
и /etc/login.defs
. Это гарантирует, что файлы доступны для групповой записи.chmod g+s
"). Это специальная функция в Unix, которая делает все новые файлы принадлежащими общей группе.Нет, но вы можете сделать каталог setgid таким образом, чтобы владелец группы каталога имел групповое владение всеми файлами, созданными в нем.
Стандартное решение этой проблемы - совместное использование репозитория управления версиями между несколькими пользователями - состоит в том, чтобы каждый мог взаимодействовать с репозиторием через сервер, работающий как выделенный пользователь, а не через файловую систему. Как вы обнаружили, использование файловой системы проблематично.
Вы не указали, какую систему контроля версий вы используете, но с помощью Suversion или git вы должны настроить выделенного пользователя в своей системе, а затем предоставить вашим разработчикам доступ к репозиторию через ssh. В Subversion вы бы использовали svn+ssh
URL-адреса; есть документация в svn справочник.
По умолчанию git использует ssh для доступа к «удаленным» репозиториям. Я заключил «удаленный» в кавычки, потому что в вашем случае вы будете запускать «сервер» в локальной системе.