#Как проявляется ошибка и когда применим способ
Сообщение dubious ownership или detected dubious ownership in repository появляется, когда Git обнаруживает несоответствие владельца рабочей папки и текущей учётной записи. Защита safe.directory предотвращает чтение недоверенной конфигурации; её не нужно отключать глобально для всех репозиториев.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Папка принадлежит другому пользователюРепозиторий скопирован администратором или распакован под другой учётной записью. | В предупреждении указан конкретный путь к репозиторию. | Проверить владельца и запуск от нужной учётной записи. |
| Система сборки использует несколько пользователейРабочая копия раздаётся между службами, но не была спроектирована для общего доступа. | Git работает в интерактивном сеансе и ругается в CI или службе. | Разделить рабочие копии и права корректно. |
#Пошаговая диагностика и решение
- 1. Прочитайте предупреждение и путь без копирования командЗапустите git status в папке репозитория и сохраните его путь и текст предупреждения. Git иногда предлагает git config --global --add safe.directory, но это исключение допустимо только для доверенного конкретного каталога. Не добавляйте звёздочку *, чтобы отключить все проверки.
- 2. Сравните текущую учётную запись и владельцаНа Linux/macOS используйте id и ls -ld для конкретного пути. В Windows откройте Проводник → Свойства каталога → Безопасность → Дополнительно и посмотрите «Владелец». Если папка связана с чужим проектом, не доверяйте ей и спросите владельца.
- Linux/macOS: замените путь; команды только читают сведения о пользователе и каталогеLinux · Терминал (Bash)КомандаLinux/macOS: замените путь; команды только читают сведения о пользователе и каталоге.
idls -ld /ПУТЬ/К/РЕПОЗИТОРИЮ
- 3. Решите, нужен ли общий каталогДля личного проекта предпочтительно работать из своей папки, созданной своей учётной записью. Для CI — отдельная копия под пользователем сборки. Если права назначены системой управления развёртыванием, не меняйте владельца рекурсивной командой: можно сломать службы.
- 4. При необходимости доверяйте одному проверенному путиЕсли администратор подтвердил безопасность именно этого репозитория, под своей обычной учётной записью добавьте точный абсолютный путь в global safe.directory. В Windows используйте путь Windows и прямые косые черты или обычное экранирование, вместо выдуманного /ПУТЬ.
- Меняет пользовательскую конфигурацию Git только для указанного путиLinux · Терминал (Bash)С осторожностьюМеняет пользовательскую конфигурацию Git только для указанного пути. Подставьте точный доверенный абсолютный путь.
git config --global --add safe.directory /ПУТЬ/К/РЕПОЗИТОРИЮКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
- 5. Проверьте конкретную записьВыполните git config --global --get-all safe.directory. Должен появиться ровно разрешённый путь без звёздочки. Если ошибка остаётся, проверьте путь с символическими ссылками и пользователя, от которого реально запускается Git.
- Чтение доверенных каталогов и проверка доступа к текущему репозиториюLinux · Терминал (Bash)КомандаЧтение доверенных каталогов и проверка доступа к текущему репозиторию.
git config --global --get-all safe.directorygit status
- 6. Удалите исключение, если репозиторий больше не доверенныйЕсли каталог перенесён, больше не используется или владелец неизвестен, удалите именно свою запись командой git config --global --unset-all safe.directory ПУТЬ, предварительно сверив точное значение. Если команда не помогла, проверьте другие области конфигурации, а не выключайте защиту.
- Дополнительная команда по темеLinux · Терминал (Bash)С осторожностьюУдаляет только совпадающие записи данного пути из глобальных настроек; выполняйте при необходимости отката.
git config --global --unset-all safe.directory /ПУТЬ/К/РЕПОЗИТОРИЮКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
#Проверка результата и действия при повторении
В доверенном репозитории git status выполняется от штатного пользователя, остальные неразрешённые каталоги продолжают вызывать проверку владельца. При неуспехе верните исходную конфигурацию и пересоздайте копию репозитория с правильными правами.
Если на указанном шаге результат отличается, остановитесь и запишите первое полное сообщение об ошибке, версию инструментов и проверенное состояние до исправления. Не переходите к опасным действиям на действующем проекте: повторите проверку на отдельной копии, верните сохранённые файлы и только затем выбирайте следующую причину.