Этот короткий скрипт может быть использован для достижения того, чего вы хотите, при условии, что вы правильно настроили git как своего обычного пользователя. Он принимает все аргументы, которые делает git commit
, кроме --author
(который он генерирует автоматически), и автоматически запрашивает у вас пароль, поэтому вам не нужно запускать его с помощью sudo
:
#!/bin/bash
name=`git config --get user.name`
email=`git config --get user.email`
author="${name} <${email}>"
sudo git commit --author "$author" $@
Он извлекает ваше имя и адрес электронной почты из конфигурации git вашего пользователя, создает из него информацию об авторе и затем вызывает git для создания коммита. Вы можете заменить commit
любой другой подкомандой git, которая генерирует коммиты и принимает аргумент --author
.
В качестве альтернативы, клонируйте репозиторий как обычный пользователь (через клон SSH, так что для вашего примера /var/www
это будет git clone root@localhost:/var/www
), сделайте коммиты вашим обычным пользователем, а затем нажмите их в основной репозиторий. Это дает вам больше свободы для управления вашей копией, как вы хотите, но требует, чтобы люди могли войти в систему как пользователь root через ssh на интерфейсе обратной связи.
Однако обратите внимание, что вы хотите быть осторожным с использованием git напрямую с etckeeper
, если вы добавляете или удаляете файлы /etc/.etckeeper
должен корректно обновляться. Это происходит автоматически, если вы делаете etckeeper commit
(который, к сожалению, не поддерживает произвольное авторство коммитов), но не если вы просто делаете git commit
.