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