Некоторые пользователи в git запрещают другим пользователям делать sh фиксацию на удаленном компьютере, используя git с SSH - PullRequest
0 голосов
/ 30 января 2020

Мы используем git для управления исходным кодом и имеем сервер SLES, который мы используем в качестве удаленного для наших git репозиториев. Мы получаем доступ к git с помощью S SH, используя реальные имена пользователей , а не единственную альтернативу git пользователя, которая будет проходить аутентификацию через файл authorized_keys пользователя git.

А пока go, я обнаружил проблему с нажатием на наш пульт. Один пользователь смог сделать sh, а другой не смог sh. Поэтому я начал анализировать, почему некоторые пользователи не могут сделать sh. В конце концов я выяснил причину root: пустой репозиторий на удаленном компьютере всегда имеет каталог с именем objects, где коммиты наконец сохраняются с помощью процесса pu sh. Этот каталог содержит подкаталог с первыми двумя символами значения ha sh. Если каталог еще не был создан, он создается во время пу sh на удаленном компьютере.

И вот таинственная вещь об этом, я не могу объяснить себе: некоторые пользователи создают эти каталоги с разрешениями rwxrwsr-x, тогда как другие пользователи создают их с rwxr-swr-x. Как видите, бит set-gid установлен, что нормально. Но я не могу объяснить, почему некоторые пользователи создают каталоги с групповой записью , а другие нет.

Подводный камень в том, что если пользователь A создает каталог без групповых прав на запись, а пользователь B вычисляет При значении ha sh, которое начинается с двух символов уже созданного каталога пользователя A, пользователь B не может помещать файлы (коммиты) в этот же каталог, что делает невозможным передачу sh на удаленный компьютер для пользователя B.

Я уже наблюдал за настройками umask по умолчанию, которые, вероятно, отличаются, но не смогли найти другие настройки. Все пользователи на нашем сервере SLES имеют маску по умолчанию 0022, в результате чего файлы создаются с rw-r--r--, а каталоги с rwxr-xr-x. И это вторая загадка: почему некоторые пользователи создают каталоги в git с rwxrwsr-x (что правильно для git и предназначено), несмотря на umask 0022?

Кто-нибудь намекает для меня для дальнейшего устранения неполадок? Я хочу, чтобы пользователи создавали подкаталоги objects с rwxrwsr-x.

1 Ответ

0 голосов
/ 30 января 2020

Установить

git config core.sharedRepository 0660

на сервере репо. См. документы .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...