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