[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/errors/linux/docker-permission-denied":3,"mdc-ctjm8z-key":1100,"mdc-ufurhe-key":1125,"mdc--1xngp0-key":1140,"mdc--400rjy-key":1170,"mdc--3moha3-key":1187,"mdc-6x7osj-key":1204,"mdc--97jarr-key":1212,"mdc--zccl3p-key":1243,"related-/errors/linux/docker-cannot-connect-to-daemon,/guides/linux/docker-install-ubuntu,/errors/linux/selinux-permission-denied":1260},{"id":4,"title":5,"appliesTo":6,"author":12,"body":13,"canonical":1035,"code":56,"createdAt":1036,"description":1037,"difficulty":1038,"draft":1039,"estimatedTime":1040,"extension":1041,"faq":1042,"howToSteps":1055,"howToTotalTime":1035,"image":1035,"keywords":1068,"locale":1079,"meta":1080,"navigation":1081,"path":1082,"platform":1083,"related":1084,"section":1088,"seo":1089,"severity":1090,"stem":1091,"summary":1092,"tags":1093,"twitterCreator":1035,"twitterSite":1035,"type":1098,"updatedAt":1036,"__hash__":1099},"content_ru/errors/linux/docker-permission-denied.md","Docker permission denied: причины и 5 проверенных способов решения",[7,8,9,10,11],"Ubuntu 20.04+","Debian 11+","CentOS 8+","RHEL 8+","Fedora 35+","FixPedia Team",{"type":14,"value":15,"toc":1021},"minimark",[16,25,36,39,48,62,65,148,151,204,211,215,313,320,323,331,355,362,371,380,385,393,408,411,425,432,435,457,462,473,477,483,488,504,507,515,523,528,557,562,580,593,597,607,612,636,641,656,659,679,700,709,727,733,747,751,756,777,783,788,803,806,826,831,851,854,858,907,911,929,950,965,985,1005,1017],[17,18,19,20,24],"p",{},"-",[21,22,23],"code",{},"и владелец","root:docker`.\"",[26,27,28],"ul",{},[29,30,31,32,35],"li",{},"name: \"Временное решение через sudo\"\ntext: \"Для срочного запуска используйте ",[21,33,34],{},"sudo docker ...",", но это не рекомендуется для повседневной работы из-за рисков безопасности.\"\nhowToTotalTime: \"PT15M\"",[37,38],"hr",{},[40,41,43,44,47],"h2",{"id":42},"что-означает-ошибка-permission-denied-в-docker","Что означает ошибка ",[21,45,46],{},"permission denied"," в Docker",[17,49,50,51,53,54,57,58,61],{},"Ошибка ",[21,52,46],{}," (иногда с кодом ",[21,55,56],{},"EACCES",") означает, что текущий пользователь Linux не имеет прав на доступ к демону Docker (через сокет ",[21,59,60],{},"/var/run/docker.sock",") или к файлам/директориям внутри контейнера/образов.",[17,63,64],{},"Типичный полный текст:",[66,67,72],"pre",{"className":68,"code":69,"language":70,"meta":71,"style":71},"language-bash shiki shiki-themes github-light github-dark","docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post \"http://%2Fvar%2Frun%2Fdocker.sock/v1.41/containers/create\": dial unix /var/run/docker.sock: connect: permission denied.\n","bash","",[21,73,74],{"__ignoreMap":71},[75,76,79,83,87,90,93,96,99,102,105,107,110,113,116,119,122,125,128,131,134,137,140,143,145],"span",{"class":77,"line":78},"line",1,[75,80,82],{"class":81},"sScJk","docker:",[75,84,86],{"class":85},"sZZnC"," Got",[75,88,89],{"class":85}," permission",[75,91,92],{"class":85}," denied",[75,94,95],{"class":85}," while",[75,97,98],{"class":85}," trying",[75,100,101],{"class":85}," to",[75,103,104],{"class":85}," connect",[75,106,101],{"class":85},[75,108,109],{"class":85}," the",[75,111,112],{"class":85}," Docker",[75,114,115],{"class":85}," daemon",[75,117,118],{"class":85}," socket",[75,120,121],{"class":85}," at",[75,123,124],{"class":85}," unix:///var/run/docker.sock:",[75,126,127],{"class":85}," Post",[75,129,130],{"class":85}," \"http://%2Fvar%2Frun%2Fdocker.sock/v1.41/containers/create\":",[75,132,133],{"class":85}," dial",[75,135,136],{"class":85}," unix",[75,138,139],{"class":85}," /var/run/docker.sock:",[75,141,142],{"class":85}," connect:",[75,144,89],{"class":85},[75,146,147],{"class":85}," denied.\n",[17,149,150],{},"Или при работе с файлами:",[66,152,154],{"className":68,"code":153,"language":70,"meta":71,"style":71},"docker: Error response from daemon: Get \"https://registry-1.docker.io/v2/\": dial tcp: lookup registry-1.docker.io: Temporary failure in name resolution.\n",[21,155,156],{"__ignoreMap":71},[75,157,158,160,163,166,169,172,175,178,180,183,186,189,192,195,198,201],{"class":77,"line":78},[75,159,82],{"class":81},[75,161,162],{"class":85}," Error",[75,164,165],{"class":85}," response",[75,167,168],{"class":85}," from",[75,170,171],{"class":85}," daemon:",[75,173,174],{"class":85}," Get",[75,176,177],{"class":85}," \"https://registry-1.docker.io/v2/\":",[75,179,133],{"class":85},[75,181,182],{"class":85}," tcp:",[75,184,185],{"class":85}," lookup",[75,187,188],{"class":85}," registry-1.docker.io:",[75,190,191],{"class":85}," Temporary",[75,193,194],{"class":85}," failure",[75,196,197],{"class":85}," in",[75,199,200],{"class":85}," name",[75,202,203],{"class":85}," resolution.\n",[17,205,206,207,210],{},"Ошибка появляется при выполнении любых команд ",[21,208,209],{},"docker"," (run, ps, build, pull) от обычного пользователя.",[40,212,214],{"id":213},"причины-возникновения","Причины возникновения",[216,217,218,236,254,269,284,299],"ol",{},[29,219,220,226,229,230,232,233,235],{},[221,222,223,224],"strong",{},"Пользователь не состоит в группе ",[21,225,209],{},[227,228],"br",{},"\nПо умолчанию сокет ",[21,231,60],{}," принадлежит группе ",[21,234,209],{},". Если пользователь не в этой группе, доступ запрещён.",[29,237,238,243,245,246,249,250,253],{},[221,239,240,241],{},"Неправильные права на сокет ",[21,242,60],{},[227,244],{},"\nНапример, если сокет создан с правами ",[21,247,248],{},"600"," (только root) или владельцем ",[21,251,252],{},"root:root",".",[29,255,256,259,261,262,265,266,253],{},[221,257,258],{},"SELinux в режиме enforcing (RHEL/CentOS/Fedora)",[227,260],{},"\nSELinux может блокировать доступ Docker к сокету или файлам. Часто проявляется в сообщениях ",[21,263,264],{},"avc: denied"," в ",[21,267,268],{},"audit.log",[29,270,271,274,276,277,280,281,253],{},[221,272,273],{},"AppArmor (Ubuntu/Debian)",[227,275],{},"\nПрофили AppArmor могут ограничивать доступ Docker. Ошибки в ",[21,278,279],{},"syslog"," или ",[21,282,283],{},"dmesg",[29,285,286,289,291,292,295,296,253],{},[221,287,288],{},"Попытка монтирования хостовой директории без прав",[227,290],{},"\nПри ",[21,293,294],{},"docker run -v /host/path:/container"," если у пользователя нет прав на чтение/запись в ",[21,297,298],{},"/host/path",[29,300,301,310,312],{},[221,302,303,304,280,307],{},"Файловая система смонтирована с опцией ",[21,305,306],{},"noexec",[21,308,309],{},"nosuid",[227,311],{},"\nМожет мешать выполнению бинарников внутри контейнера.",[40,314,316,317,319],{"id":315},"способ-1-добавить-пользователя-в-группу-docker-рекомендуемый","Способ 1: Добавить пользователя в группу ",[21,318,209],{}," (рекомендуемый)",[17,321,322],{},"Это каноническое решение для большинства дистрибутивов.",[216,324,325],{},[29,326,327,328,330],{},"Добавьте текущего пользователя в группу ",[21,329,209],{},":",[66,332,334],{"className":68,"code":333,"language":70,"meta":71,"style":71},"sudo usermod -aG docker $USER\n",[21,335,336],{"__ignoreMap":71},[75,337,338,341,344,348,351],{"class":77,"line":78},[75,339,340],{"class":81},"sudo",[75,342,343],{"class":85}," usermod",[75,345,347],{"class":346},"sj4cs"," -aG",[75,349,350],{"class":85}," docker",[75,352,354],{"class":353},"sVt8B"," $USER\n",[17,356,357,358,361],{},"Флаг ",[21,359,360],{},"-aG"," (append to group) критически важен — без него пользователь может быть удалён из других групп.",[216,363,365],{"start":364},2,[29,366,367,370],{},[221,368,369],{},"Примените изменения",": выйдите из терминала и системы (или перезагрузите). В новом сеансе проверьте:",[66,372,374],{"className":68,"code":373,"language":70,"meta":71,"style":71},"groups\n",[21,375,376],{"__ignoreMap":71},[75,377,378],{"class":77,"line":78},[75,379,373],{"class":81},[17,381,382,383,253],{},"В списке должна быть ",[21,384,209],{},[216,386,388],{"start":387},3,[29,389,390,391,330],{},"Проверьте, что команды работают без ",[21,392,340],{},[66,394,396],{"className":68,"code":395,"language":70,"meta":71,"style":71},"docker run hello-world\n",[21,397,398],{"__ignoreMap":71},[75,399,400,402,405],{"class":77,"line":78},[75,401,209],{"class":81},[75,403,404],{"class":85}," run",[75,406,407],{"class":85}," hello-world\n",[17,409,410],{},"Если контейнер запустился — проблема решена.",[412,413,414],"blockquote",{},[17,415,416,417,420,421,424],{},"⚠️ ",[221,418,419],{},"Важно:"," После добавления в группу необходимо ",[221,422,423],{},"новый логин",". Это распространённая ошибка.",[40,426,428,429,431],{"id":427},"способ-2-временный-запуск-через-sudo-не-для-продакшена","Способ 2: Временный запуск через ",[21,430,340],{}," (не для продакшена)",[17,433,434],{},"Если нужно срочно запустить контейнер, а настройку групп сделать нельзя:",[66,436,438],{"className":68,"code":437,"language":70,"meta":71,"style":71},"sudo docker run -it ubuntu bash\n",[21,439,440],{"__ignoreMap":71},[75,441,442,444,446,448,451,454],{"class":77,"line":78},[75,443,340],{"class":81},[75,445,350],{"class":85},[75,447,404],{"class":85},[75,449,450],{"class":346}," -it",[75,452,453],{"class":85}," ubuntu",[75,455,456],{"class":85}," bash\n",[17,458,459],{},[221,460,461],{},"Недостатки:",[26,463,464,467,470],{},[29,465,466],{},"Контейнер получает root-права хоста (опасность).",[29,468,469],{},"Файлы, созданные в контейнере, будут принадлежать root на хосте.",[29,471,472],{},"Неудобно для повседневной работы.",[40,474,476],{"id":475},"способ-3-проверитьисправить-права-на-сокет-вручную","Способ 3: Проверить/исправить права на сокет вручную",[17,478,479,480,482],{},"Если группа ",[21,481,209],{}," есть, но доступ всё равно denied:",[216,484,485],{},[29,486,487],{},"Проверьте текущие права:",[66,489,491],{"className":68,"code":490,"language":70,"meta":71,"style":71},"ls -l /var/run/docker.sock\n",[21,492,493],{"__ignoreMap":71},[75,494,495,498,501],{"class":77,"line":78},[75,496,497],{"class":81},"ls",[75,499,500],{"class":346}," -l",[75,502,503],{"class":85}," /var/run/docker.sock\n",[17,505,506],{},"Ожидаемый вывод:",[66,508,513],{"className":509,"code":511,"language":512},[510],"language-text","srw-rw---- 1 root docker 0 Фев 16 12:00 /var/run/docker.sock\n","text",[21,514,511],{"__ignoreMap":71},[17,516,517,518,520,521,330],{},"Если группа не ",[21,519,209],{}," или права ",[21,522,248],{},[216,524,525],{"start":364},[29,526,527],{},"Установите правильного владельца и права:",[66,529,531],{"className":68,"code":530,"language":70,"meta":71,"style":71},"sudo chown root:docker /var/run/docker.sock\nsudo chmod 660 /var/run/docker.sock\n",[21,532,533,545],{"__ignoreMap":71},[75,534,535,537,540,543],{"class":77,"line":78},[75,536,340],{"class":81},[75,538,539],{"class":85}," chown",[75,541,542],{"class":85}," root:docker",[75,544,503],{"class":85},[75,546,547,549,552,555],{"class":77,"line":364},[75,548,340],{"class":81},[75,550,551],{"class":85}," chmod",[75,553,554],{"class":346}," 660",[75,556,503],{"class":85},[216,558,559],{"start":387},[29,560,561],{},"Перезапустите Docker (на всякий случай):",[66,563,565],{"className":68,"code":564,"language":70,"meta":71,"style":71},"sudo systemctl restart docker\n",[21,566,567],{"__ignoreMap":71},[75,568,569,571,574,577],{"class":77,"line":78},[75,570,340],{"class":81},[75,572,573],{"class":85}," systemctl",[75,575,576],{"class":85}," restart",[75,578,579],{"class":85}," docker\n",[412,581,582],{},[17,583,584,585,588,589,592],{},"💡 ",[221,586,587],{},"Совет:"," Права на сокет сбрасываются при перезагрузке Docker. Если проблема возвращается, проверьте конфигурацию демона (",[21,590,591],{},"/etc/docker/daemon.json",") или системные unit-файлы.",[40,594,596],{"id":595},"способ-4-настройка-selinux-для-rhelcentosfedora","Способ 4: Настройка SELinux (для RHEL/CentOS/Fedora)",[17,598,599,600,603,604,330],{},"Если ",[21,601,602],{},"getenforce"," возвращает ",[21,605,606],{},"Enforcing",[216,608,609],{},[29,610,611],{},"Проверьте логи SELinux на наличие отказов:",[66,613,615],{"className":68,"code":614,"language":70,"meta":71,"style":71},"sudo ausearch -m avc -ts recent\n",[21,616,617],{"__ignoreMap":71},[75,618,619,621,624,627,630,633],{"class":77,"line":78},[75,620,340],{"class":81},[75,622,623],{"class":85}," ausearch",[75,625,626],{"class":346}," -m",[75,628,629],{"class":85}," avc",[75,631,632],{"class":346}," -ts",[75,634,635],{"class":85}," recent\n",[216,637,638],{"start":364},[29,639,640],{},"Самый быстрый способ (временно, до перезагрузки):",[66,642,644],{"className":68,"code":643,"language":70,"meta":71,"style":71},"sudo setenforce 0\n",[21,645,646],{"__ignoreMap":71},[75,647,648,650,653],{"class":77,"line":78},[75,649,340],{"class":81},[75,651,652],{"class":85}," setenforce",[75,654,655],{"class":346}," 0\n",[17,657,658],{},"Попробуйте запустить Docker. Если сработало — проблема в SELinux.",[216,660,661],{"start":387},[29,662,663,664],{},"Для постоянного решения:\n",[26,665,666,676],{},[29,667,668,669,265,672,675],{},"Либо переведите SELinux в режим ",[21,670,671],{},"permissive",[21,673,674],{},"/etc/selinux/config"," (небезопасно).",[29,677,678],{},"Либо создайте правильный политику:",[66,680,682],{"className":68,"code":681,"language":70,"meta":71,"style":71},"sudo semanage permissive -a docker_t\n",[21,683,684],{"__ignoreMap":71},[75,685,686,688,691,694,697],{"class":77,"line":78},[75,687,340],{"class":81},[75,689,690],{"class":85}," semanage",[75,692,693],{"class":85}," permissive",[75,695,696],{"class":346}," -a",[75,698,699],{"class":85}," docker_t\n",[26,701,702],{},[29,703,704,705,708],{},"Или установите пакет ",[21,706,707],{},"docker-selinux"," (если не установлен):",[66,710,712],{"className":68,"code":711,"language":70,"meta":71,"style":71},"sudo yum install docker-selinux\n",[21,713,714],{"__ignoreMap":71},[75,715,716,718,721,724],{"class":77,"line":78},[75,717,340],{"class":81},[75,719,720],{"class":85}," yum",[75,722,723],{"class":85}," install",[75,725,726],{"class":85}," docker-selinux\n",[216,728,730],{"start":729},4,[29,731,732],{},"Верните enforcing:",[66,734,736],{"className":68,"code":735,"language":70,"meta":71,"style":71},"sudo setenforce 1\n",[21,737,738],{"__ignoreMap":71},[75,739,740,742,744],{"class":77,"line":78},[75,741,340],{"class":81},[75,743,652],{"class":85},[75,745,746],{"class":346}," 1\n",[40,748,750],{"id":749},"способ-5-настройка-apparmor-ubuntudebian","Способ 5: Настройка AppArmor (Ubuntu/Debian)",[216,752,753],{},[29,754,755],{},"Проверьте, загружен ли профиль Docker:",[66,757,759],{"className":68,"code":758,"language":70,"meta":71,"style":71},"sudo apparmor_status | grep docker\n",[21,760,761],{"__ignoreMap":71},[75,762,763,765,768,772,775],{"class":77,"line":78},[75,764,340],{"class":81},[75,766,767],{"class":85}," apparmor_status",[75,769,771],{"class":770},"szBVR"," |",[75,773,774],{"class":81}," grep",[75,776,579],{"class":85},[17,778,779,780,253],{},"Должно быть ",[21,781,782],{},"docker-default (enforced)",[216,784,785],{"start":364},[29,786,787],{},"Если профиль вызывает проблемы, можно его отключить (временно):",[66,789,791],{"className":68,"code":790,"language":70,"meta":71,"style":71},"sudo aa-disable /etc/apparmor.d/docker\n",[21,792,793],{"__ignoreMap":71},[75,794,795,797,800],{"class":77,"line":78},[75,796,340],{"class":81},[75,798,799],{"class":85}," aa-disable",[75,801,802],{"class":85}," /etc/apparmor.d/docker\n",[17,804,805],{},"Или для конкретного контейнера:",[66,807,809],{"className":68,"code":808,"language":70,"meta":71,"style":71},"docker run --security-opt apparmor=unconfined ...\n",[21,810,811],{"__ignoreMap":71},[75,812,813,815,817,820,823],{"class":77,"line":78},[75,814,209],{"class":81},[75,816,404],{"class":85},[75,818,819],{"class":346}," --security-opt",[75,821,822],{"class":85}," apparmor=unconfined",[75,824,825],{"class":85}," ...\n",[216,827,828],{"start":387},[29,829,830],{},"Для постоянного решения переустановите Docker (профиль пересоздастся):",[66,832,834],{"className":68,"code":833,"language":70,"meta":71,"style":71},"sudo apt-get install --reinstall docker-ce\n",[21,835,836],{"__ignoreMap":71},[75,837,838,840,843,845,848],{"class":77,"line":78},[75,839,340],{"class":81},[75,841,842],{"class":85}," apt-get",[75,844,723],{"class":85},[75,846,847],{"class":346}," --reinstall",[75,849,850],{"class":85}," docker-ce\n",[852,853],"in-article-ad",{},[40,855,857],{"id":856},"профилактика","Профилактика",[26,859,860,871,879,885,895,901],{},[29,861,862,865,866,868,869,253],{},[221,863,864],{},"Никогда не работайте от root без необходимости."," Добавляйте пользователей в группу ",[21,867,209],{}," вместо использования ",[21,870,340],{},[29,872,873,878],{},[221,874,875,876],{},"Регулярно проверяйте права на ",[21,877,60],{}," после обновлений системы или Docker.",[29,880,881,884],{},[221,882,883],{},"В продакшн-среде используйте rootless Docker"," (если поддерживается дистрибутивом) — это изолирует демон от root.",[29,886,887,890,891,894],{},[221,888,889],{},"Для монтирования хостовых директорий"," убедитесь, что у пользователя есть права на них (например, ",[21,892,893],{},"chmod o+rx /host/path"," для чтения).",[29,896,897,900],{},[221,898,899],{},"В дистрибутивах с SELinux/AppArmor"," не отключайте их полностью — настраивайте политики под Docker.",[29,902,903,906],{},[221,904,905],{},"После Changes в группах"," напоминайте пользователям о необходимости перелогина.",[40,908,910],{"id":909},"faq","FAQ",[17,912,913,919,921,922,925,926,928],{},[221,914,915,916,918],{},"Q: Почему после добавления в группу ",[21,917,209],{}," ошибка всё ещё есть?",[227,920],{},"\nA: Скорее всего, вы не вышли и не зашли заново в систему. Группы загружаются при логине. Проверьте ",[21,923,924],{},"id -nG"," — если ",[21,927,209],{}," нет, нужно новый сеанс.",[17,930,931,940,942,943,946,947,949],{},[221,932,933,934,936,937,939],{},"Q: Можно ли изменить группу сокета на ",[21,935,340],{}," вместо ",[21,938,209],{},"?",[227,941],{},"\nA: Технически ",[21,944,945],{},"sudo chown root:sudo /var/run/docker.sock"," сработает, но это нарушает принцип наименьших привилегий. Группа ",[21,948,209],{}," создана специально для этого.",[17,951,952,958,960,961,964],{},[221,953,954,955,957],{},"Q: Как добавить группу ",[21,956,209],{},", если её нет?",[227,959],{},"\nA: Группа создаётся автоматически при установке Docker. Если её нет, переустановите Docker или создайте вручную: ",[21,962,963],{},"sudo groupadd docker"," (обычно не требуется).",[17,966,967,977,979,980,982,983,253],{},[221,968,969,970,972,973,976],{},"Q: В чём разница между ",[21,971,209],{}," и ",[21,974,975],{},"docker-root"," группами?",[227,978],{},"\nA: В некоторых дистрибутивах (например, older RHEL) может быть группа ",[21,981,975],{},". Она используется для rootless mode. Для обычного Docker нужна ",[21,984,209],{},[17,986,987,994,996,997,1000,1001,1004],{},[221,988,989,990,993],{},"Q: Почему ",[21,991,992],{},"chmod 666 /var/run/docker.sock"," — плохая идея?",[227,995],{},"\nA: Это даёт ",[221,998,999],{},"всем"," пользователям полный доступ к Docker-демону. Любой локальный пользователь сможет управлять контейнерами, включая запуск с привилегиями ",[21,1002,1003],{},"--privileged",", что эквивалентно root-доступу.",[17,1006,1007,1010,1012,1013,1016],{},[221,1008,1009],{},"Q: Как проверить, какой пользователь запущен в контейнере?",[227,1011],{},"\nA: ",[21,1014,1015],{},"docker exec \u003Ccontainer> id",". Если uid/gid не совпадают с хостовыми, могут быть проблемы с правами на смонтированные volumes.",[1018,1019,1020],"style",{},"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":71,"searchDepth":364,"depth":364,"links":1022},[1023,1025,1026,1028,1030,1031,1032,1033,1034],{"id":42,"depth":364,"text":1024},"Что означает ошибка permission denied в Docker",{"id":213,"depth":364,"text":214},{"id":315,"depth":364,"text":1027},"Способ 1: Добавить пользователя в группу docker (рекомендуемый)",{"id":427,"depth":364,"text":1029},"Способ 2: Временный запуск через sudo (не для продакшена)",{"id":475,"depth":364,"text":476},{"id":595,"depth":364,"text":596},{"id":749,"depth":364,"text":750},{"id":856,"depth":364,"text":857},{"id":909,"depth":364,"text":910},null,"2026-02-16 09:44:59","Ошибка 'permission denied' при запуске Docker? Узнайте, как исправить за 5-15 минут. Пошаговая инструкция для Ubuntu, Debian, CentOS. Добавьте пользователя в группу docker или настройте права.","medium",false,"15-30 мин","md",[1043,1046,1049,1052],{"answer":1044,"question":1045},"По умолчанию сокет Docker (`/var/run/docker.sock`) принадлежит группе `docker`. Если ваш пользователь не в этой группе, нужны права root (sudo). Добавление в группу решает проблему.","Почему Docker требует sudo, а другие команды нет?",{"answer":1047,"question":1048},"Можно, но это небезопасно. Запуск Docker от root дает контейнерам полный доступ к хосту. Лучше добавить пользователя в группу `docker`.","Можно ли игнорировать ошибку permission denied и работать с sudo?",{"answer":1050,"question":1051},"`usermod` добавляет пользователя в группу `docker` (рекомендуемый, безопасный способ). `chmod 666` даёт всем полный доступ к сокету — это небезопасно и сбрасывается после перезагрузки.","Чем отличается способ с `usermod` от изменения прав на сокет (`chmod`)?",{"answer":1053,"question":1054},"Да, нужно выйти из системы и заново войти (или перезагрузить), чтобы обновить группу. Проверьте `groups` в новом терминале.","Ошибка остаётся после добавления в группу docker?",[1056,1059,1062,1065],{"name":1057,"text":1058},"Добавить текущего пользователя в группу docker","Выполните команду `sudo usermod -aG docker $USER`. Это основной и безопасный способ granting доступа.",{"name":1060,"text":1061},"Применить изменения групп","Выйдите из системы и войдите заново ИЛИ перезагрузите компьютер. Без этого группа не активируется в текущей сессии.",{"name":1063,"text":1064},"Проверить членство в группе","Запустите `groups` в терминале. В выводе должна быть группа `docker`. Также проверьте `docker run hello-world` без sudo.",{"name":1066,"text":1067},"Проверить права на сокет (альтернатива)","Если группа не помогает, проверьте права: `ls -l /var/run/docker.sock`. Должно быть `srw-rw",[1069,1070,1071,1072,1073,1074,1075,1076,1077,1078],"docker permission denied","ошибка доступа docker linux","docker не запускается ошибка","как исправить docker permission denied","docker got permission denied","docker sock permission denied","ошибка eacces docker","запуск docker без sudo","группа docker linux","docker.sock права","ru_RU",{},true,"/errors/linux/docker-permission-denied","linux",[1085,1086,1087],"/errors/linux/docker-cannot-connect-to-daemon","/guides/linux/docker-install-ubuntu","/errors/linux/selinux-permission-denied","Ошибки Docker",{"title":5,"description":1037},"high","errors/linux/docker-permission-denied","Статья объясняет, почему возникает ошибка доступа Docker в Linux, и предлагает 5 практических способов её устранения — от добавления пользователя в группу до настройки SELinux/AppArmor.",[1088,1094,1095,209,1096,1097],"permissions","Linux","sysadmin","devops","error","uyX0PdQBhZ3p0O9G_-nxKxMLEh_R_InrSXRp04TngkA",{"data":1101,"body":1102},{},{"type":1103,"children":1104},"root",[1105],{"type":1106,"tag":17,"props":1107,"children":1108},"element",{},[1109,1111,1116,1118,1123],{"type":512,"value":1110},"По умолчанию сокет Docker (",{"type":1106,"tag":21,"props":1112,"children":1114},{"className":1113},[],[1115],{"type":512,"value":60},{"type":512,"value":1117},") принадлежит группе ",{"type":1106,"tag":21,"props":1119,"children":1121},{"className":1120},[],[1122],{"type":512,"value":209},{"type":512,"value":1124},". Если ваш пользователь не в этой группе, нужны права root (sudo). Добавление в группу решает проблему.",{"data":1126,"body":1127},{},{"type":1103,"children":1128},[1129],{"type":1106,"tag":17,"props":1130,"children":1131},{},[1132,1134,1139],{"type":512,"value":1133},"Можно, но это небезопасно. Запуск Docker от root дает контейнерам полный доступ к хосту. Лучше добавить пользователя в группу ",{"type":1106,"tag":21,"props":1135,"children":1137},{"className":1136},[],[1138],{"type":512,"value":209},{"type":512,"value":253},{"data":1141,"body":1142},{},{"type":1103,"children":1143},[1144],{"type":1106,"tag":17,"props":1145,"children":1146},{},[1147,1153,1155,1160,1162,1168],{"type":1106,"tag":21,"props":1148,"children":1150},{"className":1149},[],[1151],{"type":512,"value":1152},"usermod",{"type":512,"value":1154}," добавляет пользователя в группу ",{"type":1106,"tag":21,"props":1156,"children":1158},{"className":1157},[],[1159],{"type":512,"value":209},{"type":512,"value":1161}," (рекомендуемый, безопасный способ). ",{"type":1106,"tag":21,"props":1163,"children":1165},{"className":1164},[],[1166],{"type":512,"value":1167},"chmod 666",{"type":512,"value":1169}," даёт всем полный доступ к сокету — это небезопасно и сбрасывается после перезагрузки.",{"data":1171,"body":1172},{},{"type":1103,"children":1173},[1174],{"type":1106,"tag":17,"props":1175,"children":1176},{},[1177,1179,1185],{"type":512,"value":1178},"Да, нужно выйти из системы и заново войти (или перезагрузить), чтобы обновить группу. Проверьте ",{"type":1106,"tag":21,"props":1180,"children":1182},{"className":1181},[],[1183],{"type":512,"value":1184},"groups",{"type":512,"value":1186}," в новом терминале.",{"data":1188,"body":1189},{},{"type":1103,"children":1190},[1191],{"type":1106,"tag":17,"props":1192,"children":1193},{},[1194,1196,1202],{"type":512,"value":1195},"Выполните команду ",{"type":1106,"tag":21,"props":1197,"children":1199},{"className":1198},[],[1200],{"type":512,"value":1201},"sudo usermod -aG docker $USER",{"type":512,"value":1203},". Это основной и безопасный способ granting доступа.",{"data":1205,"body":1206},{},{"type":1103,"children":1207},[1208],{"type":1106,"tag":17,"props":1209,"children":1210},{},[1211],{"type":512,"value":1061},{"data":1213,"body":1214},{},{"type":1103,"children":1215},[1216],{"type":1106,"tag":17,"props":1217,"children":1218},{},[1219,1221,1226,1228,1233,1235,1241],{"type":512,"value":1220},"Запустите ",{"type":1106,"tag":21,"props":1222,"children":1224},{"className":1223},[],[1225],{"type":512,"value":1184},{"type":512,"value":1227}," в терминале. В выводе должна быть группа ",{"type":1106,"tag":21,"props":1229,"children":1231},{"className":1230},[],[1232],{"type":512,"value":209},{"type":512,"value":1234},". Также проверьте ",{"type":1106,"tag":21,"props":1236,"children":1238},{"className":1237},[],[1239],{"type":512,"value":1240},"docker run hello-world",{"type":512,"value":1242}," без sudo.",{"data":1244,"body":1245},{},{"type":1103,"children":1246},[1247],{"type":1106,"tag":17,"props":1248,"children":1249},{},[1250,1252,1258],{"type":512,"value":1251},"Если группа не помогает, проверьте права: ",{"type":1106,"tag":21,"props":1253,"children":1255},{"className":1254},[],[1256],{"type":512,"value":1257},"ls -l /var/run/docker.sock",{"type":512,"value":1259},". Должно быть `srw-rw",[1261],{"id":1262,"title":1263,"appliesTo":1264,"author":12,"body":1268,"canonical":1035,"code":2076,"createdAt":2077,"description":2078,"difficulty":1038,"draft":1039,"estimatedTime":1040,"extension":1041,"faq":2079,"howToSteps":2092,"howToTotalTime":2105,"image":1035,"keywords":2106,"locale":1079,"meta":2117,"navigation":1081,"path":1087,"platform":1083,"related":2118,"section":2121,"seo":2122,"severity":1090,"stem":2123,"summary":2124,"tags":2125,"twitterCreator":1035,"twitterSite":1035,"type":1098,"updatedAt":2077,"__hash__":2133},"content_ru/errors/linux/selinux-permission-denied.md","Ошибка SELinux Permission Denied: причины и 4 способа исправления",[1265,1266,11,1267],"RHEL 8/9","CentOS 8/9","AlmaLinux/Rocky Linux 8/9",{"type":14,"value":1269,"toc":2065},[1270,1274,1289,1295,1321,1323,1375,1379,1382,1541,1559,1563,1569,1652,1668,1672,1675,1794,1798,1804,1865,1876,1878,1973,1975,1983,1990,2059,2062],[40,1271,1273],{"id":1272},"что-означает-ошибка-selinux-permission-denied","Что означает ошибка SELinux Permission Denied",[17,1275,1276,1277,1280,1281,1284,1285,1288],{},"Ошибка с текстом ",[21,1278,1279],{},"AVC denied"," (Access Vector Cache) или ",[21,1282,1283],{},"Permission denied"," в контексте SELinux означает, что ",[221,1286,1287],{},"механизм обязательного контроля доступа (MAC) блокирует операцию",", хотя стандартные права доступа (chmod/chown) могут быть настроены корректно. Сообщение обычно выглядит так:",[66,1290,1293],{"className":1291,"code":1292,"language":512},[510],"type=AVC msg=audit(1617890123.456:123): avc:  denied  { read } for  pid=1234 comm=\"nginx\" name=\"config.php\" dev=\"dm-0\" ino=123456 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:user_home_t:s0 tclass=file\n",[21,1294,1292],{"__ignoreMap":71},[17,1296,1297,1298,1301,1302,1305,1306,1309,1310,1313,1314,1309,1317,1320],{},"Ошибка возникает при попытке процесса (например, ",[21,1299,1300],{},"nginx",", ",[21,1303,1304],{},"mysqld",") получить доступ к файлу, сокету или другому объекту с неразрешённым для его ",[221,1307,1308],{},"домена SELinux"," (например, ",[21,1311,1312],{},"httpd_t",") ",[221,1315,1316],{},"типом контекста",[21,1318,1319],{},"user_home_t",").",[40,1322,214],{"id":213},[216,1324,1325,1341,1347,1359,1365],{},[29,1326,1327,1330,1331,1333,1334,1337,1338,1320],{},[221,1328,1329],{},"Неправильный контекст безопасности файла."," Файл, который должен быть доступен демону (веб-серверу, БД), имеет тип контекста по умолчанию (например, ",[21,1332,1319],{}," для файлов в ",[21,1335,1336],{},"/home","), а не специальный (например, ",[21,1339,1340],{},"httpd_sys_content_t",[29,1342,1343,1346],{},[221,1344,1345],{},"Неправильный контекст процесса."," Демон запущен с нестандартным контекстом, который не имеет прав на доступ к нужным типам файлов.",[29,1348,1349,1352,1353,936,1356,1320],{},[221,1350,1351],{},"Нестандартное расположение файлов."," Файлы сервисов размещены в каталогах, не предусмотренных политикой SELinux по умолчанию (например, веб-файлы в ",[21,1354,1355],{},"/srv/www",[21,1357,1358],{},"/var/www/html",[29,1360,1361,1364],{},[221,1362,1363],{},"Изменение политики или обновление ОС."," После обновления пакета или ядра политика SELinux может измениться, и старые контексты перестанут быть валидными.",[29,1366,1367,1370,1371,1374],{},[221,1368,1369],{},"Ошибка в пользовательской политике."," Написанный вручную модуль политики (",[21,1372,1373],{},"*.te"," файл) содержит ошибки или не покрывает все случаи.",[40,1376,1378],{"id":1377},"способ-1-быстрая-диагностика-и-восстановление-контекста-restorecon","Способ 1: Быстрая диагностика и восстановление контекста (restorecon)",[17,1380,1381],{},"Это основной и самый частый способ решения.",[216,1383,1384,1447,1467,1510],{},[29,1385,1386,1389,1390,1393,1394,1412,1414,1415,1437,1439,1440,1443,1444,1320],{},[221,1387,1388],{},"Найдите проблемный файл."," Используйте ",[21,1391,1392],{},"ausearch"," для поиска последних ошибок AVC:",[66,1395,1396],{"className":68,"code":614,"language":70,"meta":71,"style":71},[21,1397,1398],{"__ignoreMap":71},[75,1399,1400,1402,1404,1406,1408,1410],{"class":77,"line":78},[75,1401,340],{"class":81},[75,1403,623],{"class":85},[75,1405,626],{"class":346},[75,1407,629],{"class":85},[75,1409,632],{"class":346},[75,1411,635],{"class":85},[227,1413],{},"Или просмотрите лог напрямую:",[66,1416,1418],{"className":68,"code":1417,"language":70,"meta":71,"style":71},"sudo cat /var/log/audit/audit.log | grep \"avc:.*denied\"\n",[21,1419,1420],{"__ignoreMap":71},[75,1421,1422,1424,1427,1430,1432,1434],{"class":77,"line":78},[75,1423,340],{"class":81},[75,1425,1426],{"class":85}," cat",[75,1428,1429],{"class":85}," /var/log/audit/audit.log",[75,1431,771],{"class":770},[75,1433,774],{"class":81},[75,1435,1436],{"class":85}," \"avc:.*denied\"\n",[227,1438],{},"В выводе найдите путь к файлу (",[21,1441,1442],{},"name=\"...\"",") и тип контекста (",[21,1445,1446],{},"tcontext=...",[29,1448,1449,1452],{},[221,1450,1451],{},"Проверьте текущий контекст файла:",[66,1453,1455],{"className":68,"code":1454,"language":70,"meta":71,"style":71},"ls -Z /полный/путь/к/файлу\n",[21,1456,1457],{"__ignoreMap":71},[75,1458,1459,1461,1464],{"class":77,"line":78},[75,1460,497],{"class":81},[75,1462,1463],{"class":346}," -Z",[75,1465,1466],{"class":85}," /полный/путь/к/файлу\n",[29,1468,1469,1472,1473,1490,1492,1493],{},[221,1470,1471],{},"Восстановите правильный контекст."," Чаще всего нужно применить контекст, который соответствует местоположению файла по политике. Для стандартных путей:",[66,1474,1476],{"className":68,"code":1475,"language":70,"meta":71,"style":71},"sudo restorecon -v /полный/путь/к/файлу\n",[21,1477,1478],{"__ignoreMap":71},[75,1479,1480,1482,1485,1488],{"class":77,"line":78},[75,1481,340],{"class":81},[75,1483,1484],{"class":85}," restorecon",[75,1486,1487],{"class":346}," -v",[75,1489,1466],{"class":85},[227,1491],{},"Если нужно применить ко всему каталогу рекурсивно:",[66,1494,1496],{"className":68,"code":1495,"language":70,"meta":71,"style":71},"sudo restorecon -Rv /путь/к/каталогу\n",[21,1497,1498],{"__ignoreMap":71},[75,1499,1500,1502,1504,1507],{"class":77,"line":78},[75,1501,340],{"class":81},[75,1503,1484],{"class":85},[75,1505,1506],{"class":346}," -Rv",[75,1508,1509],{"class":85}," /путь/к/каталогу\n",[29,1511,1512,1515,1516],{},[221,1513,1514],{},"Перезапустите сервис"," (если он уже был запущен) и проверьте, исчезла ли ошибка.",[66,1517,1519],{"className":68,"code":1518,"language":70,"meta":71,"style":71},"sudo systemctl restart \u003Cимя_сервиса>\n",[21,1520,1521],{"__ignoreMap":71},[75,1522,1523,1525,1527,1529,1532,1535,1538],{"class":77,"line":78},[75,1524,340],{"class":81},[75,1526,573],{"class":85},[75,1528,576],{"class":85},[75,1530,1531],{"class":770}," \u003C",[75,1533,1534],{"class":85},"имя_сервис",[75,1536,1537],{"class":353},"а",[75,1539,1540],{"class":770},">\n",[412,1542,1543],{},[17,1544,584,1545,1547,1548,1551,1552,1555,1556,1558],{},[221,1546,587],{}," Если ",[21,1549,1550],{},"restorecon"," не помог, возможно, файл находится в нестандартном месте. Вам нужно определить, какой тип контекста (",[21,1553,1554],{},"-t",") должен быть у этого типа файла для данного сервиса (например, ",[21,1557,1340],{}," для статики Apache).",[40,1560,1562],{"id":1561},"способ-2-ручное-изменение-контекста-chcon","Способ 2: Ручное изменение контекста (chcon)",[17,1564,1565,1566,253],{},"Если файл должен иметь особый, нестандартный контекст, который не покрывается политикой по умолчанию, используйте ",[21,1567,1568],{},"chcon",[216,1570,1571,1605],{},[29,1572,1573,1576,1577],{},[221,1574,1575],{},"Определите нужный тип контекста."," Для популярных сервисов типы известны:",[26,1578,1579,1589,1595],{},[29,1580,1581,1582,1584,1585,1588],{},"Веб-сервер (Apache/Nginx): ",[21,1583,1340],{}," (файлы), ",[21,1586,1587],{},"httpd_sys_rw_content_t"," (директории для записи).",[29,1590,1591,1592,253],{},"FTP-сервер (vsftpd): ",[21,1593,1594],{},"public_content_rw_t",[29,1596,1597,1598,1601,1602,253],{},"NFS-шары: ",[21,1599,1600],{},"nfs_t",".\nПолный список типов можно найти в ",[21,1603,1604],{},"/etc/selinux/targeted/contexts/categorized_contexts",[29,1606,1607,1610,1631,1633,1634],{},[221,1608,1609],{},"Примените контекст к файлу или каталогу:",[66,1611,1613],{"className":68,"code":1612,"language":70,"meta":71,"style":71},"sudo chcon -t httpd_sys_content_t /путь/к/файлу\n",[21,1614,1615],{"__ignoreMap":71},[75,1616,1617,1619,1622,1625,1628],{"class":77,"line":78},[75,1618,340],{"class":81},[75,1620,1621],{"class":85}," chcon",[75,1623,1624],{"class":346}," -t",[75,1626,1627],{"class":85}," httpd_sys_content_t",[75,1629,1630],{"class":85}," /путь/к/файлу\n",[227,1632],{},"Для рекурсивного применения к каталогу:",[66,1635,1637],{"className":68,"code":1636,"language":70,"meta":71,"style":71},"sudo chcon -Rt httpd_sys_content_t /путь/к/каталогу\n",[21,1638,1639],{"__ignoreMap":71},[75,1640,1641,1643,1645,1648,1650],{"class":77,"line":78},[75,1642,340],{"class":81},[75,1644,1621],{"class":85},[75,1646,1647],{"class":346}," -Rt",[75,1649,1627],{"class":85},[75,1651,1509],{"class":85},[412,1653,1654],{},[17,1655,416,1656,1658,1659,1301,1661,1664,1665,1667],{},[221,1657,419],{}," Изменения, сделанные через ",[21,1660,1568],{},[221,1662,1663],{},"не являются постоянными",". Они будут сброшены при следующем выполнении ",[21,1666,1550],{}," или перезагрузке системы. Для постоянного решения используйте Способ 3.",[40,1669,1671],{"id":1670},"способ-3-создание-постоянного-правила-пользовательский-модуль","Способ 3: Создание постоянного правила (пользовательский модуль)",[17,1673,1674],{},"Это правильный способ, если файл должен всегда иметь нестандартный контекст или требуется разрешить специфическое действие.",[216,1676,1677,1725,1741,1764,1788],{},[29,1678,1679,1682,1683,1686,1687,1714,1716,1717,1720,1721,1724],{},[221,1680,1681],{},"Сгенерируйте модуль политики на основе логов аудита."," Установите пакет ",[21,1684,1685],{},"policycoreutils-python-utils"," (если нет). Затем:",[66,1688,1690],{"className":68,"code":1689,"language":70,"meta":71,"style":71},"sudo grep \"denied\" /var/log/audit/audit.log | audit2allow -M my_custom_policy\n",[21,1691,1692],{"__ignoreMap":71},[75,1693,1694,1696,1698,1701,1703,1705,1708,1711],{"class":77,"line":78},[75,1695,340],{"class":81},[75,1697,774],{"class":85},[75,1699,1700],{"class":85}," \"denied\"",[75,1702,1429],{"class":85},[75,1704,771],{"class":770},[75,1706,1707],{"class":81}," audit2allow",[75,1709,1710],{"class":346}," -M",[75,1712,1713],{"class":85}," my_custom_policy\n",[227,1715],{},"Эта команда создаст два файла: ",[21,1718,1719],{},"my_custom_policy.pp"," (бинарный модуль) и ",[21,1722,1723],{},"my_custom_policy.te"," (исходный текст).",[29,1726,1727,1734,1735],{},[221,1728,1729,1730,1733],{},"Проверьте содержимое ",[21,1731,1732],{},".te"," файла."," Убедитесь, что правила логичны и не открывают излишних прав. Пример содержимого:",[66,1736,1739],{"className":1737,"code":1738,"language":512},[510],"module my_custom_policy 1.0;\n\nrequire {\n    type httpd_t;\n    type user_home_t;\n    class file { read open };\n}\n\n#============= httpd_t ==============\nallow httpd_t user_home_t:file { read open };\n",[21,1740,1738],{"__ignoreMap":71},[29,1742,1743,1746],{},[221,1744,1745],{},"Установите модуль:",[66,1747,1749],{"className":68,"code":1748,"language":70,"meta":71,"style":71},"sudo semodule -i my_custom_policy.pp\n",[21,1750,1751],{"__ignoreMap":71},[75,1752,1753,1755,1758,1761],{"class":77,"line":78},[75,1754,340],{"class":81},[75,1756,1757],{"class":85}," semodule",[75,1759,1760],{"class":346}," -i",[75,1762,1763],{"class":85}," my_custom_policy.pp\n",[29,1765,1766,1769],{},[221,1767,1768],{},"Убедитесь, что модуль загружен:",[66,1770,1772],{"className":68,"code":1771,"language":70,"meta":71,"style":71},"sudo semodule -l | grep my_custom_policy\n",[21,1773,1774],{"__ignoreMap":71},[75,1775,1776,1778,1780,1782,1784,1786],{"class":77,"line":78},[75,1777,340],{"class":81},[75,1779,1757],{"class":85},[75,1781,500],{"class":346},[75,1783,771],{"class":770},[75,1785,774],{"class":81},[75,1787,1713],{"class":85},[29,1789,1790,1793],{},[221,1791,1792],{},"Перезапустите сервис."," После этого правило будет действовать постоянно.",[40,1795,1797],{"id":1796},"способ-4-временное-отключениеперевод-в-permissive-для-диагностики","Способ 4: Временное отключение/перевод в Permissive (для диагностики)",[17,1799,1800,1803],{},[221,1801,1802],{},"Это не решение проблемы, а инструмент диагностики!"," Не оставляйте систему в этом режиме надолго.",[216,1805,1806,1828,1848],{},[29,1807,1808,1813,1825,1827],{},[221,1809,1810,1811,330],{},"Временно (до перезагрузки) переведите SELinux в режим ",[21,1812,671],{},[66,1814,1815],{"className":68,"code":643,"language":70,"meta":71,"style":71},[21,1816,1817],{"__ignoreMap":71},[75,1818,1819,1821,1823],{"class":77,"line":78},[75,1820,340],{"class":81},[75,1822,652],{"class":85},[75,1824,655],{"class":346},[227,1826],{},"В этом режиме SELinux только логирует нарушения, но не блокирует их. Проверьте, работает ли приложение. Если да — проблема точно в SELinux.",[29,1829,1830,1836],{},[221,1831,1832,1833,330],{},"Чтобы вернуть режим ",[21,1834,1835],{},"enforcing",[66,1837,1838],{"className":68,"code":735,"language":70,"meta":71,"style":71},[21,1839,1840],{"__ignoreMap":71},[75,1841,1842,1844,1846],{"class":77,"line":78},[75,1843,340],{"class":81},[75,1845,652],{"class":85},[75,1847,746],{"class":346},[29,1849,1850,1853,1854,330,1856,1862,1864],{},[221,1851,1852],{},"Для постоянного изменения режима"," (не рекомендуется без понимания последствий) отредактируйте файл ",[21,1855,674],{},[66,1857,1860],{"className":1858,"code":1859,"language":512},[510],"SELINUX=disabled   # или permissive\n",[21,1861,1859],{"__ignoreMap":71},[227,1863],{},"и перезагрузите систему.",[412,1866,1867],{},[17,1868,416,1869,1871,1872,1875],{},[221,1870,419],{}," Отключение SELinux (",[21,1873,1874],{},"disabled",") — крайняя мера, которая сводит на нет всю систему защиты. Всегда ищите решение через настройку политик (Способы 1-3).",[40,1877,857],{"id":856},[26,1879,1880,1896,1941,1950,1967],{},[29,1881,1882,1885,1886,1301,1889,1301,1892,1895],{},[221,1883,1884],{},"Размещайте файлы сервисов в стандартных каталогах"," (",[21,1887,1888],{},"/var/www",[21,1890,1891],{},"/srv/ftp",[21,1893,1894],{},"/home/*/public_html"," с правильным контекстом).",[29,1897,1898,1901,1902,1905,1906],{},[221,1899,1900],{},"При создании новых каталогов для сервисов сразу задавайте правильный контекст"," с помощью ",[21,1903,1904],{},"semanage fcontext",":\n",[66,1907,1909],{"className":68,"code":1908,"language":70,"meta":71,"style":71},"sudo semanage fcontext -a -t httpd_sys_rw_content_t \"/my_app/data(/.*)?\"\nsudo restorecon -Rv /my_app/data\n",[21,1910,1911,1930],{"__ignoreMap":71},[75,1912,1913,1915,1917,1920,1922,1924,1927],{"class":77,"line":78},[75,1914,340],{"class":81},[75,1916,690],{"class":85},[75,1918,1919],{"class":85}," fcontext",[75,1921,696],{"class":346},[75,1923,1624],{"class":346},[75,1925,1926],{"class":85}," httpd_sys_rw_content_t",[75,1928,1929],{"class":85}," \"/my_app/data(/.*)?\"\n",[75,1931,1932,1934,1936,1938],{"class":77,"line":364},[75,1933,340],{"class":81},[75,1935,1484],{"class":85},[75,1937,1506],{"class":346},[75,1939,1940],{"class":85}," /my_app/data\n",[29,1942,1943,1885,1946,1949],{},[221,1944,1945],{},"Регулярно проверяйте логи аудита",[21,1947,1948],{},"/var/log/audit/audit.log",") на наличие новых AVC-сообщений после обновлений системы или ПО.",[29,1951,1952,1961,1962,1966],{},[221,1953,1954,1955,972,1958],{},"Используйте утилиты ",[21,1956,1957],{},"audit2why",[21,1959,1960],{},"audit2allow"," для понимания, ",[1963,1964,1965],"em",{},"почему"," доступ был запрещён, прежде чем просто разрешать всё.",[29,1968,1969,1972],{},[221,1970,1971],{},"Не отключайте SELinux на production-серверах."," Настройка политики — единственно верный путь.",[852,1974],{},[40,1976,1978,1979,1982],{"id":1977},"способ-5-использование-утилиты-sealert-для-анализа","Способ 5: Использование утилиты ",[21,1980,1981],{},"sealert"," для анализа",[17,1984,1985,1986,1989],{},"Установите пакет ",[21,1987,1988],{},"setroubleshoot"," (если не установлен). Эта утилита преобразует сырые логи аудита в читаемые отчёты с рекомендациями.",[216,1991,1992,2029,2053],{},[29,1993,1994,1997,2014,2016,2017],{},[221,1995,1996],{},"Запустите анализ:",[66,1998,2000],{"className":68,"code":1999,"language":70,"meta":71,"style":71},"sudo sealert -a /var/log/audit/audit.log\n",[21,2001,2002],{"__ignoreMap":71},[75,2003,2004,2006,2009,2011],{"class":77,"line":78},[75,2005,340],{"class":81},[75,2007,2008],{"class":85}," sealert",[75,2010,696],{"class":346},[75,2012,2013],{"class":85}," /var/log/audit/audit.log\n",[227,2015],{},"Или для последних сообщений:",[66,2018,2020],{"className":68,"code":2019,"language":70,"meta":71,"style":71},"sudo sealert\n",[21,2021,2022],{"__ignoreMap":71},[75,2023,2024,2026],{"class":77,"line":78},[75,2025,340],{"class":81},[75,2027,2028],{"class":85}," sealert\n",[29,2030,2031,2034,2035,2037,2038],{},[221,2032,2033],{},"Изучите вывод."," ",[21,2036,1981],{}," часто предлагает конкретные команды для исправления, например:",[26,2039,2040,2045,2050],{},[29,2041,2042],{},[21,2043,2044],{},"sudo chcon -t \u003Cтип> \u003Cфайл>",[29,2046,2047],{},[21,2048,2049],{},"sudo semanage port -a -t \u003Cтип> -p \u003Cпротокол> \u003Cпорт>",[29,2051,2052],{},"Предложение создать модуль политики.",[29,2054,2055,2058],{},[221,2056,2057],{},"Следуйте рекомендациям,"," но всегда проверяйте, что они соответствуют вашей архитектуре и не нарушают безопасность.",[17,2060,2061],{},"Этот способ особенно полезен, когда причина ошибки неочевидна (например, доступ к сетевому порту или нестандартному типу объекта).",[1018,2063,2064],{},"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 pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":71,"searchDepth":364,"depth":364,"links":2066},[2067,2068,2069,2070,2071,2072,2073,2074],{"id":1272,"depth":364,"text":1273},{"id":213,"depth":364,"text":214},{"id":1377,"depth":364,"text":1378},{"id":1561,"depth":364,"text":1562},{"id":1670,"depth":364,"text":1671},{"id":1796,"depth":364,"text":1797},{"id":856,"depth":364,"text":857},{"id":1977,"depth":364,"text":2075},"Способ 5: Использование утилиты sealert для анализа","AVC Denied","2026-04-08 14:02:36","Пошаговое решение ошибки 'Permission denied' в SELinux на Linux. Узнайте, как анализировать логи, исправлять контексты безопасности и настраивать политики. Инструкция за 15 минут.",[2080,2083,2086,2089],{"question":2081,"answer":2082},"Чем ошибка SELinux Permission Denied отличается от обычной 'Permission denied' (chmod)?","Обычная ошибка связана с правами доступа (владелец, группа, другие). Ошибка SELinux возникает, даже если права chmod верны, но процессу запрещён доступ политикой Mandatory Access Control (MAC).",{"question":2084,"answer":2085},"Можно ли просто отключить SELinux, чтобы решить проблему?","Можно временно перевести SELinux в режим `permissive` (только логирование) для диагностики, но полное отключение (`disabled`) снижает безопасность системы и не является решением проблемы.",{"question":2087,"answer":2088},"Какой файл логов нужно смотреть при ошибке SELinux?","Основной лог аудита — `/var/log/audit/audit.log`. Если пакет `audit` не установлен, сообщения могут попадать в `/var/log/messages` или `journalctl -xe`.",{"question":2090,"answer":2091},"Что такое контекст безопасности (context) в SELinux?","Это метка, присвоенная файлу или процессу, которая определяет, какие действия ему разрешены. Например, `httpd_sys_content_t` для веб-файлов Apache. Неправильный контекст — частая причина ошибок.",[2093,2096,2099,2102],{"name":2094,"text":2095},"Определите источник ошибки в логах","Используйте команду `ausearch` или просмотрите `/var/log/audit/audit.log` на наличие сообщений с `avc:  denied`. Найдите PID процесса и путь к файлу.",{"name":2097,"text":2098},"Проверьте текущий контекст файла","Выполните `ls -Z \u003Cпуть_к_файлу>`, чтобы увидеть текущий контекст безопасности файла, к которому был запрещён доступ.",{"name":2100,"text":2101},"Восстановите правильный контекст","Если контекст неверный, используйте `restorecon -v \u003Cпуть_к_файлу>` для восстановления из политики, или `chcon -t \u003Cтип_контекста> \u003Cпуть_к_файлу>` для ручного изменения.",{"name":2103,"text":2104},"Создайте локальную политику (если нужно)","Для постоянного решения, если файл должен иметь особый контекст, создайте модуль политики через `audit2allow -M mymodule` и установите его `semodule -i mymodule.pp`.","PT20M",[2107,2108,2109,2110,2111,2112,2113,2114,2115,2116],"selinux permission denied","ошибка selinux avc denied","как исправить permission denied linux","selinux отключить","chcon restorecon","политика selinux","audit.log selinux","контекст безопасности selinux"," enforcing permissive","selinux avc:  denied  {",{},[2119,2120],"/errors/linux/file-permission-denied","/guides/linux/selinux-basics","Ошибки Linux",{"title":1263,"description":2078},"errors/linux/selinux-permission-denied","Статья подробно разбирает ошибку 'Permission denied' от SELinux — механизма безопасности Linux. Вы узнаете, почему она возникает, как читать логи аудита и исправить проблему через корректировку контекстов или настройку политик.",[2126,2127,2128,46,2129,2130,2131,2132],"ошибки linux","selinux","безопасность","admin","rhel","centos","fedora","nS9S57tjhObPgOQYG34m-qrs-PuWhyg493lOYR0G_iY"]