Это следует из моего предыдущего вопроса , но отличается, поскольку это касается конкретно 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 подключен как тот же пользователь, то есть разработчик.
Любая помощь приветствуется.
Попробуйте:
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
Вы можете столкнуться с некоторыми синтаксическими проблемами. Вы можете попробовать следующее:
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 ! Без пробелов!)
Я попробовал вашу точную последовательность команд на сервере 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 ...
), но я не думаю, что есть эквивалент владения пользователем.