[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/understanding-elf-format":3,"mdc--dxqbsu-key":604,"mdc--7by1h0-key":614,"mdc--fdzjl2-key":631,"mdc--beil4s-key":674,"mdc--vlmq46-key":682,"mdc--hf3fqv-key":690,"mdc--2gl9l4-key":698,"mdc--d04m-key":706,"related-/guides/linux/compiling-c-programs,/guides/linux/debugging-with-gdb,/guides/linux/file-permissions":714},{"id":4,"title":5,"appliesTo":6,"author":9,"body":10,"canonical":544,"code":544,"createdAt":545,"description":546,"difficulty":547,"draft":548,"estimatedTime":549,"extension":550,"faq":551,"howToSteps":561,"howToTotalTime":577,"image":544,"keywords":578,"locale":584,"meta":585,"navigation":297,"path":586,"platform":587,"related":588,"section":592,"seo":593,"severity":547,"stem":594,"summary":595,"tags":596,"twitterCreator":544,"twitterSite":544,"type":602,"updatedAt":545,"__hash__":603},"content_ru/guides/linux/understanding-elf-format.md","Понимание ELF формата: Полное руководство для Linux",[7,8],"Linux (любые дистрибутивы)","GNU Binutils","FixPedia Team",{"type":11,"value":12,"toc":529},"minimark",[13,17,21,26,29,42,45,84,88,91,114,117,121,128,140,143,151,158,162,169,183,186,203,207,210,224,227,265,269,272,334,337,340,344,347,361,364,375,379,382,430,433,437,442,445,460,464,467,488,492,495,522,525],[14,15,5],"h1",{"id":16},"понимание-elf-формата-полное-руководство-для-linux",[18,19,20],"p",{},"ELF (Executable and Linkable Format) — это стандартный формат исполняемых файлов, объектных файлов и разделяемых библиотек в Unix-подобных системах. Понимание ELF формата необходимо для разработчиков, системных администраторов и всех, кто работает с низкоуровневыми аспектами Linux.",[22,23,25],"h2",{"id":24},"требования-подготовка","Требования / Подготовка",[18,27,28],{},"Перед началом работы вам понадобятся:",[30,31,32,36,39],"ul",{},[33,34,35],"li",{},"Дистрибутив Linux (любой)",[33,37,38],{},"Права доступа root или sudo",[33,40,41],{},"Установленные GNU Binutils (обычно предустановлены)",[18,43,44],{},"Установите необходимые инструменты, если они отсутствуют:",[46,47,52],"pre",{"className":48,"code":49,"language":50,"meta":51,"style":51},"language-bash shiki shiki-themes github-light github-dark","sudo apt update\nsudo apt install binutils\n","bash","",[53,54,55,71],"code",{"__ignoreMap":51},[56,57,60,64,68],"span",{"class":58,"line":59},"line",1,[56,61,63],{"class":62},"sScJk","sudo",[56,65,67],{"class":66},"sZZnC"," apt",[56,69,70],{"class":66}," update\n",[56,72,74,76,78,81],{"class":58,"line":73},2,[56,75,63],{"class":62},[56,77,67],{"class":66},[56,79,80],{"class":66}," install",[56,82,83],{"class":66}," binutils\n",[22,85,87],{"id":86},"шаг-1-установка-необходимых-инструментов","Шаг 1: Установка необходимых инструментов",[18,89,90],{},"GNU Binutils — это набор утилит для работы с бинарными файлами, включая ELF формат. Убедитесь, что у вас установлены основные инструменты:",[46,92,94],{"className":48,"code":93,"language":50,"meta":51,"style":51},"which readelf objdump nm file\n",[53,95,96],{"__ignoreMap":51},[56,97,98,102,105,108,111],{"class":58,"line":59},[56,99,101],{"class":100},"sj4cs","which",[56,103,104],{"class":66}," readelf",[56,106,107],{"class":66}," objdump",[56,109,110],{"class":66}," nm",[56,112,113],{"class":66}," file\n",[18,115,116],{},"Если какой-либо инструмент отсутствует, установите пакет binutils. Эти утилиты предоставляют полный набор функций для анализа и работы с ELF файлами.",[22,118,120],{"id":119},"шаг-2-проверка-типа-файла","Шаг 2: Проверка типа файла",[18,122,123,124,127],{},"Первым шагом при работе с любым бинарным файлом является определение его типа. Команда ",[53,125,126],{},"file"," показывает информацию о формате файла:",[46,129,131],{"className":48,"code":130,"language":50,"meta":51,"style":51},"file /bin/ls\n",[53,132,133],{"__ignoreMap":51},[56,134,135,137],{"class":58,"line":59},[56,136,126],{"class":62},[56,138,139],{"class":66}," /bin/ls\n",[18,141,142],{},"Вывод будет примерно таким:",[46,144,149],{"className":145,"code":147,"language":148},[146],"language-text","/bin/ls: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=..., stripped\n","text",[53,150,147],{"__ignoreMap":51},[18,152,153,154,157],{},"Это говорит нам, что ",[53,155,156],{},"/bin/ls"," — 64-битный ELF файл для архитектуры x86-64, динамически связанный и без отладочной информации (stripped).",[22,159,161],{"id":160},"шаг-3-анализ-заголовка-elf-файла","Шаг 3: Анализ заголовка ELF файла",[18,163,164,165,168],{},"Заголовок ELF файла содержит основную информацию о файле. Используйте ",[53,166,167],{},"readelf"," для его анализа:",[46,170,172],{"className":48,"code":171,"language":50,"meta":51,"style":51},"readelf -h /bin/ls\n",[53,173,174],{"__ignoreMap":51},[56,175,176,178,181],{"class":58,"line":59},[56,177,167],{"class":62},[56,179,180],{"class":100}," -h",[56,182,139],{"class":66},[18,184,185],{},"Вы увидите информацию о:",[30,187,188,191,194,197,200],{},[33,189,190],{},"Типе файла (исполняемый, объектный, разделяемая библиотека)",[33,192,193],{},"Архитектуре (x86-64, ARM и т.д.)",[33,195,196],{},"Версии ELF",[33,198,199],{},"Точке входа (entry point)",[33,201,202],{},"Расположении заголовков программ и секций",[22,204,206],{"id":205},"шаг-4-изучение-секций","Шаг 4: Изучение секций",[18,208,209],{},"ELF файлы состоят из секций, каждая из которых выполняет определенную функцию. Проанализируйте секции:",[46,211,213],{"className":48,"code":212,"language":50,"meta":51,"style":51},"readelf -S /bin/ls\n",[53,214,215],{"__ignoreMap":51},[56,216,217,219,222],{"class":58,"line":59},[56,218,167],{"class":62},[56,220,221],{"class":100}," -S",[56,223,139],{"class":66},[18,225,226],{},"Ключевые секции включают:",[30,228,229,235,241,247,253,259],{},[33,230,231,234],{},[53,232,233],{},".text"," — исполняемый код",[33,236,237,240],{},[53,238,239],{},".data"," — инициализированные данные",[33,242,243,246],{},[53,244,245],{},".rodata"," — константы",[33,248,249,252],{},[53,250,251],{},".bss"," — неинициализированные данные",[33,254,255,258],{},[53,256,257],{},".symtab"," — таблица символов",[33,260,261,264],{},[53,262,263],{},".strtab"," — строковая таблица",[22,266,268],{"id":267},"шаг-5-просмотр-импортов-и-экспортов","Шаг 5: Просмотр импортов и экспортов",[18,270,271],{},"Для понимания зависимостей и интерфейсов ELF файла используйте:",[46,273,275],{"className":48,"code":274,"language":50,"meta":51,"style":51},"# Просмотр динамических зависимостей\nreadelf -d /bin/ls\n\n# Просмотр символов\nnm /bin/ls\n\n# Или более подробно\nreadelf -s /bin/ls\n",[53,276,277,283,292,299,305,313,318,324],{"__ignoreMap":51},[56,278,279],{"class":58,"line":59},[56,280,282],{"class":281},"sJ8bj","# Просмотр динамических зависимостей\n",[56,284,285,287,290],{"class":58,"line":73},[56,286,167],{"class":62},[56,288,289],{"class":100}," -d",[56,291,139],{"class":66},[56,293,295],{"class":58,"line":294},3,[56,296,298],{"emptyLinePlaceholder":297},true,"\n",[56,300,302],{"class":58,"line":301},4,[56,303,304],{"class":281},"# Просмотр символов\n",[56,306,308,311],{"class":58,"line":307},5,[56,309,310],{"class":62},"nm",[56,312,139],{"class":66},[56,314,316],{"class":58,"line":315},6,[56,317,298],{"emptyLinePlaceholder":297},[56,319,321],{"class":58,"line":320},7,[56,322,323],{"class":281},"# Или более подробно\n",[56,325,327,329,332],{"class":58,"line":326},8,[56,328,167],{"class":62},[56,330,331],{"class":100}," -s",[56,333,139],{"class":66},[18,335,336],{},"Это покажет, какие библиотеки используются и какие функции экспортируются или импортируются.",[338,339],"in-article-ad",{},[22,341,343],{"id":342},"шаг-6-анализ-программных-заголовков","Шаг 6: Анализ программных заголовков",[18,345,346],{},"Программные заголовки описывают, как операционная система должна загрузить файл в память:",[46,348,350],{"className":48,"code":349,"language":50,"meta":51,"style":51},"readelf -l /bin/ls\n",[53,351,352],{"__ignoreMap":51},[56,353,354,356,359],{"class":58,"line":59},[56,355,167],{"class":62},[56,357,358],{"class":100}," -l",[56,360,139],{"class":66},[18,362,363],{},"Вы увидите сегменты, такие как:",[30,365,366,369,372],{},[33,367,368],{},"LOAD — загружаемые сегменты",[33,370,371],{},"DYNAMIC — динамическая секция",[33,373,374],{},"INTERP — интерпретатор",[22,376,378],{"id":377},"проверка-результата","Проверка результата",[18,380,381],{},"Чтобы убедиться, что вы правильно анализируете ELF файлы, попробуйте применить эти команды к разным типам файлов:",[46,383,385],{"className":48,"code":384,"language":50,"meta":51,"style":51},"# Анализ объектного файла\ngcc -c test.c\nreadelf -h test.o\n\n# Анализ разделяемой библиотеки\nreadelf -h /usr/lib/libc.so.6\n",[53,386,387,392,403,412,416,421],{"__ignoreMap":51},[56,388,389],{"class":58,"line":59},[56,390,391],{"class":281},"# Анализ объектного файла\n",[56,393,394,397,400],{"class":58,"line":73},[56,395,396],{"class":62},"gcc",[56,398,399],{"class":100}," -c",[56,401,402],{"class":66}," test.c\n",[56,404,405,407,409],{"class":58,"line":294},[56,406,167],{"class":62},[56,408,180],{"class":100},[56,410,411],{"class":66}," test.o\n",[56,413,414],{"class":58,"line":301},[56,415,298],{"emptyLinePlaceholder":297},[56,417,418],{"class":58,"line":307},[56,419,420],{"class":281},"# Анализ разделяемой библиотеки\n",[56,422,423,425,427],{"class":58,"line":315},[56,424,167],{"class":62},[56,426,180],{"class":100},[56,428,429],{"class":66}," /usr/lib/libc.so.6\n",[18,431,432],{},"Сравните выводы и убедитесь, что понимаете различия между типами файлов.",[22,434,436],{"id":435},"возможные-проблемы","Возможные проблемы",[438,439,441],"h3",{"id":440},"права-доступа","Права доступа",[18,443,444],{},"Если у вас нет прав на чтение файла, команды не будут работать:",[46,446,448],{"className":48,"code":447,"language":50,"meta":51,"style":51},"sudo readelf -h /bin/ls\n",[53,449,450],{"__ignoreMap":51},[56,451,452,454,456,458],{"class":58,"line":59},[56,453,63],{"class":62},[56,455,104],{"class":66},[56,457,180],{"class":100},[56,459,139],{"class":66},[438,461,463],{"id":462},"битая-архитектура","Битая архитектура",[18,465,466],{},"При попытке анализа файла для другой архитектуры может возникнуть ошибка:",[46,468,470],{"className":48,"code":469,"language":50,"meta":51,"style":51},"# Для кросс-платформенного анализа\nsudo apt install binutils-multiarch\n",[53,471,472,477],{"__ignoreMap":51},[56,473,474],{"class":58,"line":59},[56,475,476],{"class":281},"# Для кросс-платформенного анализа\n",[56,478,479,481,483,485],{"class":58,"line":73},[56,480,63],{"class":62},[56,482,67],{"class":66},[56,484,80],{"class":66},[56,486,487],{"class":66}," binutils-multiarch\n",[438,489,491],{"id":490},"stripped-файлы","Stripped файлы",[18,493,494],{},"Если файл был stripped (без отладочной информации), некоторые секции могут отсутствовать:",[46,496,498],{"className":48,"code":497,"language":50,"meta":51,"style":51},"# Проверить, stripped ли файл\nfile /bin/ls\n# Если stripped, таблица символов будет пуста\nnm /bin/ls\n",[53,499,500,505,511,516],{"__ignoreMap":51},[56,501,502],{"class":58,"line":59},[56,503,504],{"class":281},"# Проверить, stripped ли файл\n",[56,506,507,509],{"class":58,"line":73},[56,508,126],{"class":62},[56,510,139],{"class":66},[56,512,513],{"class":58,"line":294},[56,514,515],{"class":281},"# Если stripped, таблица символов будет пуста\n",[56,517,518,520],{"class":58,"line":301},[56,519,310],{"class":62},[56,521,139],{"class":66},[18,523,524],{},"Понимание ELF формата — фундаментальный навык для работы с Linux на низком уровне. С этими инструментами и знаниями вы сможете анализировать любые бинарные файлы в вашей системе.",[526,527,528],"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":51,"searchDepth":73,"depth":73,"links":530},[531,532,533,534,535,536,537,538,539],{"id":24,"depth":73,"text":25},{"id":86,"depth":73,"text":87},{"id":119,"depth":73,"text":120},{"id":160,"depth":73,"text":161},{"id":205,"depth":73,"text":206},{"id":267,"depth":73,"text":268},{"id":342,"depth":73,"text":343},{"id":377,"depth":73,"text":378},{"id":435,"depth":73,"text":436,"children":540},[541,542,543],{"id":440,"depth":294,"text":441},{"id":462,"depth":294,"text":463},{"id":490,"depth":294,"text":491},null,"2026-04-09 14:29:27","Узнайте, как работает ELF формат в Linux. Пошаговое руководство по анализу и работе с исполняемыми файлами ELF. Проверенные методы для разработчиков и системных администраторов.","medium",false,"15-25 мин","md",[552,555,558],{"question":553,"answer":554},"Что такое ELF формат?","ELF (Executable and Linkable Format) — стандартный формат исполняемых файлов, объектных файлов и разделяемых библиотек в Unix-подобных системах, включая Linux.",{"question":556,"answer":557},"Как проверить, что файл имеет ELF формат?","Используйте команду `file filename`, которая покажет 'ELF' в выводе, если файл имеет этот формат.",{"question":559,"answer":560},"Какие инструменты нужны для анализа ELF файлов?","Основные инструменты: `readelf`, `objdump`, `nm`, `file`, `hexdump` — все они входят в состав GNU Binutils.",[562,565,568,571,574],{"name":563,"text":564},"Установка необходимых инструментов","Установите GNU Binutils для получения основных утилит анализа ELF файлов.",{"name":566,"text":567},"Проверка типа файла","Используйте команду file для определения типа и архитектуры ELF файла.",{"name":569,"text":570},"Анализ заголовка ELF файла","Используйте readelf -h для получения информации о заголовке файла.",{"name":572,"text":573},"Изучение секций","Проанализируйте секции ELF файла с помощью readelf -S.",{"name":575,"text":576},"Просмотр импортов и экспортов","Используйте nm и readelf -d для изучения символов и динамических секций.","PT20M",[579,580,581,582,583],"ELF формат Linux","анализ исполняемых файлов","ELF структура","Linux бинарники","ELF файлы","ru_RU",{},"/guides/linux/understanding-elf-format","linux",[589,590,591],"/guides/linux/compiling-c-programs","/guides/linux/debugging-with-gdb","/guides/linux/file-permissions","Гайды Linux",{"title":5,"description":546},"guides/linux/understanding-elf-format","Полное руководство по ELF формату в Linux, которое поможет вам понять структуру исполняемых файлов, проанализировать их содержимое и эффективно работать с бинарниками.",[597,598,599,600,601],"ELF","Linux","executable","binary","format","guide","AEVz55VRnpAUiHN5byLavv-lMIE8lSTwnqC6oQ1JEmk",{"data":605,"body":606},{},{"type":607,"children":608},"root",[609],{"type":610,"tag":18,"props":611,"children":612},"element",{},[613],{"type":148,"value":554},{"data":615,"body":616},{},{"type":607,"children":617},[618],{"type":610,"tag":18,"props":619,"children":620},{},[621,623,629],{"type":148,"value":622},"Используйте команду ",{"type":610,"tag":53,"props":624,"children":626},{"className":625},[],[627],{"type":148,"value":628},"file filename",{"type":148,"value":630},", которая покажет 'ELF' в выводе, если файл имеет этот формат.",{"data":632,"body":633},{},{"type":607,"children":634},[635],{"type":610,"tag":18,"props":636,"children":637},{},[638,640,645,647,653,654,659,660,665,666,672],{"type":148,"value":639},"Основные инструменты: ",{"type":610,"tag":53,"props":641,"children":643},{"className":642},[],[644],{"type":148,"value":167},{"type":148,"value":646},", ",{"type":610,"tag":53,"props":648,"children":650},{"className":649},[],[651],{"type":148,"value":652},"objdump",{"type":148,"value":646},{"type":610,"tag":53,"props":655,"children":657},{"className":656},[],[658],{"type":148,"value":310},{"type":148,"value":646},{"type":610,"tag":53,"props":661,"children":663},{"className":662},[],[664],{"type":148,"value":126},{"type":148,"value":646},{"type":610,"tag":53,"props":667,"children":669},{"className":668},[],[670],{"type":148,"value":671},"hexdump",{"type":148,"value":673}," — все они входят в состав GNU Binutils.",{"data":675,"body":676},{},{"type":607,"children":677},[678],{"type":610,"tag":18,"props":679,"children":680},{},[681],{"type":148,"value":564},{"data":683,"body":684},{},{"type":607,"children":685},[686],{"type":610,"tag":18,"props":687,"children":688},{},[689],{"type":148,"value":567},{"data":691,"body":692},{},{"type":607,"children":693},[694],{"type":610,"tag":18,"props":695,"children":696},{},[697],{"type":148,"value":570},{"data":699,"body":700},{},{"type":607,"children":701},[702],{"type":610,"tag":18,"props":703,"children":704},{},[705],{"type":148,"value":573},{"data":707,"body":708},{},{"type":607,"children":709},[710],{"type":610,"tag":18,"props":711,"children":712},{},[713],{"type":148,"value":576},[715],{"id":716,"title":717,"appliesTo":718,"author":9,"body":723,"canonical":544,"code":544,"createdAt":1609,"description":1610,"difficulty":547,"draft":548,"estimatedTime":1611,"extension":550,"faq":1612,"howToSteps":1625,"howToTotalTime":577,"image":544,"keywords":1641,"locale":584,"meta":1652,"navigation":297,"path":591,"platform":587,"related":1653,"section":592,"seo":1657,"severity":547,"stem":1658,"summary":1659,"tags":1660,"twitterCreator":544,"twitterSite":544,"type":602,"updatedAt":1609,"__hash__":1666},"content_ru/guides/linux/file-permissions.md","Как управлять правами доступа к файлам в Linux: полное руководство",[719,720,721,722],"Ubuntu 22.04+","Debian 11+","CentOS 7+","Fedora 35+",{"type":11,"value":724,"toc":1590},[725,729,732,736,739,750,754,761,776,779,785,788,835,839,846,850,853,909,913,926,958,964,975,1003,1006,1023,1025,1029,1039,1081,1084,1100,1106,1110,1117,1132,1135,1151,1155,1159,1162,1219,1223,1226,1254,1258,1261,1344,1354,1358,1361,1379,1382,1384,1389,1403,1406,1422,1425,1436,1438,1444,1455,1460,1486,1491,1544,1549,1571,1576,1587],[22,726,728],{"id":727},"введение","Введение",[18,730,731],{},"Права доступа к файлам в Linux — это фундаментальный механизм безопасности, который контролирует, кто может читать, изменять или выполнять файлы и каталоги. Неправильная настройка прав может привести к утечке данных, сбоям в работе сервисов или компрометации системы. Этот гайд поможет вам освоить управление правами с помощью стандартных команд, чтобы обеспечить безопасность и корректную работу вашей системы.",[22,733,735],{"id":734},"требования","Требования",[18,737,738],{},"Перед началом убедитесь, что у вас есть:",[30,740,741,744,747],{},[33,742,743],{},"Доступ к терминалу Linux (Ubuntu, Debian, CentOS, Fedora или другой дистрибутив)",[33,745,746],{},"Базовые навыки работы с командной строкой",[33,748,749],{},"Для изменения прав системных файлов или смены владельца могут потребоваться права суперпользователя (sudo)",[22,751,753],{"id":752},"шаг-1-проверка-текущих-прав-доступа","Шаг 1: Проверка текущих прав доступа",[18,755,756,757,760],{},"Чтобы понять текущую конфигурацию, используйте команду ",[53,758,759],{},"ls -l",". Она отображает подробную информацию о файле, включая права доступа, владельца и группу.",[46,762,764],{"className":48,"code":763,"language":50,"meta":51,"style":51},"ls -l filename\n",[53,765,766],{"__ignoreMap":51},[56,767,768,771,773],{"class":58,"line":59},[56,769,770],{"class":62},"ls",[56,772,358],{"class":100},[56,774,775],{"class":66}," filename\n",[18,777,778],{},"Пример вывода:",[46,780,783],{"className":781,"code":782,"language":148,"meta":51},[146],"-rwxr-xr-- 1 user group 1024 Feb 16 10:00 example.txt\n",[53,784,782],{"__ignoreMap":51},[18,786,787],{},"Расшифровка строки прав доступа:",[30,789,790,808,815,822,829],{},[33,791,792,793,796,797,799,800,803,804,807],{},"Первый символ ",[53,794,795],{},"-"," — тип файла (",[53,798,795],{}," обычный файл, ",[53,801,802],{},"d"," каталог, ",[53,805,806],{},"l"," ссылка).",[33,809,810,811,814],{},"Следующие три символа (",[53,812,813],{},"rwx",") — права владельца (чтение, запись, выполнение).",[33,816,817,818,821],{},"Три символа после (",[53,819,820],{},"r-x",") — права группы.",[33,823,824,825,828],{},"Последние три символа (",[53,826,827],{},"r--",") — права всех остальных пользователей.",[33,830,831,832,834],{},"Если символ заменен на ",[53,833,795],{},", право отсутствует.",[22,836,838],{"id":837},"шаг-2-изменение-прав-доступа-с-помощью-chmod","Шаг 2: Изменение прав доступа с помощью chmod",[18,840,841,842,845],{},"Команда ",[53,843,844],{},"chmod"," изменяет права доступа. Есть два основных подхода: символьный и числовой (Octal).",[438,847,849],{"id":848},"символьный-способ","Символьный способ",[18,851,852],{},"Вы указываете категорию (u — владелец, g — группа, o — другие, a — все) и операцию (+, -, =).",[46,854,856],{"className":48,"code":855,"language":50,"meta":51,"style":51},"chmod u+x script.sh      # Добавить право выполнения для владельца\nchmod g-w file.txt       # Удалить право записи для группы\nchmod o=r file.txt       # Установить только чтение для других\nchmod a+x /usr/bin/app   # Добавить выполнение для всех\n",[53,857,858,871,884,896],{"__ignoreMap":51},[56,859,860,862,865,868],{"class":58,"line":59},[56,861,844],{"class":62},[56,863,864],{"class":66}," u+x",[56,866,867],{"class":66}," script.sh",[56,869,870],{"class":281},"      # Добавить право выполнения для владельца\n",[56,872,873,875,878,881],{"class":58,"line":73},[56,874,844],{"class":62},[56,876,877],{"class":66}," g-w",[56,879,880],{"class":66}," file.txt",[56,882,883],{"class":281},"       # Удалить право записи для группы\n",[56,885,886,888,891,893],{"class":58,"line":294},[56,887,844],{"class":62},[56,889,890],{"class":66}," o=r",[56,892,880],{"class":66},[56,894,895],{"class":281},"       # Установить только чтение для других\n",[56,897,898,900,903,906],{"class":58,"line":301},[56,899,844],{"class":62},[56,901,902],{"class":66}," a+x",[56,904,905],{"class":66}," /usr/bin/app",[56,907,908],{"class":281},"   # Добавить выполнение для всех\n",[438,910,912],{"id":911},"числовой-способ-octal","Числовой способ (Octal)",[18,914,915,916,646,919,646,922,925],{},"Каждому праву присвоено числовое значение: ",[53,917,918],{},"r=4",[53,920,921],{},"w=2",[53,923,924],{},"x=1",". Суммируйте значения для каждой категории (владелец, группа, другие).",[30,927,928,934,940,946,952],{},[33,929,930,933],{},[53,931,932],{},"7"," = 4+2+1 (rwx)",[33,935,936,939],{},[53,937,938],{},"6"," = 4+2+0 (rw-)",[33,941,942,945],{},[53,943,944],{},"5"," = 4+0+1 (r-x)",[33,947,948,951],{},[53,949,950],{},"4"," = 4+0+0 (r--)",[33,953,954,957],{},[53,955,956],{},"0"," = 0+0+0 (---)",[18,959,960,961],{},"Пример: ",[53,962,963],{},"chmod 755 file",[30,965,966,969,972],{},[33,967,968],{},"Владелец: rwx (7)",[33,970,971],{},"Группа: r-x (5)",[33,973,974],{},"Другие: r-x (5)",[46,976,978],{"className":48,"code":977,"language":50,"meta":51,"style":51},"chmod 755 /path/to/script.sh\nchmod 644 /path/to/config.conf  # Владелец: rw-, группа и другие: r--\n",[53,979,980,990],{"__ignoreMap":51},[56,981,982,984,987],{"class":58,"line":59},[56,983,844],{"class":62},[56,985,986],{"class":100}," 755",[56,988,989],{"class":66}," /path/to/script.sh\n",[56,991,992,994,997,1000],{"class":58,"line":73},[56,993,844],{"class":62},[56,995,996],{"class":100}," 644",[56,998,999],{"class":66}," /path/to/config.conf",[56,1001,1002],{"class":281},"  # Владелец: rw-, группа и другие: r--\n",[18,1004,1005],{},"Для рекурсивного изменения в каталоге:",[46,1007,1009],{"className":48,"code":1008,"language":50,"meta":51,"style":51},"chmod -R 755 /var/www/html\n",[53,1010,1011],{"__ignoreMap":51},[56,1012,1013,1015,1018,1020],{"class":58,"line":59},[56,1014,844],{"class":62},[56,1016,1017],{"class":100}," -R",[56,1019,986],{"class":100},[56,1021,1022],{"class":66}," /var/www/html\n",[338,1024],{},[22,1026,1028],{"id":1027},"шаг-3-изменение-владельца-файла-с-помощью-chown","Шаг 3: Изменение владельца файла с помощью chown",[18,1030,841,1031,1034,1035,1038],{},[53,1032,1033],{},"chown"," меняет владельца и/или группу файла. Синтаксис: ",[53,1036,1037],{},"chown [новый_владелец]:[новая_группа] файл",".",[46,1040,1042],{"className":48,"code":1041,"language":50,"meta":51,"style":51},"chown alice:developers project.txt  # Изменить и владельца, и группу\nchown alice project.txt             # Изменить только владельца\nchown :developers project.txt       # Изменить только группу\n",[53,1043,1044,1057,1069],{"__ignoreMap":51},[56,1045,1046,1048,1051,1054],{"class":58,"line":59},[56,1047,1033],{"class":62},[56,1049,1050],{"class":66}," alice:developers",[56,1052,1053],{"class":66}," project.txt",[56,1055,1056],{"class":281},"  # Изменить и владельца, и группу\n",[56,1058,1059,1061,1064,1066],{"class":58,"line":73},[56,1060,1033],{"class":62},[56,1062,1063],{"class":66}," alice",[56,1065,1053],{"class":66},[56,1067,1068],{"class":281},"             # Изменить только владельца\n",[56,1070,1071,1073,1076,1078],{"class":58,"line":294},[56,1072,1033],{"class":62},[56,1074,1075],{"class":66}," :developers",[56,1077,1053],{"class":66},[56,1079,1080],{"class":281},"       # Изменить только группу\n",[18,1082,1083],{},"Для рекурсивного применения:",[46,1085,1087],{"className":48,"code":1086,"language":50,"meta":51,"style":51},"chown -R alice:developers /projects/\n",[53,1088,1089],{"__ignoreMap":51},[56,1090,1091,1093,1095,1097],{"class":58,"line":59},[56,1092,1033],{"class":62},[56,1094,1017],{"class":100},[56,1096,1050],{"class":66},[56,1098,1099],{"class":66}," /projects/\n",[1101,1102,1103],"blockquote",{},[18,1104,1105],{},"⚠️ Важно: Для изменения владельца системных файлов обычно требуются права sudo.",[22,1107,1109],{"id":1108},"шаг-4-изменение-группы-файла-с-помощью-chgrp","Шаг 4: Изменение группы файла с помощью chgrp",[18,1111,1112,1113,1116],{},"Если нужно изменить только группу, используйте ",[53,1114,1115],{},"chgrp",":",[46,1118,1120],{"className":48,"code":1119,"language":50,"meta":51,"style":51},"chgrp developers file.txt\n",[53,1121,1122],{"__ignoreMap":51},[56,1123,1124,1126,1129],{"class":58,"line":59},[56,1125,1115],{"class":62},[56,1127,1128],{"class":66}," developers",[56,1130,1131],{"class":66}," file.txt\n",[18,1133,1134],{},"Рекурсивно:",[46,1136,1138],{"className":48,"code":1137,"language":50,"meta":51,"style":51},"chgrp -R developers /shared/\n",[53,1139,1140],{"__ignoreMap":51},[56,1141,1142,1144,1146,1148],{"class":58,"line":59},[56,1143,1115],{"class":62},[56,1145,1017],{"class":100},[56,1147,1128],{"class":66},[56,1149,1150],{"class":66}," /shared/\n",[22,1152,1154],{"id":1153},"шаг-5-практические-примеры-настройки-прав","Шаг 5: Практические примеры настройки прав",[438,1156,1158],{"id":1157},"пример-1-веб-сервер-nginxapache","Пример 1: Веб-сервер (Nginx/Apache)",[18,1160,1161],{},"Файлы конфигурации должны быть защищены, а логи доступны для записи веб-сервером.",[46,1163,1165],{"className":48,"code":1164,"language":50,"meta":51,"style":51},"# Конфигурация: только root может читать/писать, группа www-data только читает\nchmod 640 /etc/nginx/nginx.conf\nchown root:www-data /etc/nginx/nginx.conf\n\n# Логи: группа www-data может записывать\nchmod 664 /var/log/nginx/access.log\nchown www-data:adm /var/log/nginx/access.log\n",[53,1166,1167,1172,1182,1191,1195,1200,1210],{"__ignoreMap":51},[56,1168,1169],{"class":58,"line":59},[56,1170,1171],{"class":281},"# Конфигурация: только root может читать/писать, группа www-data только читает\n",[56,1173,1174,1176,1179],{"class":58,"line":73},[56,1175,844],{"class":62},[56,1177,1178],{"class":100}," 640",[56,1180,1181],{"class":66}," /etc/nginx/nginx.conf\n",[56,1183,1184,1186,1189],{"class":58,"line":294},[56,1185,1033],{"class":62},[56,1187,1188],{"class":66}," root:www-data",[56,1190,1181],{"class":66},[56,1192,1193],{"class":58,"line":301},[56,1194,298],{"emptyLinePlaceholder":297},[56,1196,1197],{"class":58,"line":307},[56,1198,1199],{"class":281},"# Логи: группа www-data может записывать\n",[56,1201,1202,1204,1207],{"class":58,"line":315},[56,1203,844],{"class":62},[56,1205,1206],{"class":100}," 664",[56,1208,1209],{"class":66}," /var/log/nginx/access.log\n",[56,1211,1212,1214,1217],{"class":58,"line":320},[56,1213,1033],{"class":62},[56,1215,1216],{"class":66}," www-data:adm",[56,1218,1209],{"class":66},[438,1220,1222],{"id":1221},"пример-2-скрипт-запускаемый-от-root","Пример 2: Скрипт, запускаемый от root",[18,1224,1225],{},"Скрипт, который должен выполняться только от root и не быть измененным другими:",[46,1227,1229],{"className":48,"code":1228,"language":50,"meta":51,"style":51},"chmod 700 /usr/local/bin/backup.sh  # Только владелец (root) имеет полные права\nchown root:root /usr/local/bin/backup.sh\n",[53,1230,1231,1244],{"__ignoreMap":51},[56,1232,1233,1235,1238,1241],{"class":58,"line":59},[56,1234,844],{"class":62},[56,1236,1237],{"class":100}," 700",[56,1239,1240],{"class":66}," /usr/local/bin/backup.sh",[56,1242,1243],{"class":281},"  # Только владелец (root) имеет полные права\n",[56,1245,1246,1248,1251],{"class":58,"line":73},[56,1247,1033],{"class":62},[56,1249,1250],{"class":66}," root:root",[56,1252,1253],{"class":66}," /usr/local/bin/backup.sh\n",[438,1255,1257],{"id":1256},"пример-3-общий-каталог-для-команды","Пример 3: Общий каталог для команды",[18,1259,1260],{},"Каталог, к которому у нескольких пользователей есть доступ на запись:",[46,1262,1264],{"className":48,"code":1263,"language":50,"meta":51,"style":51},"# Создайте группу и добавьте пользователей\ngroupadd shared-group\nusermod -aG shared-group alice\nusermod -aG shared-group bob\n\n# Настройте каталог\nmkdir /shared/project\nchown root:shared-group /shared/project\nchmod 2775 /shared/project  # SGID-бит: новые файлы наследуют группу каталога\n",[53,1265,1266,1271,1279,1293,1304,1308,1313,1321,1330],{"__ignoreMap":51},[56,1267,1268],{"class":58,"line":59},[56,1269,1270],{"class":281},"# Создайте группу и добавьте пользователей\n",[56,1272,1273,1276],{"class":58,"line":73},[56,1274,1275],{"class":62},"groupadd",[56,1277,1278],{"class":66}," shared-group\n",[56,1280,1281,1284,1287,1290],{"class":58,"line":294},[56,1282,1283],{"class":62},"usermod",[56,1285,1286],{"class":100}," -aG",[56,1288,1289],{"class":66}," shared-group",[56,1291,1292],{"class":66}," alice\n",[56,1294,1295,1297,1299,1301],{"class":58,"line":301},[56,1296,1283],{"class":62},[56,1298,1286],{"class":100},[56,1300,1289],{"class":66},[56,1302,1303],{"class":66}," bob\n",[56,1305,1306],{"class":58,"line":307},[56,1307,298],{"emptyLinePlaceholder":297},[56,1309,1310],{"class":58,"line":315},[56,1311,1312],{"class":281},"# Настройте каталог\n",[56,1314,1315,1318],{"class":58,"line":320},[56,1316,1317],{"class":62},"mkdir",[56,1319,1320],{"class":66}," /shared/project\n",[56,1322,1323,1325,1328],{"class":58,"line":326},[56,1324,1033],{"class":62},[56,1326,1327],{"class":66}," root:shared-group",[56,1329,1320],{"class":66},[56,1331,1333,1335,1338,1341],{"class":58,"line":1332},9,[56,1334,844],{"class":62},[56,1336,1337],{"class":100}," 2775",[56,1339,1340],{"class":66}," /shared/project",[56,1342,1343],{"class":281},"  # SGID-бит: новые файлы наследуют группу каталога\n",[18,1345,1346,1347,1350,1351,1038],{},"Теперь все файлы, созданные в ",[53,1348,1349],{},"/shared/project",", будут принадлежать группе ",[53,1352,1353],{},"shared-group",[438,1355,1357],{"id":1356},"пример-4-безопасный-каталог-для-загрузок","Пример 4: Безопасный каталог для загрузок",[18,1359,1360],{},"Если нужно разрешить загрузку файлов, но запретить выполнение:",[46,1362,1364],{"className":48,"code":1363,"language":50,"meta":51,"style":51},"chmod 733 /uploads  # Владелец: полные права, группа и другие: только запись и выполнение (но не чтение)\n",[53,1365,1366],{"__ignoreMap":51},[56,1367,1368,1370,1373,1376],{"class":58,"line":59},[56,1369,844],{"class":62},[56,1371,1372],{"class":100}," 733",[56,1374,1375],{"class":66}," /uploads",[56,1377,1378],{"class":281},"  # Владелец: полные права, группа и другие: только запись и выполнение (но не чтение)\n",[18,1380,1381],{},"Это позволяет загружать файлы, но не читать их содержимое.",[22,1383,378],{"id":377},[18,1385,1386,1387,1116],{},"После изменений проверьте права с помощью ",[53,1388,759],{},[46,1390,1392],{"className":48,"code":1391,"language":50,"meta":51,"style":51},"ls -l /path/to/file\n",[53,1393,1394],{"__ignoreMap":51},[56,1395,1396,1398,1400],{"class":58,"line":59},[56,1397,770],{"class":62},[56,1399,358],{"class":100},[56,1401,1402],{"class":66}," /path/to/file\n",[18,1404,1405],{},"Убедитесь, что:",[30,1407,1408,1411],{},[33,1409,1410],{},"Владелец и группа установлены корректно.",[33,1412,1413,1414,1417,1418,1421],{},"Права доступа соответствуют требуемым (например, ",[53,1415,1416],{},"-rw-r--r--"," для обычных файлов, ",[53,1419,1420],{},"drwxr-xr-x"," для каталогов).",[18,1423,1424],{},"Протестируйте функциональность:",[30,1426,1427,1430,1433],{},[33,1428,1429],{},"Попробуйте выполнить скрипт от имени разных пользователей.",[33,1431,1432],{},"Проверьте, можно ли записать в файл или каталог.",[33,1434,1435],{},"Для веб-серверов убедитесь, что они могут читать конфиги и писать логи.",[22,1437,436],{"id":435},[18,1439,1440],{},[1441,1442,1443],"strong",{},"Ошибка \"Permission denied\" при выполнении команды",[30,1445,1446,1449],{},[33,1447,1448],{},"Причина: недостаточно прав (например, попытка изменить системный файл без sudo).",[33,1450,1451,1452,1454],{},"Решение: добавьте ",[53,1453,63],{}," перед командой, если у вас есть права администратора, или измените права на файл, чтобы ваш пользователь имел доступ.",[18,1456,1457],{},[1441,1458,1459],{},"Изменения прав не применились",[30,1461,1462,1465,1479],{},[33,1463,1464],{},"Убедитесь, что вы редактируете правильный файл или каталог.",[33,1466,1467,1468,646,1471,1474,1475,1478],{},"Проверьте, не переопределены ли права через параметры монтирования (например, ",[53,1469,1470],{},"noexec",[53,1472,1473],{},"nosuid"," в ",[53,1476,1477],{},"/etc/fstab",").",[33,1480,1481,1482,1485],{},"Для симлинков используйте ",[53,1483,1484],{},"chmod -h"," или изменяйте права целевого файла.",[18,1487,1488],{},[1441,1489,1490],{},"Рекурсивное изменение затронуло не те файлы",[30,1492,1493,1499],{},[33,1494,1495,1496,1038],{},"Всегда проверяйте путь перед использованием ",[53,1497,1498],{},"-R",[33,1500,1501,1502,1505,1506],{},"Используйте ",[53,1503,1504],{},"find"," для точного выбора:\n",[46,1507,1509],{"className":48,"code":1508,"language":50,"meta":51,"style":51},"find /var/www -type f -name \"*.php\" -exec chmod 644 {} \\;\n",[53,1510,1511],{"__ignoreMap":51},[56,1512,1513,1515,1518,1521,1524,1527,1530,1533,1536,1538,1541],{"class":58,"line":59},[56,1514,1504],{"class":62},[56,1516,1517],{"class":66}," /var/www",[56,1519,1520],{"class":100}," -type",[56,1522,1523],{"class":66}," f",[56,1525,1526],{"class":100}," -name",[56,1528,1529],{"class":66}," \"*.php\"",[56,1531,1532],{"class":100}," -exec",[56,1534,1535],{"class":66}," chmod",[56,1537,996],{"class":100},[56,1539,1540],{"class":66}," {}",[56,1542,1543],{"class":100}," \\;\n",[18,1545,1546],{},[1441,1547,1548],{},"Права 777 слишком открытые",[30,1550,1551,1565],{},[33,1552,1553,1554,1557,1558,1561,1562,1038],{},"Избегайте ",[53,1555,1556],{},"777",", кроме временных отладок. Вместо этого настройте группы и используйте ",[53,1559,1560],{},"775"," или ",[53,1563,1564],{},"755",[33,1566,1567,1568,1478],{},"Для каталогов, требующих записи нескольким пользователям, используйте групповые права и SGID-бит (",[53,1569,1570],{},"chmod 2770",[18,1572,1573],{},[1441,1574,1575],{},"Не могу изменить владельца на другого пользователя",[30,1577,1578,1584],{},[33,1579,1580,1581,1478],{},"Убедитесь, что пользователь существует (",[53,1582,1583],{},"id username",[33,1585,1586],{},"Для смены владельца на не-sudo пользователя вам нужны права root.",[526,1588,1589],{},"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":51,"searchDepth":73,"depth":73,"links":1591},[1592,1593,1594,1595,1599,1600,1601,1607,1608],{"id":727,"depth":73,"text":728},{"id":734,"depth":73,"text":735},{"id":752,"depth":73,"text":753},{"id":837,"depth":73,"text":838,"children":1596},[1597,1598],{"id":848,"depth":294,"text":849},{"id":911,"depth":294,"text":912},{"id":1027,"depth":73,"text":1028},{"id":1108,"depth":73,"text":1109},{"id":1153,"depth":73,"text":1154,"children":1602},[1603,1604,1605,1606],{"id":1157,"depth":294,"text":1158},{"id":1221,"depth":294,"text":1222},{"id":1256,"depth":294,"text":1257},{"id":1356,"depth":294,"text":1357},{"id":377,"depth":73,"text":378},{"id":435,"depth":73,"text":436},"2026-02-16 19:00:53","Узнайте, как настраивать права доступа к файлам и папкам в Linux с помощью chmod, chown и других команд. Пошаговая инструкция для новичков и опытных пользователей.","15-30 мин",[1613,1616,1619,1622],{"question":1614,"answer":1615},"Что такое права доступа в Linux и зачем они нужны?","Права доступа в Linux определяют, какие пользователи или группы могут читать, изменять или выполнять файлы и каталоги. Они необходимы для обеспечения безопасности и предотвращения несанкционированного доступа.",{"question":1617,"answer":1618},"Как использовать chmod для изменения прав?","Используйте chmod с числовым (например, 755) или символьным (например, u+x) аргументом. Числовой способ: r=4, w=2, x=1, суммируйте для каждой категории (владелец, группа, другие).",{"question":1620,"answer":1621},"В чем разница между chmod 755 и 777?","755 дает владельцу полные права (rwx), группе и другим — чтение и выполнение (r-x). 777 дает полные права всем, что небезопасно и должно использоваться только в особых случаях.",{"question":1623,"answer":1624},"Как изменить владельца файла в Linux?","Используйте chown с указанием нового владельца и группы: chown user:group file. Для рекурсивного изменения добавьте флаг -R.",[1626,1629,1632,1635,1638],{"name":1627,"text":1628},"Проверка текущих прав","Используйте команду ls -l для просмотра прав доступа, владельца и группы файла.",{"name":1630,"text":1631},"Изменение прав с chmod","Используйте chmod в символьном или числовом формате для установки разрешений чтения, записи и выполнения.",{"name":1633,"text":1634},"Смена владельца с chown","Команда chown изменяет владельца и/или группу файла, используя синтаксис user:group.",{"name":1636,"text":1637},"Изменение группы с chgrp","chgrp меняет только группу файла, оставляя владельца без изменений.",{"name":1639,"text":1640},"Примеры для распространенных сценариев","Настройка прав для веб-сервера, скриптов и общих каталогов с учетом безопасности.",[1642,1643,1644,1645,1646,1647,1648,1649,1650,1651],"права доступа linux","chmod команда","изменить владельца файла linux","chown использование","права файлов linux примеры","как настроить права доступа в linux","linux file permissions","chmod 755 что значит","управление разрешениями linux","группы и пользователи linux права",{},[1654,1655,1656],"/guides/linux/user-management","/guides/linux/ssh-keys","/errors/linux/permission-denied",{"title":717,"description":1610},"guides/linux/file-permissions","Этот гайд объясняет, как управлять правами доступа к файлам в Linux, используя команды chmod, chown и chgrp. Вы научитесь настраивать разрешения для пользователей, групп и других.",[587,1661,844,1033,1662,1663,1664,1665],"права доступа","безопасность","file permissions","sysadmin","команды linux","pTkMwEio2wO3vgmI1MSz0ZZdk3fQwkNpKDkj-gj2KHc"]