Корректные имена пользователей при отслеживании/etc/в репозитории мерзавца и фиксации как корень

Очень распространено, если Вы полагаете, что входящие данные не могут следовать тем же сетевым маршрутом как исходящий к тому же серверу. И Вы полагаете почти всегда совместное использование сети с другим сетевым трафиком.

Очереди QoS могут добавить дополнительные задержки любого направления. Другая торговля любым направлением будет влиять на время отклика.

У некоторых людей все еще есть спутниковые линии, которые используют спутник для загрузки и модем для загрузки. Это - совсем другое время отклика так или иначе.

На LAN, не так другая задержка...

Таким образом да, это очень распространено на практике. Почему Вы спрашивали?

13
задан 28 November 2011 в 15:53
6 ответов

На автора git и имя коммиттера можно влиять с помощью переменных окружения GIT_COMMITTER_NAME , GIT_COMMITTER_EMAIL , GIT_AUTHOR_NAME и GIT_AUTHOR_EMAIL .

Теперь уловка состоит в том, чтобы отправить эти переменные на удаленный сервер при подключении через SSH:

  1. Определите и экспортируйте переменные в вашем файле ~ / .bashrc :

     export GIT_AUTHOR_NAME = "Christian Weiske"
    
  2. Автоматически отправлять их через SSH-соединение, настроив ~ / .ssh / config :

     SendEnv LANG LC_ * GIT_ *
    

    LANG и LC _ * не обязательны, но в Debian по умолчанию используется ssh_config, поэтому я подумал, что должен отправить и их тоже

  3. На удаленном сервере настройте конфигурация sshd в / etc / ssh / sshd_config для принятия GIT _ * переменных среды:

     AcceptEnv LANG LC_ * GIT_ *
    

Вуаля - git commit от имени пользователя root в / etc / приводит к:

commit 8a4654f13241f05361283a88ce041a0fc24b8ac6
Author: Christian Weiske <christian.weiske@netresearch.de>

В случае сбоя сервера когда-нибудь в будущем: http: // cweiske .de / tagebuch / carry-git-settings.htm

12
ответ дан 2 December 2019 в 21:22

Во-первых, и не связанный с Вашим вопросом, я убедил бы Вас срочно остановиться для использования root логины и su и используйте пользовательские логины и sudo вместо этого. Ограничьте Ваш root логины консоли только или даже этого.

Тем не менее git commit имеет a --author опция, которая может помочь Вам там:

# git commit --author='Author Name <author@email.address.com>' -a

Можно также тщательно использовать переменные среды на пользователя для установки GIT_AUTHOR_NAME и GIT_AUTHOR_EMAIL переменные. В журнале это появится различные авторы и тот же разработчик (root@host), но это даст Вам больше аудита. Конечно, это означает доверие администраторам для сохранения переменных в целости. Поскольку каждый использует определенную оболочку, они могут sudo базироваться и получать файл с их определенным git переменные, определяя каждого по-другому на фиксациях. Не очень практичный, но можно даже автоматизировать это со сценариями.

Править: Конечно, еще лучший подход, как назначено @ScottPack должен был бы использовать систему управления конфигурацией как Марионетка или Шеф-повар и использовать мерзавца для отслеживания изменений на центральном сервере а не на реальных серверах, таким образом, у каждого администратора могла быть рабочая копия конфигурации.

5
ответ дан 2 December 2019 в 21:22

В дополнение к ответу coredump можно также установить эти опции в .git/config файл в Вашей рабочей копии репозитория (вручную, или использование git config команда.

Посмотрите man git-config для большего количества информации о команде и прохладных вещах можно сделать с ним.

0
ответ дан 2 December 2019 в 21:22

С помощью шпатлевки вы можете установить это в «Соединение -> Данные -> Переменные среды».

Они также присутствуют после ' su 'в root.

3
ответ дан 2 December 2019 в 21:22

Если вам случится подготовить учетные записи пользователей на своих серверах с помощью ключей ssh, вы можете фактически присоединить переменные среды к авторизованным ключам во время установки - например, в ~ bob / .ssh / authorized_keys

environment="GIT_AUTHOR_NAME=Bob Smith",environment="GIT_AUTHOR_EMAIL=bob.smith@megacorp.com" ssh-rsa AAAA.... bob.smith@megacorp.com

Таким образом, когда пользователи SSH входят, они автоматически настраивают эти envs - им не нужно пересылать их с локального клиента. Бонусные баллы, если у вас уже есть эта информация и вы генерируете конфигурации authorized_keys из системы управления конфигурациями.

Примечание. Для приведенного выше требуется PermitUserEnvironment yes в sshd_config

3
ответ дан 2 December 2019 в 21:22

Если вы используете sudo и у вашего пользователя без полномочий root установлен домашний каталог:

git -c include.path = будет включать конфигурацию в <файл> .

Для автоматического извлечения файлов конфигурации моего пользователя без полномочий root я использую псевдоним bash :

alias gsudo='sudo git -c "include.path='"${XDG_CONFIG_DIR:-$HOME/.config}/git/config\" -c \"include.path=$HOME/.gitconfig\""

Затем я использую ] gsudo вместо git для обоих:

  • Запуск от имени пользователя root
  • Имеет доступ ко всей конфигурации git пользователя без полномочий root

Убедитесь, что конфигурация действительно импортируется:

gsudo config --list --show-origin --includes | less
1
ответ дан 2 December 2019 в 21:22

Теги

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