Клон Git -выдает репозиторий с пользователем / группой как 0 0

Это следует из моего предыдущего вопроса , но отличается, поскольку это касается конкретно Git.

Когда я клонирую репозиторий Git на моем сервере, он успешно сбрасывает репозиторий, но с CHMOD 0755 и, что особенно важно, со статистикой владельца / группы «0/0».

(В предыдущем вопросе у меня был предположил, что это сделал сервер. Когда я создал папку вручную, то есть mkdir ... , я получил тот же результат, но пришел ответ, что это потому, что я делал это как пользователь root. пользователю, которому принадлежит соответствующая учетная запись CPanel, решило проблему.)

Однако проблема сохраняется для Git, хотя я выполняю операцию клонирования как пользователь CPanel, а не root. Итак:

sudo -u dev -i
echo $USER //<-- "dev"
git clone https://github.com/etc...

Что странно, так это то, что у меня не возникает эта проблема, если я создаю папку через FileZilla, даже если FZ подключен как тот же пользователь, то есть разработчик.

Любая помощь приветствуется.

1
задан 1 August 2019 в 22:55
3 ответа

Попробуйте:

git config core.filemode false

А затем снова клонировать репо.

https://git-scm.com/docs/git-config#Documentation/git-config.txt-corefileMode https://medium.com/@tahteche/how-git-treats-changes-in-file-permissions-f71874ca239d

0
ответ дан 4 December 2019 в 02:48

Вы можете столкнуться с некоторыми синтаксическими проблемами. Вы можете попробовать следующее:

sudo -i <<-"eoSudoCmd"
    echo $USER
    cd /TargetDir
    git clone https://github.com/etc...
eoSudoCmd

Этого будет достаточно, если ваша цель - получить root в качестве владельца ( 0 0 ), но оттуда (я не понимаю, почему ] -u dev в вашем запросе) вы можете просто добавить -u dev в команду sudo или даже:

sudo -i <<-"eoSudoCmd"
    su - dev <<-"eoDevCmd"
         echo $USER
         cd /TargetDir
         git clone https://github.com/etc...
eoDevCmd
eoSudoCmd

(отметка для удобства чтения, eoDevCmd может быть с отступом,но только с помощью Tab ! Без пробелов!)

0
ответ дан 4 December 2019 в 02:48

Я попробовал вашу точную последовательность команд на сервере Linux (начиная с пользователя root , sudo -i -u dev и ) git clone ) и папка была создана, как и ожидалось, пользователем dev . Может быть, папка уже существовала с момента вашей предыдущей попытки как root ?

В любом случае, chown -R dev: dev / path / to / git / repo сможет исправить это.

РЕДАКТИРОВАТЬ: если эта проблема затрагивает только git (а не touch XYZ ), возможно, проверьте шаблоны Git , чтобы узнать, есть ли в действие. На владение группой может влиять бит setgid (например, chmod g + s ... ), но я не думаю, что есть эквивалент владения пользователем.

0
ответ дан 4 December 2019 в 02:48

Теги

Похожие вопросы