Как запретить git требовать sudo для каждой команды git?

Я создал каталог /var/www для хранения своего клона веб-приложений. Когда я первоначально клонировал приложение из github, мне требовалось использовать sudo, и каждый раз, когда я выполняю git pull, требуется sudo. Я сталкиваюсь с некоторыми проблемами из-за этого. Например, мои ключи ssh не совпадают. Поэтому, когда я делаю git pull, мне приходится использовать https вместо ssh и вручную вводить свое имя пользователя и пароль каждый раз, когда я хочу получить и обновить свое приложение. Как мне это настроить, чтобы мне не приходилось использовать sudo каждый раз, когда я использую git?

10
задан 9 September 2013 в 19:50

3 ответа

Здесь происходит несколько вещей:

  • Когда вы sudo git checkout ..., все эти файлы принадлежат пользователю root и корневой группе. Со стандартными разрешениями, поэтому последующие изменения этих файлов требуют, чтобы вы были пользователем root.

  • /var/www/ по умолчанию принадлежит группе www-data. Что-то, что ваш пользователь не по умолчанию.

Самый простой способ написать в /var/www/ - просто добавить своего пользователя в группу www-data . Конечно, вы можете изменить каталог, который будет принадлежать вашему пользователю, но это может иметь некоторые неприятные эффекты, если вы не опережаете их.

После добавления вашего пользователя в группу www-data вам необходимо будет повторно войти в систему.

В вашем конкретном случае вам нужно будет исправить текущую неразбериху с корневыми данными. Вы можете удалить его как суперпользователь (и повторно оформить заказ), но если у вас есть несохраненная работа, будет просто чище вернуть все пользователю. Следующий пример чрезвычайно ленив и предполагает, что то, о чем мы говорим, является единственным в / var / www /:

sudo chown -R www-data: /var/www/
0
ответ дан 9 September 2013 в 19:50

Хм, сменить владельца папки? Я переместил свою папку www в / home / username, вы можете изменить ее местоположение в / etc / apache2 / sites-enabled / 000-default

0
ответ дан 9 September 2013 в 19:50

Я немного опоздал с этим ответом, но обнаружил, что во избежание ввода пароля каждый раз мне приходилось менять репо с https на ssh.

Из раздела справки Github.com:

Команда git remote set-url изменяет существующий URL-адрес удаленного хранилища.

Открытый терминал.

Измените текущий рабочий каталог на ваш локальный проект.

Перечислите существующие пульты, чтобы получить название пульта, который вы хотите изменить.

git remote -v
origin  https://github.com/USERNAME/REPOSITORY.git (fetch)
origin  https://github.com/USERNAME/REPOSITORY.git (push)

Измените URL вашего пульта с HTTPS на SSH с помощью команды git remote set-url.

git remote set-url origin git@github.com:USERNAME/REPOSITORY.git

Убедитесь, что удаленный URL-адрес изменился.

git remote -v

# Проверить новый удаленный URL

origin  git@github.com:USERNAME/REPOSITORY.git (fetch)
origin  git@github.com:USERNAME/REPOSITORY.git (push)
0
ответ дан 9 September 2013 в 19:50

Другие вопросы по тегам:

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