[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/fix-git-permission-denied-linux":3,"mdc--u21iyo-key":1001,"mdc-lupkmn-key":1011,"mdc--nzwi6e-key":1019,"mdc--4m4gw3-key":1051,"mdc-r3bgud-key":1073,"mdc-9o1q2y-key":1081,"mdc--ufs4hf-key":1103,"mdc-3a4wlx-key":1118,"mdc--jvlwu0-key":1126,"related-/guides/linux/fix-git-ssh-key-permissions-linux,/guides/linux/git-config-essential-settings,/errors/linux/git-permission-denied-publickey":1142},{"id":4,"title":5,"appliesTo":6,"author":12,"body":13,"canonical":936,"code":936,"createdAt":937,"description":938,"difficulty":939,"draft":940,"estimatedTime":941,"extension":942,"faq":943,"howToSteps":956,"howToTotalTime":972,"image":936,"keywords":973,"locale":981,"meta":982,"navigation":173,"path":983,"platform":984,"related":985,"section":989,"seo":990,"severity":936,"stem":991,"summary":992,"tags":993,"twitterCreator":936,"twitterSite":936,"type":999,"updatedAt":937,"__hash__":1000},"content_ru/guides/linux/fix-git-permission-denied-linux.md","Ошибка 'permission denied' в Git на Linux: причины и 5 способов исправления",[7,8,9,10,11],"Ubuntu 20.04+","Debian 11+","Fedora 35+","Arch Linux","Git 2.30+","FixPedia Team",{"type":14,"value":15,"toc":913},"minimark",[16,21,30,34,37,60,64,67,110,114,130,201,204,208,214,248,251,358,372,376,379,432,435,454,457,461,464,540,543,559,563,570,642,645,664,668,671,758,764,768,776,782,797,800,807,812,833,844,852,861,869,878,887,909],[17,18,20],"h2",{"id":19},"введение-зачем-это-нужно","Введение / Зачем это нужно",[22,23,24,25,29],"p",{},"Ошибка ",[26,27,28],"code",{},"permission denied"," (отказ в доступе) — одна из самых частых проблем при работе с Git на Linux. Она возникает, когда у текущего пользователя нет прав на чтение/запись файлов в директории репозитория или при обращении к удалённому серверу. Эта инструкция поможет быстро диагностировать и исправить проблему, восстановив работоспособность Git без потери данных.",[17,31,33],{"id":32},"требования-подготовка","Требования / Подготовка",[22,35,36],{},"Перед началом убедитесь, что:",[38,39,40,44,50,53],"ul",{},[41,42,43],"li",{},"У вас есть доступ к терминалу Linux (Ubuntu, Debian, Fedora и т.д.)",[41,45,46,47],{},"Установлен Git (версия 2.30 или новее). Проверить: ",[26,48,49],{},"git --version",[41,51,52],{},"Вы знаете полный путь к локальному репозиторию, где возникает ошибка",[41,54,55,56,59],{},"Для некоторых шагов могут потребоваться права ",[26,57,58],{},"sudo"," (если репозиторий в системной директории)",[17,61,63],{"id":62},"причины-ошибки-permission-denied-в-git","Причины ошибки 'permission denied' в Git",[22,65,66],{},"Ошибка обычно вызвана одной из следующих причин:",[68,69,70,81,98,104],"ol",{},[41,71,72,76,77,80],{},[73,74,75],"strong",{},"Несовпадение владельца файлов",": Файлы репозитория принадлежат другому пользователю (например, ",[26,78,79],{},"root","), а вы работаете под своей учётной записью.",[41,82,83,86,87,90,91,90,94,97],{},[73,84,85],{},"Системные директории",": Попытка разместить репозиторий в защищённой папке (",[26,88,89],{},"/usr",", ",[26,92,93],{},"/opt",[26,95,96],{},"/var",").",[41,99,100,103],{},[73,101,102],{},"Некорректные права",": У файлов или папок репозитория отсутствуют флаги чтения/записи для вашего пользователя.",[41,105,106,109],{},[73,107,108],{},"Проблемы с удалённым доступом",": Неверные права на SSH-ключ или недостаточно прав на удалённом сервере.",[17,111,113],{"id":112},"шаг-1-определите-точную-причину-ошибки","Шаг 1: Определите точную причину ошибки",[22,115,116,117,90,120,90,123,90,126,129],{},"Сначала посмотрите полный текст ошибки в терминале. Он укажет, какая операция (",[26,118,119],{},"clone",[26,121,122],{},"pull",[26,124,125],{},"push",[26,127,128],{},"fetch",") и в каком пути вызвала проблему.",[131,132,137],"pre",{"className":133,"code":134,"language":135,"meta":136,"style":136},"language-bash shiki shiki-themes github-light github-dark","# Пример ошибки при попытке клонирования\ngit clone https://github.com/user/repo.git\n# fatal: could not create work tree dir 'repo': Permission denied\n\n# Пример ошибки при pull\ngit pull origin main\n# error: unable to create file path/to/file.txt: Permission denied\n","bash","",[26,138,139,148,162,168,175,181,195],{"__ignoreMap":136},[140,141,144],"span",{"class":142,"line":143},"line",1,[140,145,147],{"class":146},"sJ8bj","# Пример ошибки при попытке клонирования\n",[140,149,151,155,159],{"class":142,"line":150},2,[140,152,154],{"class":153},"sScJk","git",[140,156,158],{"class":157},"sZZnC"," clone",[140,160,161],{"class":157}," https://github.com/user/repo.git\n",[140,163,165],{"class":142,"line":164},3,[140,166,167],{"class":146},"# fatal: could not create work tree dir 'repo': Permission denied\n",[140,169,171],{"class":142,"line":170},4,[140,172,174],{"emptyLinePlaceholder":173},true,"\n",[140,176,178],{"class":142,"line":177},5,[140,179,180],{"class":146},"# Пример ошибки при pull\n",[140,182,184,186,189,192],{"class":142,"line":183},6,[140,185,154],{"class":153},[140,187,188],{"class":157}," pull",[140,190,191],{"class":157}," origin",[140,193,194],{"class":157}," main\n",[140,196,198],{"class":142,"line":197},7,[140,199,200],{"class":146},"# error: unable to create file path/to/file.txt: Permission denied\n",[22,202,203],{},"Запишите полный путь к репозиторию, упомянутый в ошибке.",[17,205,207],{"id":206},"шаг-2-исправьте-права-доступа-к-файлам-репозитория","Шаг 2: Исправьте права доступа к файлам репозитория",[22,209,210,211,213],{},"Если репозиторий уже существует и принадлежит другому пользователю (например, ",[26,212,79],{},"), смените владельца:",[131,215,217],{"className":133,"code":216,"language":135,"meta":136,"style":136},"# Замените /path/to/repo на фактический путь к вашей папке репозитория\nsudo chown -R $USER:$USER /path/to/repo\n",[26,218,219,224],{"__ignoreMap":136},[140,220,221],{"class":142,"line":143},[140,222,223],{"class":146},"# Замените /path/to/repo на фактический путь к вашей папке репозитория\n",[140,225,226,228,231,235,239,242,245],{"class":142,"line":150},[140,227,58],{"class":153},[140,229,230],{"class":157}," chown",[140,232,234],{"class":233},"sj4cs"," -R",[140,236,238],{"class":237},"sVt8B"," $USER",[140,240,241],{"class":157},":",[140,243,244],{"class":237},"$USER ",[140,246,247],{"class":157},"/path/to/repo\n",[22,249,250],{},"Затем установите корректные права доступа:",[131,252,254],{"className":133,"code":253,"language":135,"meta":136,"style":136},"# Дать владельцу полные права (чтение, запись, выполнение для папок)\nfind /path/to/repo -type d -exec chmod 755 {} \\;\n\n# Дать владельцу права на чтение и запись для файлов\nfind /path/to/repo -type f -exec chmod 644 {} \\;\n\n# Особые права для исполняемых файлов (если есть)\nfind /path/to/repo -type f -name \"*.sh\" -exec chmod +x {} \\;\n",[26,255,256,261,290,294,299,321,325,330],{"__ignoreMap":136},[140,257,258],{"class":142,"line":143},[140,259,260],{"class":146},"# Дать владельцу полные права (чтение, запись, выполнение для папок)\n",[140,262,263,266,269,272,275,278,281,284,287],{"class":142,"line":150},[140,264,265],{"class":153},"find",[140,267,268],{"class":157}," /path/to/repo",[140,270,271],{"class":233}," -type",[140,273,274],{"class":157}," d",[140,276,277],{"class":233}," -exec",[140,279,280],{"class":157}," chmod",[140,282,283],{"class":233}," 755",[140,285,286],{"class":157}," {}",[140,288,289],{"class":233}," \\;\n",[140,291,292],{"class":142,"line":164},[140,293,174],{"emptyLinePlaceholder":173},[140,295,296],{"class":142,"line":170},[140,297,298],{"class":146},"# Дать владельцу права на чтение и запись для файлов\n",[140,300,301,303,305,307,310,312,314,317,319],{"class":142,"line":177},[140,302,265],{"class":153},[140,304,268],{"class":157},[140,306,271],{"class":233},[140,308,309],{"class":157}," f",[140,311,277],{"class":233},[140,313,280],{"class":157},[140,315,316],{"class":233}," 644",[140,318,286],{"class":157},[140,320,289],{"class":233},[140,322,323],{"class":142,"line":183},[140,324,174],{"emptyLinePlaceholder":173},[140,326,327],{"class":142,"line":197},[140,328,329],{"class":146},"# Особые права для исполняемых файлов (если есть)\n",[140,331,333,335,337,339,341,344,347,349,351,354,356],{"class":142,"line":332},8,[140,334,265],{"class":153},[140,336,268],{"class":157},[140,338,271],{"class":233},[140,340,309],{"class":157},[140,342,343],{"class":233}," -name",[140,345,346],{"class":157}," \"*.sh\"",[140,348,277],{"class":233},[140,350,280],{"class":157},[140,352,353],{"class":157}," +x",[140,355,286],{"class":157},[140,357,289],{"class":233},[359,360,361],"blockquote",{},[22,362,363,364,367,368,371],{},"⚠️ ",[73,365,366],{},"Важно",": Не используйте ",[26,369,370],{},"chmod 777"," — это серьёзная уязвимость безопасности.",[17,373,375],{"id":374},"шаг-3-настройте-безопасные-директории-в-git","Шаг 3: Настройте безопасные директории в Git",[22,377,378],{},"Если репозиторий находится в системной или общей директории, добавьте его в список безопасных:",[131,380,382],{"className":133,"code":381,"language":135,"meta":136,"style":136},"# Добавить конкретный путь в глобальную конфигурацию\ngit config --global --add safe.directory /path/to/repo\n\n# Или разрешить все директории (не рекомендуется для безопасности)\ngit config --global --add safe.directory '*'\n",[26,383,384,389,408,412,417],{"__ignoreMap":136},[140,385,386],{"class":142,"line":143},[140,387,388],{"class":146},"# Добавить конкретный путь в глобальную конфигурацию\n",[140,390,391,393,396,399,402,405],{"class":142,"line":150},[140,392,154],{"class":153},[140,394,395],{"class":157}," config",[140,397,398],{"class":233}," --global",[140,400,401],{"class":233}," --add",[140,403,404],{"class":157}," safe.directory",[140,406,407],{"class":157}," /path/to/repo\n",[140,409,410],{"class":142,"line":164},[140,411,174],{"emptyLinePlaceholder":173},[140,413,414],{"class":142,"line":170},[140,415,416],{"class":146},"# Или разрешить все директории (не рекомендуется для безопасности)\n",[140,418,419,421,423,425,427,429],{"class":142,"line":177},[140,420,154],{"class":153},[140,422,395],{"class":157},[140,424,398],{"class":233},[140,426,401],{"class":233},[140,428,404],{"class":157},[140,430,431],{"class":157}," '*'\n",[22,433,434],{},"Проверьте текущий список безопасных директорий:",[131,436,438],{"className":133,"code":437,"language":135,"meta":136,"style":136},"git config --global --get-all safe.directory\n",[26,439,440],{"__ignoreMap":136},[140,441,442,444,446,448,451],{"class":142,"line":143},[140,443,154],{"class":153},[140,445,395],{"class":157},[140,447,398],{"class":233},[140,449,450],{"class":233}," --get-all",[140,452,453],{"class":157}," safe.directory\n",[455,456],"in-article-ad",{},[17,458,460],{"id":459},"шаг-4-используйте-правильный-протокол-доступа-ssh-вместо-https","Шаг 4: Используйте правильный протокол доступа (SSH вместо HTTPS)",[22,462,463],{},"Если ошибка возникает при работе с удалённым репозиторием (clone, pull, push), возможно, проблема в аутентификации. Переключитесь с HTTPS на SSH:",[68,465,466,494,514],{},[41,467,468,471,472],{},[73,469,470],{},"Сгенерируйте SSH-ключ"," (если ещё нет):\n",[131,473,475],{"className":133,"code":474,"language":135,"meta":136,"style":136},"ssh-keygen -t ed25519 -C \"your_email@example.com\"\n",[26,476,477],{"__ignoreMap":136},[140,478,479,482,485,488,491],{"class":142,"line":143},[140,480,481],{"class":153},"ssh-keygen",[140,483,484],{"class":233}," -t",[140,486,487],{"class":157}," ed25519",[140,489,490],{"class":233}," -C",[140,492,493],{"class":157}," \"your_email@example.com\"\n",[41,495,496,499,500,513],{},[73,497,498],{},"Добавьте публичный ключ"," на GitHub/GitLab/Bitbucket:\n",[131,501,503],{"className":133,"code":502,"language":135,"meta":136,"style":136},"cat ~/.ssh/id_ed25519.pub\n",[26,504,505],{"__ignoreMap":136},[140,506,507,510],{"class":142,"line":143},[140,508,509],{"class":153},"cat",[140,511,512],{"class":157}," ~/.ssh/id_ed25519.pub\n","\nСкопируйте вывод и вставьте в настройках аккаунта на хостинге.",[41,515,516,519,520],{},[73,517,518],{},"Измените URL репозитория"," на SSH-формат:\n",[131,521,523],{"className":133,"code":522,"language":135,"meta":136,"style":136},"git remote set-url origin git@github.com:user/repo.git\n",[26,524,525],{"__ignoreMap":136},[140,526,527,529,532,535,537],{"class":142,"line":143},[140,528,154],{"class":153},[140,530,531],{"class":157}," remote",[140,533,534],{"class":157}," set-url",[140,536,191],{"class":157},[140,538,539],{"class":157}," git@github.com:user/repo.git\n",[22,541,542],{},"Проверьте подключение:",[131,544,546],{"className":133,"code":545,"language":135,"meta":136,"style":136},"ssh -T git@github.com\n",[26,547,548],{"__ignoreMap":136},[140,549,550,553,556],{"class":142,"line":143},[140,551,552],{"class":153},"ssh",[140,554,555],{"class":233}," -T",[140,557,558],{"class":157}," git@github.com\n",[17,560,562],{"id":561},"шаг-5-переклонируйте-репозиторий-в-правильную-директорию","Шаг 5: Переклонируйте репозиторий в правильную директорию",[22,564,565,566,569],{},"Если предыдущие шаги не помогли, переместите репозиторий в домашнюю директорию пользователя (",[26,567,568],{},"~/","), где нет ограничений:",[131,571,573],{"className":133,"code":572,"language":135,"meta":136,"style":136},"# Создайте папку для проектов (если нет)\nmkdir -p ~/projects\n\n# Переместите репозиторий\nmv /path/to/repo ~/projects/\n\n# Или удалите и клонируйте заново\nrm -rf /path/to/repo\ngit clone https://github.com/user/repo.git ~/projects/repo\n",[26,574,575,580,591,595,600,610,614,619,629],{"__ignoreMap":136},[140,576,577],{"class":142,"line":143},[140,578,579],{"class":146},"# Создайте папку для проектов (если нет)\n",[140,581,582,585,588],{"class":142,"line":150},[140,583,584],{"class":153},"mkdir",[140,586,587],{"class":233}," -p",[140,589,590],{"class":157}," ~/projects\n",[140,592,593],{"class":142,"line":164},[140,594,174],{"emptyLinePlaceholder":173},[140,596,597],{"class":142,"line":170},[140,598,599],{"class":146},"# Переместите репозиторий\n",[140,601,602,605,607],{"class":142,"line":177},[140,603,604],{"class":153},"mv",[140,606,268],{"class":157},[140,608,609],{"class":157}," ~/projects/\n",[140,611,612],{"class":142,"line":183},[140,613,174],{"emptyLinePlaceholder":173},[140,615,616],{"class":142,"line":197},[140,617,618],{"class":146},"# Или удалите и клонируйте заново\n",[140,620,621,624,627],{"class":142,"line":332},[140,622,623],{"class":153},"rm",[140,625,626],{"class":233}," -rf",[140,628,407],{"class":157},[140,630,632,634,636,639],{"class":142,"line":631},9,[140,633,154],{"class":153},[140,635,158],{"class":157},[140,637,638],{"class":157}," https://github.com/user/repo.git",[140,640,641],{"class":157}," ~/projects/repo\n",[22,643,644],{},"После перемещения перейдите в директорию репозитория и проверьте статус:",[131,646,648],{"className":133,"code":647,"language":135,"meta":136,"style":136},"cd ~/projects/repo\ngit status\n",[26,649,650,657],{"__ignoreMap":136},[140,651,652,655],{"class":142,"line":143},[140,653,654],{"class":233},"cd",[140,656,641],{"class":157},[140,658,659,661],{"class":142,"line":150},[140,660,154],{"class":153},[140,662,663],{"class":157}," status\n",[17,665,667],{"id":666},"проверка-результата","Проверка результата",[22,669,670],{},"Убедитесь, что ошибка устранена, выполнив основные операции:",[131,672,674],{"className":133,"code":673,"language":135,"meta":136,"style":136},"# 1. Проверка статуса (должна работать без ошибок)\ngit status\n\n# 2. Получение изменений с удалённого репозитория\ngit pull\n\n# 3. Если есть незакоммиченные изменения — создайте тестовый коммит\necho \"test\" >> test.txt\ngit add test.txt\ngit commit -m \"test commit\"\ngit push\n",[26,675,676,681,687,691,696,703,707,712,727,736,750],{"__ignoreMap":136},[140,677,678],{"class":142,"line":143},[140,679,680],{"class":146},"# 1. Проверка статуса (должна работать без ошибок)\n",[140,682,683,685],{"class":142,"line":150},[140,684,154],{"class":153},[140,686,663],{"class":157},[140,688,689],{"class":142,"line":164},[140,690,174],{"emptyLinePlaceholder":173},[140,692,693],{"class":142,"line":170},[140,694,695],{"class":146},"# 2. Получение изменений с удалённого репозитория\n",[140,697,698,700],{"class":142,"line":177},[140,699,154],{"class":153},[140,701,702],{"class":157}," pull\n",[140,704,705],{"class":142,"line":183},[140,706,174],{"emptyLinePlaceholder":173},[140,708,709],{"class":142,"line":197},[140,710,711],{"class":146},"# 3. Если есть незакоммиченные изменения — создайте тестовый коммит\n",[140,713,714,717,720,724],{"class":142,"line":332},[140,715,716],{"class":233},"echo",[140,718,719],{"class":157}," \"test\"",[140,721,723],{"class":722},"szBVR"," >>",[140,725,726],{"class":157}," test.txt\n",[140,728,729,731,734],{"class":142,"line":631},[140,730,154],{"class":153},[140,732,733],{"class":157}," add",[140,735,726],{"class":157},[140,737,739,741,744,747],{"class":142,"line":738},10,[140,740,154],{"class":153},[140,742,743],{"class":157}," commit",[140,745,746],{"class":233}," -m",[140,748,749],{"class":157}," \"test commit\"\n",[140,751,753,755],{"class":142,"line":752},11,[140,754,154],{"class":153},[140,756,757],{"class":157}," push\n",[22,759,760,761,763],{},"Если все команды выполняются без ошибок ",[26,762,28],{},", проблема решена.",[17,765,767],{"id":766},"возможные-проблемы","Возможные проблемы",[769,770,772,773],"h3",{"id":771},"проблема-ошибка-persists-после-chown","Проблема: Ошибка persists после ",[26,774,775],{},"chown",[22,777,778,781],{},[73,779,780],{},"Решение",": Убедитесь, что вы указали правильный путь. Проверьте владельца командой:",[131,783,785],{"className":133,"code":784,"language":135,"meta":136,"style":136},"ls -la /path/to/repo\n",[26,786,787],{"__ignoreMap":136},[140,788,789,792,795],{"class":142,"line":143},[140,790,791],{"class":153},"ls",[140,793,794],{"class":233}," -la",[140,796,407],{"class":157},[22,798,799],{},"Первые столбцы покажут владельца и группу. Должен отображаться ваш пользователь.",[769,801,803,804],{"id":802},"проблема-ошибка-при-работе-с-git-submodule","Проблема: Ошибка при работе с ",[26,805,806],{},"git submodule",[22,808,809,811],{},[73,810,780],{},": Для подмодулей нужно исправить права в каждой их папке:",[131,813,815],{"className":133,"code":814,"language":135,"meta":136,"style":136},"git submodule foreach --recursive 'sudo chown -R $USER:$USER .'\n",[26,816,817],{"__ignoreMap":136},[140,818,819,821,824,827,830],{"class":142,"line":143},[140,820,154],{"class":153},[140,822,823],{"class":157}," submodule",[140,825,826],{"class":157}," foreach",[140,828,829],{"class":233}," --recursive",[140,831,832],{"class":157}," 'sudo chown -R $USER:$USER .'\n",[769,834,836,837,840,841],{"id":835},"проблема-ошибка-detected-dubious-ownership-после-настройки-safedirectory","Проблема: Ошибка ",[26,838,839],{},"detected dubious ownership"," после настройки ",[26,842,843],{},"safe.directory",[22,845,846,848,849,851],{},[73,847,780],{},": Убедитесь, что путь в ",[26,850,843],{}," точно совпадает с реальным путём репозитория. Используйте абсолютный путь.",[769,853,855,856,858,859],{"id":854},"проблема-нет-прав-sudo-для-выполнения-chown","Проблема: Нет прав ",[26,857,58],{}," для выполнения ",[26,860,775],{},[22,862,863,865,866,868],{},[73,864,780],{},": Обратитесь к администратору системы или переместите репозиторий в домашнюю директорию, где ",[26,867,775],{}," не требуется.",[769,870,872,873,875,876],{"id":871},"проблема-ошибка-возникает-только-при-pushpull","Проблема: Ошибка возникает только при ",[26,874,125],{},"/",[26,877,122],{},[22,879,880,882,883,886],{},[73,881,780],{},": Проверьте права на ",[26,884,885],{},".git","-папку внутри репозитория:",[131,888,890],{"className":133,"code":889,"language":135,"meta":136,"style":136},"sudo chown -R $USER:$USER /path/to/repo/.git\n",[26,891,892],{"__ignoreMap":136},[140,893,894,896,898,900,902,904,906],{"class":142,"line":143},[140,895,58],{"class":153},[140,897,230],{"class":157},[140,899,234],{"class":233},[140,901,238],{"class":237},[140,903,241],{"class":157},[140,905,244],{"class":237},[140,907,908],{"class":157},"/path/to/repo/.git\n",[910,911,912],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":136,"searchDepth":150,"depth":150,"links":914},[915,916,917,918,919,920,921,922,923,924],{"id":19,"depth":150,"text":20},{"id":32,"depth":150,"text":33},{"id":62,"depth":150,"text":63},{"id":112,"depth":150,"text":113},{"id":206,"depth":150,"text":207},{"id":374,"depth":150,"text":375},{"id":459,"depth":150,"text":460},{"id":561,"depth":150,"text":562},{"id":666,"depth":150,"text":667},{"id":766,"depth":150,"text":767,"children":925},[926,928,930,932,934],{"id":771,"depth":164,"text":927},"Проблема: Ошибка persists после chown",{"id":802,"depth":164,"text":929},"Проблема: Ошибка при работе с git submodule",{"id":835,"depth":164,"text":931},"Проблема: Ошибка detected dubious ownership после настройки safe.directory",{"id":854,"depth":164,"text":933},"Проблема: Нет прав sudo для выполнения chown",{"id":871,"depth":164,"text":935},"Проблема: Ошибка возникает только при push/pull",null,"2026-04-08 19:52:03","Пошаговая инструкция по исправлению ошибки 'permission denied' в Git на Linux. Узнайте, как правильно настроить права доступа к репозиториям и избежать проблем с sudo. Решение за 5 минут!","easy",false,"10-15 мин","md",[944,947,950,953],{"question":945,"answer":946},"Почему возникает ошибка 'permission denied' в Git на Linux?","Ошибка возникает из-за несовпадения владельца файлов репозитория и текущего пользователя, либо когда Git пытается выполнить операцию в защищённой системной директории без прав sudo.",{"question":948,"answer":949},"Можно ли использовать sudo с Git? Это безопасно?","Использование sudo с Git не рекомендуется, так как может привести к проблемам с правамиownership файлов. Лучше исправить права доступа или сменить владельца файлов.",{"question":951,"answer":952},"Как предотвратить ошибку 'permission denied' в будущем?","Всегда клонируйте репозитории в домашнюю директорию, настраивайте корректные права `chmod` и `chown` для рабочих папок, а также используйте `git config --global safe.directory` для указания безопасных путей.",{"question":954,"answer":955},"Что такое safe.directory в Git и как его настроить?","`safe.directory` — это настройка Git, которая помечает директории как безопасные для операций. Настройте её командой `git config --global --add safe.directory /путь/к/репозиторию`.",[957,960,963,966,969],{"name":958,"text":959},"Определите точную причину ошибки","Проанализируйте полный текст ошибки в терминале. Узнайте, какая операция (clone, pull, push) и в каком пути вызвала проблему.",{"name":961,"text":962},"Исправьте права доступа к файлам репозитория","Используйте команды `chmod` и `chown`, чтобы установить корректного владельца и права для файлов и папок репозитория.",{"name":964,"text":965},"Настройте безопасные директории в Git","Добавьте проблемный путь в глобальный список безопасных директорий Git с помощью `git config --global safe.directory`.",{"name":967,"text":968},"Используйте правильный протокол доступа (SSH вместо HTTPS)","Если ошибка связана с доступом к удалённому репозиторию, переключитесь с HTTPS на SSH-авторизацию, которая использует ключи вместо пароля.",{"name":970,"text":971},"Переклонируйте репозиторий в правильную директорию","В крайнем случае удалите проблемный репозиторий и клонируйте его заново в домашнюю директорию пользователя (`~/`), где нет ограничений прав.","PT15M",[974,975,976,977,978,979,980],"git permission denied linux","ошибка permission denied git ubuntu","как исправить git permission denied","git fatal could not read from remote repository permission denied","настройка прав доступа git linux","git без sudo права","safe.directory git настройка","ru_RU",{},"/guides/linux/fix-git-permission-denied-linux","linux",[986,987,988],"/guides/linux/fix-git-ssh-key-permissions-linux","/guides/linux/git-config-essential-settings","/errors/linux/git-permission-denied-publickey","Гайды по Linux",{"title":5,"description":938},"guides/linux/fix-git-permission-denied-linux","Эта статья поможет решить распространённую ошибку 'permission denied' при работе с Git на Linux. Вы узнаете, как правильно управлять правами доступа к файлам и папкам репозитория, настроить безопасные директории и избежать конфликтов с sudo.",[154,984,994,995,996,997,998],"права доступа","permissions","ошибки","terminal","devops","guide","odfAKybNut4lOa5Ar9Zmbi1TYN6EndU8jGcbJGQJNus",{"data":1002,"body":1003},{},{"type":79,"children":1004},[1005],{"type":1006,"tag":22,"props":1007,"children":1008},"element",{},[1009],{"type":1010,"value":946},"text",{"data":1012,"body":1013},{},{"type":79,"children":1014},[1015],{"type":1006,"tag":22,"props":1016,"children":1017},{},[1018],{"type":1010,"value":949},{"data":1020,"body":1021},{},{"type":79,"children":1022},[1023],{"type":1006,"tag":22,"props":1024,"children":1025},{},[1026,1028,1034,1036,1041,1043,1049],{"type":1010,"value":1027},"Всегда клонируйте репозитории в домашнюю директорию, настраивайте корректные права ",{"type":1006,"tag":26,"props":1029,"children":1031},{"className":1030},[],[1032],{"type":1010,"value":1033},"chmod",{"type":1010,"value":1035}," и ",{"type":1006,"tag":26,"props":1037,"children":1039},{"className":1038},[],[1040],{"type":1010,"value":775},{"type":1010,"value":1042}," для рабочих папок, а также используйте ",{"type":1006,"tag":26,"props":1044,"children":1046},{"className":1045},[],[1047],{"type":1010,"value":1048},"git config --global safe.directory",{"type":1010,"value":1050}," для указания безопасных путей.",{"data":1052,"body":1053},{},{"type":79,"children":1054},[1055],{"type":1006,"tag":22,"props":1056,"children":1057},{},[1058,1063,1065,1071],{"type":1006,"tag":26,"props":1059,"children":1061},{"className":1060},[],[1062],{"type":1010,"value":843},{"type":1010,"value":1064}," — это настройка Git, которая помечает директории как безопасные для операций. Настройте её командой ",{"type":1006,"tag":26,"props":1066,"children":1068},{"className":1067},[],[1069],{"type":1010,"value":1070},"git config --global --add safe.directory /путь/к/репозиторию",{"type":1010,"value":1072},".",{"data":1074,"body":1075},{},{"type":79,"children":1076},[1077],{"type":1006,"tag":22,"props":1078,"children":1079},{},[1080],{"type":1010,"value":959},{"data":1082,"body":1083},{},{"type":79,"children":1084},[1085],{"type":1006,"tag":22,"props":1086,"children":1087},{},[1088,1090,1095,1096,1101],{"type":1010,"value":1089},"Используйте команды ",{"type":1006,"tag":26,"props":1091,"children":1093},{"className":1092},[],[1094],{"type":1010,"value":1033},{"type":1010,"value":1035},{"type":1006,"tag":26,"props":1097,"children":1099},{"className":1098},[],[1100],{"type":1010,"value":775},{"type":1010,"value":1102},", чтобы установить корректного владельца и права для файлов и папок репозитория.",{"data":1104,"body":1105},{},{"type":79,"children":1106},[1107],{"type":1006,"tag":22,"props":1108,"children":1109},{},[1110,1112,1117],{"type":1010,"value":1111},"Добавьте проблемный путь в глобальный список безопасных директорий Git с помощью ",{"type":1006,"tag":26,"props":1113,"children":1115},{"className":1114},[],[1116],{"type":1010,"value":1048},{"type":1010,"value":1072},{"data":1119,"body":1120},{},{"type":79,"children":1121},[1122],{"type":1006,"tag":22,"props":1123,"children":1124},{},[1125],{"type":1010,"value":968},{"data":1127,"body":1128},{},{"type":79,"children":1129},[1130],{"type":1006,"tag":22,"props":1131,"children":1132},{},[1133,1135,1140],{"type":1010,"value":1134},"В крайнем случае удалите проблемный репозиторий и клонируйте его заново в домашнюю директорию пользователя (",{"type":1006,"tag":26,"props":1136,"children":1138},{"className":1137},[],[1139],{"type":1010,"value":568},{"type":1010,"value":1141},"), где нет ограничений прав.",[]]