[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/systemd-services-explained":3,"mdc-18xwh-key":1488,"mdc--lz2vw6-key":1499,"mdc-p24n7l-key":1548,"mdc--hx3818-key":1583,"mdc--db90qg-key":1622,"mdc--fncy1u-key":1654,"mdc-g0nrfx-key":1686,"mdc--wo1lxi-key":1718,"mdc--9uv5g5-key":1752,"related-/guides/linux/systemd-timers-explained,/guides/linux/journalctl-usage,/guides/linux/linux-permissions-explained":1782},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":1420,"code":1420,"createdAt":1421,"description":1422,"difficulty":1423,"draft":1424,"estimatedTime":1425,"extension":1426,"faq":1427,"howToSteps":1440,"howToTotalTime":1456,"image":1420,"keywords":1457,"locale":1468,"meta":1469,"navigation":160,"path":1470,"platform":1471,"related":1472,"section":1476,"seo":1477,"severity":1420,"stem":1478,"summary":1479,"tags":1480,"twitterCreator":1420,"twitterSite":1420,"type":1486,"updatedAt":1421,"__hash__":1487},"content_ru/guides/linux/systemd-services-explained.md","Systemd Services: Полное руководство по управлению службами Linux",[7,8,9,10],"Ubuntu 16.04+","Debian 8+","CentOS 7+","Fedora 25+","FixPedia Team",{"type":13,"value":14,"toc":1387},"minimark",[15,20,24,27,50,54,105,108,112,115,120,209,213,298,316,318,322,327,331,477,481,558,560,563,567,570,574,580,627,630,648,652,659,734,739,771,775,851,855,897,899,903,907,910,930,933,945,948,965,969,976,996,999,1023,1025,1029,1089,1091,1095,1103,1143,1147,1167,1171,1222,1226,1246,1250,1279,1283,1318,1320,1324,1380,1383],[16,17,19],"h2",{"id":18},"введение-зачем-это-нужно","Введение / Зачем это нужно",[21,22,23],"p",{},"Systemd — это современная система инициализации и менеджер служб для большинства Linux-дистрибутивов (Ubuntu, Debian, CentOS, Fedora). Понимание systemd services критически важно для администрирования серверов, настройки автоматизации и диагностики проблем.",[21,25,26],{},"После прохождения этого гайда вы сможете:",[28,29,30,38,44,47],"ul",{},[31,32,33,34],"li",{},"Управлять встроенными и пользовательскими службами через ",[35,36,37],"code",{},"systemctl",[31,39,40,41],{},"Читать и анализировать логи через ",[35,42,43],{},"journalctl",[31,45,46],{},"Создавать, включать и отключать службы",[31,48,49],{},"Диагностировать типичные ошибки запуска",[16,51,53],{"id":52},"требования-подготовка","Требования / Подготовка",[55,56,57,68,78,84],"ol",{},[31,58,59,63,64,67],{},[60,61,62],"strong",{},"Операционная система",": Linux с systemd (проверьте: ",[35,65,66],{},"pidof systemd"," должен вернуть PID).",[31,69,70,73,74,77],{},[60,71,72],{},"Права доступа",": Для управления системными службами требуются права root (используйте ",[35,75,76],{},"sudo",").",[31,79,80,83],{},[60,81,82],{},"Базовые знания",": Умение работать с терминалом, редактировать файлы (nano/vim), понимать структуру каталогов Linux.",[31,85,86,89,90,92,93,92,95,92,98,92,101,104],{},[60,87,88],{},"Рекомендуемые утилиты",": ",[35,91,37],{},", ",[35,94,43],{},[35,96,97],{},"cat",[35,99,100],{},"less",[35,102,103],{},"grep"," (все предустановлены).",[106,107],"hr",{},[16,109,111],{"id":110},"основные-команды-для-управления-службами","Основные команды для управления службами",[21,113,114],{},"Systemctl — основной инструмент взаимодействия с systemd. Вот ключевые операции:",[116,117,119],"h3",{"id":118},"просмотр-списка-служб","Просмотр списка служб",[121,122,127],"pre",{"className":123,"code":124,"language":125,"meta":126,"style":126},"language-bash shiki shiki-themes github-light github-dark","# Все активные службы\nsystemctl list-units --type=service --state=running\n\n# Все службы (включая неактивные)\nsystemctl list-unit-files --type=service\n\n# Фильтрация по имени\nsystemctl list-units --type=service | grep nginx\n","bash","",[35,128,129,138,155,162,168,179,184,190],{"__ignoreMap":126},[130,131,134],"span",{"class":132,"line":133},"line",1,[130,135,137],{"class":136},"sJ8bj","# Все активные службы\n",[130,139,141,144,148,152],{"class":132,"line":140},2,[130,142,37],{"class":143},"sScJk",[130,145,147],{"class":146},"sZZnC"," list-units",[130,149,151],{"class":150},"sj4cs"," --type=service",[130,153,154],{"class":150}," --state=running\n",[130,156,158],{"class":132,"line":157},3,[130,159,161],{"emptyLinePlaceholder":160},true,"\n",[130,163,165],{"class":132,"line":164},4,[130,166,167],{"class":136},"# Все службы (включая неактивные)\n",[130,169,171,173,176],{"class":132,"line":170},5,[130,172,37],{"class":143},[130,174,175],{"class":146}," list-unit-files",[130,177,178],{"class":150}," --type=service\n",[130,180,182],{"class":132,"line":181},6,[130,183,161],{"emptyLinePlaceholder":160},[130,185,187],{"class":132,"line":186},7,[130,188,189],{"class":136},"# Фильтрация по имени\n",[130,191,193,195,197,199,203,206],{"class":132,"line":192},8,[130,194,37],{"class":143},[130,196,147],{"class":146},[130,198,151],{"class":150},[130,200,202],{"class":201},"szBVR"," |",[130,204,205],{"class":143}," grep",[130,207,208],{"class":146}," nginx\n",[116,210,212],{"id":211},"управление-состоянием-службы","Управление состоянием службы",[121,214,216],{"className":123,"code":215,"language":125,"meta":126,"style":126},"# Запуск/остановка/перезагрузка\nsudo systemctl start имя_службы.service\nsudo systemctl stop имя_службы.service\nsudo systemctl restart имя_службы.service\n\n# Перезагрузка с reread конфигов (без остановки)\nsudo systemctl reload имя_службы.service\n\n# Проверка статуса\nsystemctl status имя_службы.service\n",[35,217,218,223,236,247,258,262,267,278,282,288],{"__ignoreMap":126},[130,219,220],{"class":132,"line":133},[130,221,222],{"class":136},"# Запуск/остановка/перезагрузка\n",[130,224,225,227,230,233],{"class":132,"line":140},[130,226,76],{"class":143},[130,228,229],{"class":146}," systemctl",[130,231,232],{"class":146}," start",[130,234,235],{"class":146}," имя_службы.service\n",[130,237,238,240,242,245],{"class":132,"line":157},[130,239,76],{"class":143},[130,241,229],{"class":146},[130,243,244],{"class":146}," stop",[130,246,235],{"class":146},[130,248,249,251,253,256],{"class":132,"line":164},[130,250,76],{"class":143},[130,252,229],{"class":146},[130,254,255],{"class":146}," restart",[130,257,235],{"class":146},[130,259,260],{"class":132,"line":170},[130,261,161],{"emptyLinePlaceholder":160},[130,263,264],{"class":132,"line":181},[130,265,266],{"class":136},"# Перезагрузка с reread конфигов (без остановки)\n",[130,268,269,271,273,276],{"class":132,"line":186},[130,270,76],{"class":143},[130,272,229],{"class":146},[130,274,275],{"class":146}," reload",[130,277,235],{"class":146},[130,279,280],{"class":132,"line":192},[130,281,161],{"emptyLinePlaceholder":160},[130,283,285],{"class":132,"line":284},9,[130,286,287],{"class":136},"# Проверка статуса\n",[130,289,291,293,296],{"class":132,"line":290},10,[130,292,37],{"class":143},[130,294,295],{"class":146}," status",[130,297,235],{"class":146},[299,300,301],"blockquote",{},[21,302,303,304,307,308,311,312,315],{},"💡 Совет: Имя службы можно не указывать с расширением ",[35,305,306],{},".service"," — systemd добавит его автоматически: ",[35,309,310],{},"systemctl status nginx"," вместо ",[35,313,314],{},"nginx.service",".",[106,317],{},[16,319,321],{"id":320},"просмотр-логов-служб-journalctl","Просмотр логов служб (journalctl)",[21,323,324,325,315],{},"Systemd хранит логи в бинарном журнале, доступном через ",[35,326,43],{},[116,328,330],{"id":329},"основые-сценарии-использования","Основые сценарии использования",[121,332,334],{"className":123,"code":333,"language":125,"meta":126,"style":126},"# Логи конкретной службы\nsudo journalctl -u nginx.service\n\n# Логи за последний час\nsudo journalctl -u nginx.service --since \"1 hour ago\"\n\n# Отслеживание в реальном времени (как tail -f)\nsudo journalctl -u nginx.service -f\n\n# Фильтрация по приоритету (err, warning, info)\nsudo journalctl -u nginx.service -p err\n\n# Логи с момента последней перезагрузки\nsudo journalctl -u nginx.service -b\n\n# Очистка журнала (если занял много места)\nsudo journalctl --vacuum-time=3d  # оставить логи за 3 дня\n",[35,335,336,341,354,358,363,380,384,389,402,406,411,428,433,439,453,458,464],{"__ignoreMap":126},[130,337,338],{"class":132,"line":133},[130,339,340],{"class":136},"# Логи конкретной службы\n",[130,342,343,345,348,351],{"class":132,"line":140},[130,344,76],{"class":143},[130,346,347],{"class":146}," journalctl",[130,349,350],{"class":150}," -u",[130,352,353],{"class":146}," nginx.service\n",[130,355,356],{"class":132,"line":157},[130,357,161],{"emptyLinePlaceholder":160},[130,359,360],{"class":132,"line":164},[130,361,362],{"class":136},"# Логи за последний час\n",[130,364,365,367,369,371,374,377],{"class":132,"line":170},[130,366,76],{"class":143},[130,368,347],{"class":146},[130,370,350],{"class":150},[130,372,373],{"class":146}," nginx.service",[130,375,376],{"class":150}," --since",[130,378,379],{"class":146}," \"1 hour ago\"\n",[130,381,382],{"class":132,"line":181},[130,383,161],{"emptyLinePlaceholder":160},[130,385,386],{"class":132,"line":186},[130,387,388],{"class":136},"# Отслеживание в реальном времени (как tail -f)\n",[130,390,391,393,395,397,399],{"class":132,"line":192},[130,392,76],{"class":143},[130,394,347],{"class":146},[130,396,350],{"class":150},[130,398,373],{"class":146},[130,400,401],{"class":150}," -f\n",[130,403,404],{"class":132,"line":284},[130,405,161],{"emptyLinePlaceholder":160},[130,407,408],{"class":132,"line":290},[130,409,410],{"class":136},"# Фильтрация по приоритету (err, warning, info)\n",[130,412,414,416,418,420,422,425],{"class":132,"line":413},11,[130,415,76],{"class":143},[130,417,347],{"class":146},[130,419,350],{"class":150},[130,421,373],{"class":146},[130,423,424],{"class":150}," -p",[130,426,427],{"class":146}," err\n",[130,429,431],{"class":132,"line":430},12,[130,432,161],{"emptyLinePlaceholder":160},[130,434,436],{"class":132,"line":435},13,[130,437,438],{"class":136},"# Логи с момента последней перезагрузки\n",[130,440,442,444,446,448,450],{"class":132,"line":441},14,[130,443,76],{"class":143},[130,445,347],{"class":146},[130,447,350],{"class":150},[130,449,373],{"class":146},[130,451,452],{"class":150}," -b\n",[130,454,456],{"class":132,"line":455},15,[130,457,161],{"emptyLinePlaceholder":160},[130,459,461],{"class":132,"line":460},16,[130,462,463],{"class":136},"# Очистка журнала (если занял много места)\n",[130,465,467,469,471,474],{"class":132,"line":466},17,[130,468,76],{"class":143},[130,470,347],{"class":146},[130,472,473],{"class":150}," --vacuum-time=3d",[130,475,476],{"class":136},"  # оставить логи за 3 дня\n",[116,478,480],{"id":479},"поиск-проблем","Поиск проблем",[121,482,484],{"className":123,"code":483,"language":125,"meta":126,"style":126},"# Найти ошибки в логах всех служб\nsudo journalctl -p err --since today\n\n# Показать последние 50 строк лога nginx\nsudo journalctl -u nginx -n 50\n\n# Экспорт логов в файл\nsudo journalctl -u nginx > nginx_logs.txt\n",[35,485,486,491,507,511,516,533,537,542],{"__ignoreMap":126},[130,487,488],{"class":132,"line":133},[130,489,490],{"class":136},"# Найти ошибки в логах всех служб\n",[130,492,493,495,497,499,502,504],{"class":132,"line":140},[130,494,76],{"class":143},[130,496,347],{"class":146},[130,498,424],{"class":150},[130,500,501],{"class":146}," err",[130,503,376],{"class":150},[130,505,506],{"class":146}," today\n",[130,508,509],{"class":132,"line":157},[130,510,161],{"emptyLinePlaceholder":160},[130,512,513],{"class":132,"line":164},[130,514,515],{"class":136},"# Показать последние 50 строк лога nginx\n",[130,517,518,520,522,524,527,530],{"class":132,"line":170},[130,519,76],{"class":143},[130,521,347],{"class":146},[130,523,350],{"class":150},[130,525,526],{"class":146}," nginx",[130,528,529],{"class":150}," -n",[130,531,532],{"class":150}," 50\n",[130,534,535],{"class":132,"line":181},[130,536,161],{"emptyLinePlaceholder":160},[130,538,539],{"class":132,"line":186},[130,540,541],{"class":136},"# Экспорт логов в файл\n",[130,543,544,546,548,550,552,555],{"class":132,"line":192},[130,545,76],{"class":143},[130,547,347],{"class":146},[130,549,350],{"class":150},[130,551,526],{"class":146},[130,553,554],{"class":201}," >",[130,556,557],{"class":146}," nginx_logs.txt\n",[106,559],{},[561,562],"in-article-ad",{},[16,564,566],{"id":565},"создание-собственной-службы-systemd","Создание собственной службы systemd",[21,568,569],{},"Давайте создадим службу для запуска пользовательского скрипта.",[116,571,573],{"id":572},"шаг-1-подготовьте-скрипт","Шаг 1: Подготовьте скрипт",[21,575,576,577],{},"Создайте скрипт, который будет выполняться. Пример: ",[35,578,579],{},"/opt/myscript.sh",[121,581,583],{"className":123,"code":582,"language":125,"meta":126,"style":126},"#!/bin/bash\n# Пример скрипта, который пишет в лог каждую минуту\nLOG_FILE=\"/var/log/myscript.log\"\necho \"$(date): myscript запущен\" >> $LOG_FILE\n",[35,584,585,590,595,607],{"__ignoreMap":126},[130,586,587],{"class":132,"line":133},[130,588,589],{"class":136},"#!/bin/bash\n",[130,591,592],{"class":132,"line":140},[130,593,594],{"class":136},"# Пример скрипта, который пишет в лог каждую минуту\n",[130,596,597,601,604],{"class":132,"line":157},[130,598,600],{"class":599},"sVt8B","LOG_FILE",[130,602,603],{"class":201},"=",[130,605,606],{"class":146},"\"/var/log/myscript.log\"\n",[130,608,609,612,615,618,621,624],{"class":132,"line":164},[130,610,611],{"class":150},"echo",[130,613,614],{"class":146}," \"$(",[130,616,617],{"class":143},"date",[130,619,620],{"class":146},"): myscript запущен\"",[130,622,623],{"class":201}," >>",[130,625,626],{"class":599}," $LOG_FILE\n",[21,628,629],{},"Дайте права на выполнение:",[121,631,633],{"className":123,"code":632,"language":125,"meta":126,"style":126},"sudo chmod +x /opt/myscript.sh\n",[35,634,635],{"__ignoreMap":126},[130,636,637,639,642,645],{"class":132,"line":133},[130,638,76],{"class":143},[130,640,641],{"class":146}," chmod",[130,643,644],{"class":146}," +x",[130,646,647],{"class":146}," /opt/myscript.sh\n",[116,649,651],{"id":650},"шаг-2-создайте-unit-файл","Шаг 2: Создайте unit-файл",[21,653,654,655,658],{},"Создайте файл ",[35,656,657],{},"/etc/systemd/system/myscript.service",":",[121,660,664],{"className":661,"code":662,"language":663,"meta":126,"style":126},"language-ini shiki shiki-themes github-light github-dark","[Unit]\nDescription=Моя пользовательская служба\nAfter=network.target\n\n[Service]\nType=simple\nExecStart=/opt/myscript.sh\nRestart=on-failure\nRestartSec=10\nUser=root\nGroup=root\n\n[Install]\nWantedBy=multi-user.target\n","ini",[35,665,666,671,676,681,685,690,695,700,705,710,715,720,724,729],{"__ignoreMap":126},[130,667,668],{"class":132,"line":133},[130,669,670],{},"[Unit]\n",[130,672,673],{"class":132,"line":140},[130,674,675],{},"Description=Моя пользовательская служба\n",[130,677,678],{"class":132,"line":157},[130,679,680],{},"After=network.target\n",[130,682,683],{"class":132,"line":164},[130,684,161],{"emptyLinePlaceholder":160},[130,686,687],{"class":132,"line":170},[130,688,689],{},"[Service]\n",[130,691,692],{"class":132,"line":181},[130,693,694],{},"Type=simple\n",[130,696,697],{"class":132,"line":186},[130,698,699],{},"ExecStart=/opt/myscript.sh\n",[130,701,702],{"class":132,"line":192},[130,703,704],{},"Restart=on-failure\n",[130,706,707],{"class":132,"line":284},[130,708,709],{},"RestartSec=10\n",[130,711,712],{"class":132,"line":290},[130,713,714],{},"User=root\n",[130,716,717],{"class":132,"line":413},[130,718,719],{},"Group=root\n",[130,721,722],{"class":132,"line":430},[130,723,161],{"emptyLinePlaceholder":160},[130,725,726],{"class":132,"line":435},[130,727,728],{},"[Install]\n",[130,730,731],{"class":132,"line":441},[130,732,733],{},"WantedBy=multi-user.target\n",[21,735,736],{},[60,737,738],{},"Объяснение параметров:",[28,740,741,747,753,759,765],{},[31,742,743,746],{},[35,744,745],{},"After=network.target"," — запуск после сети.",[31,748,749,752],{},[35,750,751],{},"Type=simple"," (по умолчанию) — процесс запускается напрямую.",[31,754,755,758],{},[35,756,757],{},"Restart=on-failure"," — перезапускать при падении.",[31,760,761,764],{},[35,762,763],{},"RestartSec=10"," — ждать 10 секунд перед перезапуском.",[31,766,767,770],{},[35,768,769],{},"WantedBy=multi-user.target"," — цель для автозагрузки (многопользовательский режим).",[116,772,774],{"id":773},"шаг-3-активируйте-службу","Шаг 3: Активируйте службу",[121,776,778],{"className":123,"code":777,"language":125,"meta":126,"style":126},"# Перезагрузить конфигурацию systemd\nsudo systemctl daemon-reload\n\n# Запустить сейчас\nsudo systemctl start myscript.service\n\n# Включить на автозагрузку\nsudo systemctl enable myscript.service\n\n# Проверить статус\nsystemctl status myscript.service\n",[35,779,780,785,794,798,803,814,818,823,834,838,843],{"__ignoreMap":126},[130,781,782],{"class":132,"line":133},[130,783,784],{"class":136},"# Перезагрузить конфигурацию systemd\n",[130,786,787,789,791],{"class":132,"line":140},[130,788,76],{"class":143},[130,790,229],{"class":146},[130,792,793],{"class":146}," daemon-reload\n",[130,795,796],{"class":132,"line":157},[130,797,161],{"emptyLinePlaceholder":160},[130,799,800],{"class":132,"line":164},[130,801,802],{"class":136},"# Запустить сейчас\n",[130,804,805,807,809,811],{"class":132,"line":170},[130,806,76],{"class":143},[130,808,229],{"class":146},[130,810,232],{"class":146},[130,812,813],{"class":146}," myscript.service\n",[130,815,816],{"class":132,"line":181},[130,817,161],{"emptyLinePlaceholder":160},[130,819,820],{"class":132,"line":186},[130,821,822],{"class":136},"# Включить на автозагрузку\n",[130,824,825,827,829,832],{"class":132,"line":192},[130,826,76],{"class":143},[130,828,229],{"class":146},[130,830,831],{"class":146}," enable",[130,833,813],{"class":146},[130,835,836],{"class":132,"line":284},[130,837,161],{"emptyLinePlaceholder":160},[130,839,840],{"class":132,"line":290},[130,841,842],{"class":136},"# Проверить статус\n",[130,844,845,847,849],{"class":132,"line":413},[130,846,37],{"class":143},[130,848,295],{"class":146},[130,850,813],{"class":146},[116,852,854],{"id":853},"шаг-4-проверьте-работу","Шаг 4: Проверьте работу",[121,856,858],{"className":123,"code":857,"language":125,"meta":126,"style":126},"# Логи службы\nsudo journalctl -u myscript.service -f\n\n# Файл, который создаёт скрипт\nsudo cat /var/log/myscript.log\n",[35,859,860,865,878,882,887],{"__ignoreMap":126},[130,861,862],{"class":132,"line":133},[130,863,864],{"class":136},"# Логи службы\n",[130,866,867,869,871,873,876],{"class":132,"line":140},[130,868,76],{"class":143},[130,870,347],{"class":146},[130,872,350],{"class":150},[130,874,875],{"class":146}," myscript.service",[130,877,401],{"class":150},[130,879,880],{"class":132,"line":157},[130,881,161],{"emptyLinePlaceholder":160},[130,883,884],{"class":132,"line":164},[130,885,886],{"class":136},"# Файл, который создаёт скрипт\n",[130,888,889,891,894],{"class":132,"line":170},[130,890,76],{"class":143},[130,892,893],{"class":146}," cat",[130,895,896],{"class":146}," /var/log/myscript.log\n",[106,898],{},[16,900,902],{"id":901},"управление-автозагрузкой-и-зависимостями","Управление автозагрузкой и зависимостями",[116,904,906],{"id":905},"цели-targets-systemd","Цели (targets) systemd",[21,908,909],{},"Аналог runlevels в SysVinit:",[28,911,912,918,924],{},[31,913,914,917],{},[35,915,916],{},"multi-user.target"," — многопользовательский режим (без GUI).",[31,919,920,923],{},[35,921,922],{},"graphical.target"," — с графическим интерфейсом.",[31,925,926,929],{},[35,927,928],{},"rescue.target"," — аварийный режим.",[21,931,932],{},"Узнайте текущую цель:",[121,934,936],{"className":123,"code":935,"language":125,"meta":126,"style":126},"systemctl get-default\n",[35,937,938],{"__ignoreMap":126},[130,939,940,942],{"class":132,"line":133},[130,941,37],{"class":143},[130,943,944],{"class":146}," get-default\n",[21,946,947],{},"Измените цель (например, переключиться в графический режим):",[121,949,951],{"className":123,"code":950,"language":125,"meta":126,"style":126},"sudo systemctl set-default graphical.target\n",[35,952,953],{"__ignoreMap":126},[130,954,955,957,959,962],{"class":132,"line":133},[130,956,76],{"class":143},[130,958,229],{"class":146},[130,960,961],{"class":146}," set-default",[130,963,964],{"class":146}," graphical.target\n",[116,966,968],{"id":967},"зависимости-между-службами","Зависимости между службами",[21,970,971,972,975],{},"В секции ",[35,973,974],{},"[Unit]"," можно указать:",[121,977,979],{"className":661,"code":978,"language":663,"meta":126,"style":126},"Requires=nginx.service    # Требует запуска nginx\nAfter=nginx.service       # Запускать после nginx\nWants=nginx.service       # Желательно запустить nginx (необязательно)\n",[35,980,981,986,991],{"__ignoreMap":126},[130,982,983],{"class":132,"line":133},[130,984,985],{},"Requires=nginx.service    # Требует запуска nginx\n",[130,987,988],{"class":132,"line":140},[130,989,990],{},"After=nginx.service       # Запускать после nginx\n",[130,992,993],{"class":132,"line":157},[130,994,995],{},"Wants=nginx.service       # Желательно запустить nginx (необязательно)\n",[21,997,998],{},"Пример для веб-приложения, зависящего от базы данных:",[121,1000,1002],{"className":661,"code":1001,"language":663,"meta":126,"style":126},"[Unit]\nDescription=My Web App\nRequires=postgresql.service\nAfter=postgresql.service\n",[35,1003,1004,1008,1013,1018],{"__ignoreMap":126},[130,1005,1006],{"class":132,"line":133},[130,1007,670],{},[130,1009,1010],{"class":132,"line":140},[130,1011,1012],{},"Description=My Web App\n",[130,1014,1015],{"class":132,"line":157},[130,1016,1017],{},"Requires=postgresql.service\n",[130,1019,1020],{"class":132,"line":164},[130,1021,1022],{},"After=postgresql.service\n",[106,1024],{},[16,1026,1028],{"id":1027},"проверка-результата","Проверка результата",[55,1030,1031,1043,1055,1071,1080],{},[31,1032,1033,89,1036,1039,1040,315],{},[60,1034,1035],{},"Статус службы",[35,1037,1038],{},"systemctl status имя_службы"," должен показывать ",[35,1041,1042],{},"active (running)",[31,1044,1045,89,1048,1051,1052,315],{},[60,1046,1047],{},"Автозагрузка",[35,1049,1050],{},"systemctl is-enabled имя_службы"," → ",[35,1053,1054],{},"enabled",[31,1056,1057,89,1060,1063,1064,1067,1068,315],{},[60,1058,1059],{},"Логи",[35,1061,1062],{},"journalctl -u имя_службы"," не содержит ошибок ",[35,1065,1066],{},"Failed"," или ",[35,1069,1070],{},"timeout",[31,1072,1073,89,1076,1079],{},[60,1074,1075],{},"Процесс",[35,1077,1078],{},"ps aux | grep имя_скрипта"," показывает запущенный процесс.",[31,1081,1082,1085,1086,77],{},[60,1083,1084],{},"Функциональность",": Если служба предоставляет сервис (веб-сервер, БД), проверьте его доступность (например, ",[35,1087,1088],{},"curl http://localhost",[106,1090],{},[16,1092,1094],{"id":1093},"возможные-проблемы","Возможные проблемы",[116,1096,1098,1099,1102],{"id":1097},"_1-служба-не-запускается-systemctl-start-молчалив","1. Служба не запускается: ",[35,1100,1101],{},"systemctl start"," молчалив",[28,1104,1105,1111],{},[31,1106,1107,1110],{},[60,1108,1109],{},"Причина",": Ошибка в unit-файле или скрипте.",[31,1112,1113,1116,1117,1120,1121,1124,1125],{},[60,1114,1115],{},"Решение",": Проверьте ",[35,1118,1119],{},"journalctl -u служба -b"," и ",[35,1122,1123],{},"systemctl status служба",". Частые ошибки:\n",[28,1126,1127,1134,1140],{},[31,1128,1129,1130,1133],{},"Неправильный путь в ",[35,1131,1132],{},"ExecStart"," (используйте абсолютный путь).",[31,1135,1136,1137,77],{},"Нет прав на скрипт (",[35,1138,1139],{},"chmod +x",[31,1141,1142],{},"Порт уже занят (для сетевых служб).",[116,1144,1146],{"id":1145},"_2-служба-запускается-но-сразу-падает","2. Служба запускается, но сразу падает",[28,1148,1149,1154],{},[31,1150,1151,1153],{},[60,1152,1109],{},": Скрипт завершается с ошибкой.",[31,1155,1156,1158,1159,1162,1163,1166],{},[60,1157,1115],{},": Добавьте ",[35,1160,1161],{},"Type=oneshot"," + ",[35,1164,1165],{},"RemainAfterExit=yes"," для одноразовых задач, или убедитесь, что скрипт не завершается (демонизируйте его). Проверьте переменные окружения — systemd может не передавать PATH.",[116,1168,1170],{"id":1169},"_3-ошибка-permissions-при-создании-unit-файла","3. Ошибка permissions при создании unit-файла",[28,1172,1173,1178],{},[31,1174,1175,1177],{},[60,1176,1109],{},": Файл создан не от root или с неправильными правами.",[31,1179,1180,1182,1183],{},[60,1181,1115],{},":\n",[121,1184,1186],{"className":123,"code":1185,"language":125,"meta":126,"style":126},"sudo chown root:root /etc/systemd/system/*.service\nsudo chmod 644 /etc/systemd/system/*.service\n",[35,1187,1188,1207],{"__ignoreMap":126},[130,1189,1190,1192,1195,1198,1201,1204],{"class":132,"line":133},[130,1191,76],{"class":143},[130,1193,1194],{"class":146}," chown",[130,1196,1197],{"class":146}," root:root",[130,1199,1200],{"class":146}," /etc/systemd/system/",[130,1202,1203],{"class":150},"*",[130,1205,1206],{"class":146},".service\n",[130,1208,1209,1211,1213,1216,1218,1220],{"class":132,"line":140},[130,1210,76],{"class":143},[130,1212,641],{"class":146},[130,1214,1215],{"class":150}," 644",[130,1217,1200],{"class":146},[130,1219,1203],{"class":150},[130,1221,1206],{"class":146},[116,1223,1225],{"id":1224},"_4-логи-journalctl-пустые-для-службы","4. Логи journalctl пустые для службы",[28,1227,1228,1237],{},[31,1229,1230,1232,1233,1236],{},[60,1231,1109],{},": Служба не пишет в stdout/stderr, или используется ",[35,1234,1235],{},"syslog"," вместо journald.",[31,1238,1239,1241,1242,1245],{},[60,1240,1115],{},": Убедитесь, что скрипт выводит в консоль (echo, print). Если используется внешний логгер (например, nginx пишет в ",[35,1243,1244],{},"/var/log/nginx","), смотрите его логи напрямую.",[116,1247,1249],{"id":1248},"_5-зависимости-не-срабатывают","5. Зависимости не срабатывают",[28,1251,1252,1264],{},[31,1253,1254,1256,1257,1260,1261,315],{},[60,1255,1109],{},": Некорректный target в ",[35,1258,1259],{},"WantedBy","/",[35,1262,1263],{},"Requires",[31,1265,1266,1268,1269,1272,1273,1275,1276,1278],{},[60,1267,1115],{},": Проверьте существование цели: ",[35,1270,1271],{},"systemctl list-units --type=target",". Используйте ",[35,1274,916],{}," для фоновых служб, ",[35,1277,922],{}," для GUI-приложений.",[116,1280,1282],{"id":1281},"_6-служба-не-включается-на-автозагрузку","6. Служба не включается на автозагрузку",[28,1284,1285,1296],{},[31,1286,1287,1289,1290,1293,1294,315],{},[60,1288,1109],{},": Отсутствует секция ",[35,1291,1292],{},"[Install]"," с ",[35,1295,1259],{},[31,1297,1298,1300,1301,1314,1315,315],{},[60,1299,1115],{},": Добавьте в unit-файл:\n",[121,1302,1304],{"className":661,"code":1303,"language":663,"meta":126,"style":126},"[Install]\nWantedBy=multi-user.target\n",[35,1305,1306,1310],{"__ignoreMap":126},[130,1307,1308],{"class":132,"line":133},[130,1309,728],{},[130,1311,1312],{"class":132,"line":140},[130,1313,733],{},"\nЗатем ",[35,1316,1317],{},"sudo systemctl daemon-reload && sudo systemctl enable служба",[106,1319],{},[16,1321,1323],{"id":1322},"дополнительные-ресурсы","Дополнительные ресурсы",[28,1325,1326,1343,1354,1363],{},[31,1327,1328,89,1331,92,1334,92,1337,92,1340,315],{},[60,1329,1330],{},"Man-страницы",[35,1332,1333],{},"man systemd",[35,1335,1336],{},"man systemctl",[35,1338,1339],{},"man systemd.unit",[35,1341,1342],{},"man journalctl",[31,1344,1345,89,1348],{},[60,1346,1347],{},"Официальная документация",[1349,1350,1351],"a",{"href":1351,"rel":1352},"https://www.freedesktop.org/wiki/Software/systemd/",[1353],"nofollow",[31,1355,1356,89,1359,1362],{},[60,1357,1358],{},"Диагностика",[35,1360,1361],{},"sudo systemd-analyze blame"," — посмотреть, какие службы грузятся долго.",[31,1364,1365,89,1368,1371,1372,1375,1376,1379],{},[60,1366,1367],{},"Редактирование существующих служб",[35,1369,1370],{},"/lib/systemd/system/"," (пакетные) vs ",[35,1373,1374],{},"/etc/systemd/system/"," (локальные). Изменяйте только в ",[35,1377,1378],{},"/etc/",", чтобы обновления пакетов не затерли настройки.",[21,1381,1382],{},"Systemd — мощный инструмент. Экспериментируйте с тестовыми службами, изучайте логи и gradually усложняйте конфигурации. Удачи в администрировании!",[1384,1385,1386],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html 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 .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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":126,"searchDepth":140,"depth":140,"links":1388},[1389,1390,1391,1395,1399,1405,1409,1410,1419],{"id":18,"depth":140,"text":19},{"id":52,"depth":140,"text":53},{"id":110,"depth":140,"text":111,"children":1392},[1393,1394],{"id":118,"depth":157,"text":119},{"id":211,"depth":157,"text":212},{"id":320,"depth":140,"text":321,"children":1396},[1397,1398],{"id":329,"depth":157,"text":330},{"id":479,"depth":157,"text":480},{"id":565,"depth":140,"text":566,"children":1400},[1401,1402,1403,1404],{"id":572,"depth":157,"text":573},{"id":650,"depth":157,"text":651},{"id":773,"depth":157,"text":774},{"id":853,"depth":157,"text":854},{"id":901,"depth":140,"text":902,"children":1406},[1407,1408],{"id":905,"depth":157,"text":906},{"id":967,"depth":157,"text":968},{"id":1027,"depth":140,"text":1028},{"id":1093,"depth":140,"text":1094,"children":1411},[1412,1414,1415,1416,1417,1418],{"id":1097,"depth":157,"text":1413},"1. Служба не запускается: systemctl start молчалив",{"id":1145,"depth":157,"text":1146},{"id":1169,"depth":157,"text":1170},{"id":1224,"depth":157,"text":1225},{"id":1248,"depth":157,"text":1249},{"id":1281,"depth":157,"text":1282},{"id":1322,"depth":140,"text":1323},null,"2026-02-17 12:20:52","Подробное руководство по systemd services: от базовых команд до создания собственных служб. Управляйте демонами Linux как профессионал за 15 минут.","medium",false,"15-30 мин","md",[1428,1431,1434,1437],{"answer":1429,"question":1430},"Systemd service — это unit-файл, описывающий процесс (демон), который systemd управляет: запускает, останавливает, отслеживает логи и обеспечивает автозагрузку. Это стандарт для современных Linux-дистрибутивов.","Что такое systemd service и зачем он нужен?",{"answer":1432,"question":1433},"Создайте файл `/etc/systemd/system/ваша_служба.service` с корректными секциями [Unit], [Service] и [Install], затем выполните `systemctl daemon-reload` и `systemctl enable --now ваша_служба`.","Как создать службу systemd с нуля?",{"answer":1435,"question":1436},"Чаще всего причина в отсутствии `WantedBy=multi-user.target` в секции [Install] или неправильных правах на unit-файл (должен быть 644). Проверьте `systemctl status служба` и `journalctl -u служба`.","Почему служба не запускается после перезагрузки?",{"answer":1438,"question":1439},"Используйте `journalctl -u имя_службы.service -f` для реального времени или `journalctl -u имя_службы --since \"1 hour ago\"` для истории. Для старых syslog-логов проверьте `/var/log/syslog` или `/var/log/messages`.","Как посмотреть логи конкретной службы?",[1441,1444,1447,1450,1453],{"name":1442,"text":1443},"Изучите базовые команды systemctl","Ознакомьтесь с основными командами: `systemctl list-units --type=service` (список служб), `systemctl status nginx` (статус), `systemctl start/stop/restart nginx` (управление).",{"name":1445,"text":1446},"Настройте автозагрузку служб","Включите службу на автозагрузку: `systemctl enable nginx`. Отключите: `systemctl disable nginx`. Проверьте включённые: `systemctl is-enabled nginx`.",{"name":1448,"text":1449},"Используйте journalctl для диагностики","Анализируйте логи служб: `journalctl -u nginx --since today` (логи nginx за сегодня), `journalctl -f` (отслеживание в реальном времени). Фильтруйте по приоритету: `journalctl -p err`.",{"name":1451,"text":1452},"Создайте простую пользовательскую службу","Создайте unit-файл в `/etc/systemd/system/` с минимальными параметрами: [Unit] (Description), [Service] (ExecStart, Restart), [Install] (WantedBy). Пример для скрипта /opt/myscript.sh.",{"name":1454,"text":1455},"Проверьте и перезагрузите конфигурацию","После создания/изменения unit-файлов выполните `systemctl daemon-reload`. Затем протестируйте: `systemctl start моя_служба`, `systemctl status моя_служба`.","PT20M",[1458,1459,1460,1461,1462,1463,1464,1465,1466,1467],"systemd services linux","управление службами systemd","systemctl команды","создание службы systemd","unit файлы systemd","journalctl логи","демоны linux systemd","автозагрузка служб systemd","systemd tutorial русский","systemd service failed","ru_RU",{},"/guides/linux/systemd-services-explained","linux",[1473,1474,1475],"/guides/linux/systemd-timers-explained","/guides/linux/journalctl-usage","/guides/linux/linux-permissions-explained","Гайды Linux",{"title":5,"description":1422},"guides/linux/systemd-services-explained","В этом гайде вы изучите архитектуру systemd, научитесь управлять службами через systemctl, создавать unit-файлы и диагностировать проблемы. Практические примеры для Ubuntu, CentOS и Fedora.",[1481,1471,1482,1483,1484,37,1485],"systemd","admin","services","init","unit files","guide","1cCOOn8IUZbtUUIhoQ6Bvnrpa3JQaCtQyAuFh-OHjYk",{"data":1489,"body":1490},{},{"type":1491,"children":1492},"root",[1493],{"type":1494,"tag":21,"props":1495,"children":1496},"element",{},[1497],{"type":1498,"value":1429},"text",{"data":1500,"body":1501},{},{"type":1491,"children":1502},[1503],{"type":1494,"tag":21,"props":1504,"children":1505},{},[1506,1507,1513,1515,1520,1521,1526,1527,1532,1534,1540,1541,1547],{"type":1498,"value":654},{"type":1494,"tag":35,"props":1508,"children":1510},{"className":1509},[],[1511],{"type":1498,"value":1512},"/etc/systemd/system/ваша_служба.service",{"type":1498,"value":1514}," с корректными секциями ",{"type":1494,"tag":130,"props":1516,"children":1517},{},[1518],{"type":1498,"value":1519},"Unit",{"type":1498,"value":92},{"type":1494,"tag":130,"props":1522,"children":1523},{},[1524],{"type":1498,"value":1525},"Service",{"type":1498,"value":1120},{"type":1494,"tag":130,"props":1528,"children":1529},{},[1530],{"type":1498,"value":1531},"Install",{"type":1498,"value":1533},", затем выполните ",{"type":1494,"tag":35,"props":1535,"children":1537},{"className":1536},[],[1538],{"type":1498,"value":1539},"systemctl daemon-reload",{"type":1498,"value":1120},{"type":1494,"tag":35,"props":1542,"children":1544},{"className":1543},[],[1545],{"type":1498,"value":1546},"systemctl enable --now ваша_служба",{"type":1498,"value":315},{"data":1549,"body":1550},{},{"type":1491,"children":1551},[1552],{"type":1494,"tag":21,"props":1553,"children":1554},{},[1555,1557,1562,1564,1568,1570,1575,1576,1582],{"type":1498,"value":1556},"Чаще всего причина в отсутствии ",{"type":1494,"tag":35,"props":1558,"children":1560},{"className":1559},[],[1561],{"type":1498,"value":769},{"type":1498,"value":1563}," в секции ",{"type":1494,"tag":130,"props":1565,"children":1566},{},[1567],{"type":1498,"value":1531},{"type":1498,"value":1569}," или неправильных правах на unit-файл (должен быть 644). Проверьте ",{"type":1494,"tag":35,"props":1571,"children":1573},{"className":1572},[],[1574],{"type":1498,"value":1123},{"type":1498,"value":1120},{"type":1494,"tag":35,"props":1577,"children":1579},{"className":1578},[],[1580],{"type":1498,"value":1581},"journalctl -u служба",{"type":1498,"value":315},{"data":1584,"body":1585},{},{"type":1491,"children":1586},[1587],{"type":1494,"tag":21,"props":1588,"children":1589},{},[1590,1592,1598,1600,1606,1608,1614,1615,1621],{"type":1498,"value":1591},"Используйте ",{"type":1494,"tag":35,"props":1593,"children":1595},{"className":1594},[],[1596],{"type":1498,"value":1597},"journalctl -u имя_службы.service -f",{"type":1498,"value":1599}," для реального времени или ",{"type":1494,"tag":35,"props":1601,"children":1603},{"className":1602},[],[1604],{"type":1498,"value":1605},"journalctl -u имя_службы --since \"1 hour ago\"",{"type":1498,"value":1607}," для истории. Для старых syslog-логов проверьте ",{"type":1494,"tag":35,"props":1609,"children":1611},{"className":1610},[],[1612],{"type":1498,"value":1613},"/var/log/syslog",{"type":1498,"value":1067},{"type":1494,"tag":35,"props":1616,"children":1618},{"className":1617},[],[1619],{"type":1498,"value":1620},"/var/log/messages",{"type":1498,"value":315},{"data":1623,"body":1624},{},{"type":1491,"children":1625},[1626],{"type":1494,"tag":21,"props":1627,"children":1628},{},[1629,1631,1637,1639,1644,1646,1652],{"type":1498,"value":1630},"Ознакомьтесь с основными командами: ",{"type":1494,"tag":35,"props":1632,"children":1634},{"className":1633},[],[1635],{"type":1498,"value":1636},"systemctl list-units --type=service",{"type":1498,"value":1638}," (список служб), ",{"type":1494,"tag":35,"props":1640,"children":1642},{"className":1641},[],[1643],{"type":1498,"value":310},{"type":1498,"value":1645}," (статус), ",{"type":1494,"tag":35,"props":1647,"children":1649},{"className":1648},[],[1650],{"type":1498,"value":1651},"systemctl start/stop/restart nginx",{"type":1498,"value":1653}," (управление).",{"data":1655,"body":1656},{},{"type":1491,"children":1657},[1658],{"type":1494,"tag":21,"props":1659,"children":1660},{},[1661,1663,1669,1671,1677,1679,1685],{"type":1498,"value":1662},"Включите службу на автозагрузку: ",{"type":1494,"tag":35,"props":1664,"children":1666},{"className":1665},[],[1667],{"type":1498,"value":1668},"systemctl enable nginx",{"type":1498,"value":1670},". Отключите: ",{"type":1494,"tag":35,"props":1672,"children":1674},{"className":1673},[],[1675],{"type":1498,"value":1676},"systemctl disable nginx",{"type":1498,"value":1678},". Проверьте включённые: ",{"type":1494,"tag":35,"props":1680,"children":1682},{"className":1681},[],[1683],{"type":1498,"value":1684},"systemctl is-enabled nginx",{"type":1498,"value":315},{"data":1687,"body":1688},{},{"type":1491,"children":1689},[1690],{"type":1494,"tag":21,"props":1691,"children":1692},{},[1693,1695,1701,1703,1709,1711,1717],{"type":1498,"value":1694},"Анализируйте логи служб: ",{"type":1494,"tag":35,"props":1696,"children":1698},{"className":1697},[],[1699],{"type":1498,"value":1700},"journalctl -u nginx --since today",{"type":1498,"value":1702}," (логи nginx за сегодня), ",{"type":1494,"tag":35,"props":1704,"children":1706},{"className":1705},[],[1707],{"type":1498,"value":1708},"journalctl -f",{"type":1498,"value":1710}," (отслеживание в реальном времени). Фильтруйте по приоритету: ",{"type":1494,"tag":35,"props":1712,"children":1714},{"className":1713},[],[1715],{"type":1498,"value":1716},"journalctl -p err",{"type":1498,"value":315},{"data":1719,"body":1720},{},{"type":1491,"children":1721},[1722],{"type":1494,"tag":21,"props":1723,"children":1724},{},[1725,1727,1732,1734,1738,1740,1744,1746,1750],{"type":1498,"value":1726},"Создайте unit-файл в ",{"type":1494,"tag":35,"props":1728,"children":1730},{"className":1729},[],[1731],{"type":1498,"value":1374},{"type":1498,"value":1733}," с минимальными параметрами: ",{"type":1494,"tag":130,"props":1735,"children":1736},{},[1737],{"type":1498,"value":1519},{"type":1498,"value":1739}," (Description), ",{"type":1494,"tag":130,"props":1741,"children":1742},{},[1743],{"type":1498,"value":1525},{"type":1498,"value":1745}," (ExecStart, Restart), ",{"type":1494,"tag":130,"props":1747,"children":1748},{},[1749],{"type":1498,"value":1531},{"type":1498,"value":1751}," (WantedBy). Пример для скрипта /opt/myscript.sh.",{"data":1753,"body":1754},{},{"type":1491,"children":1755},[1756],{"type":1494,"tag":21,"props":1757,"children":1758},{},[1759,1761,1766,1768,1774,1775,1781],{"type":1498,"value":1760},"После создания/изменения unit-файлов выполните ",{"type":1494,"tag":35,"props":1762,"children":1764},{"className":1763},[],[1765],{"type":1498,"value":1539},{"type":1498,"value":1767},". Затем протестируйте: ",{"type":1494,"tag":35,"props":1769,"children":1771},{"className":1770},[],[1772],{"type":1498,"value":1773},"systemctl start моя_служба",{"type":1498,"value":92},{"type":1494,"tag":35,"props":1776,"children":1778},{"className":1777},[],[1779],{"type":1498,"value":1780},"systemctl status моя_служба",{"type":1498,"value":315},[1783,3565],{"id":1784,"title":1785,"appliesTo":1786,"author":11,"body":1790,"canonical":1420,"code":1420,"createdAt":3509,"description":3510,"difficulty":1423,"draft":1424,"estimatedTime":3511,"extension":1426,"faq":3512,"howToSteps":3525,"howToTotalTime":1456,"image":1420,"keywords":3544,"locale":1468,"meta":3553,"navigation":160,"path":1474,"platform":1471,"related":3554,"section":1476,"seo":3558,"severity":1420,"stem":3559,"summary":3560,"tags":3561,"twitterCreator":1420,"twitterSite":1420,"type":1486,"updatedAt":3509,"__hash__":3564},"content_ru/guides/linux/journalctl-usage.md","journalctl: Полное руководство по работе с логами systemd",[1787,7,9,1788,1789],"systemd v237+","Debian 9+","Fedora 33+",{"type":13,"value":1791,"toc":3475},[1792,1794,1815,1818,1832,1842,1844,1896,1900,1910,1915,1969,1984,1988,1991,2052,2063,2067,2070,2151,2161,2205,2209,2212,2318,2334,2338,2354,2454,2459,2503,2507,2516,2589,2593,2597,2600,2705,2709,2746,2750,2809,2813,2816,2929,2948,2950,3000,3005,3007,3011,3030,3038,3073,3077,3095,3099,3119,3126,3158,3160,3162,3166,3170,3210,3216,3220,3287,3291,3346,3350,3358,3382,3386,3392,3472],[16,1793,19],{"id":18},[21,1795,1796,1798,1799,1802,1803,92,1805,92,1807,1810,1811,1814],{},[35,1797,43],{}," — это основная утилита для просмотра и анализа журналов, собираемых ",[60,1800,1801],{},"systemd-journald",". Она заменяет собой множественные текстовые файлы логов (",[35,1804,1613],{},[35,1806,1620],{},[35,1808,1809],{},"dmesg","), предоставляя единый, структурированный, ",[60,1812,1813],{},"индексированный"," источник информации обо всех процессах в системе.",[21,1816,1817],{},"С помощью этого гайда вы научитесь:",[28,1819,1820,1823,1826,1829],{},[31,1821,1822],{},"Быстро находить логи конкретной службы или процесса.",[31,1824,1825],{},"Фильтровать записи по времени, уровню серьезности (ошибка/предупреждение/инфо) и другим полям.",[31,1827,1828],{},"Отслеживать события в реальном времени.",[31,1830,1831],{},"Сохранять и экспортировать логи для дальнейшего анализа.",[21,1833,1834,1835,92,1838,1841],{},"Это незаменимый навык для любого ",[60,1836,1837],{},"сисадмина",[60,1839,1840],{},"devops-инженера"," или разработчика, отлаживающего приложение на Linux.",[16,1843,53],{"id":52},[55,1845,1846,1855,1874],{},[31,1847,1848,1851,1852,1854],{},[60,1849,1850],{},"Операционная система:"," Любой современный дистрибутив Linux, использующий ",[35,1853,1481],{}," (подавляющее большинство).",[31,1856,1857,1860,1861,1864,1865,1867,1868,1871,1872,315],{},[60,1858,1859],{},"Права доступа:"," Для просмотра логов ",[60,1862,1863],{},"всех"," пользователей и служб обычно требуются права ",[60,1866,1491],{}," (или членство в группе ",[35,1869,1870],{},"systemd-journal","). Команды, требующие повышенных привилегий, в этом гайде помечены ",[35,1873,76],{},[31,1875,1876,1879,1880,92,1883,92,1886,92,1889,92,1892,1895],{},[60,1877,1878],{},"Понимание структуры лога:"," Каждая запись в журнале имеет множество полей (",[35,1881,1882],{},"_SYSTEMD_UNIT",[35,1884,1885],{},"_PID",[35,1887,1888],{},"_COMM",[35,1890,1891],{},"PRIORITY",[35,1893,1894],{},"__REALTIME_TIMESTAMP"," и др.). Мы будем использовать их для фильтрации.",[16,1897,1899],{"id":1898},"шаг-1-базовый-просмотр-и-навигация","Шаг 1: Базовый просмотр и навигация",[21,1901,1902,1903,1905,1906,1909],{},"Простой вызов ",[35,1904,43],{}," без аргументов отобразит ",[60,1907,1908],{},"весь"," доступный журнал, начиная с самой старой записи. Это может быть очень много данных.",[21,1911,1912],{},[60,1913,1914],{},"Лучшие практики для начала:",[121,1916,1918],{"className":123,"code":1917,"language":125,"meta":126,"style":126},"# Показать последние 50 строк (аналог tail -n 50)\njournalctl -n 50\n\n# Показать последние 50 строк и следить за новыми (аналог tail -f)\njournalctl -f -n 50\n\n# Показать логи с самого начала (по умолчанию)\njournalctl --no-pager\n",[35,1919,1920,1925,1933,1937,1942,1953,1957,1962],{"__ignoreMap":126},[130,1921,1922],{"class":132,"line":133},[130,1923,1924],{"class":136},"# Показать последние 50 строк (аналог tail -n 50)\n",[130,1926,1927,1929,1931],{"class":132,"line":140},[130,1928,43],{"class":143},[130,1930,529],{"class":150},[130,1932,532],{"class":150},[130,1934,1935],{"class":132,"line":157},[130,1936,161],{"emptyLinePlaceholder":160},[130,1938,1939],{"class":132,"line":164},[130,1940,1941],{"class":136},"# Показать последние 50 строк и следить за новыми (аналог tail -f)\n",[130,1943,1944,1946,1949,1951],{"class":132,"line":170},[130,1945,43],{"class":143},[130,1947,1948],{"class":150}," -f",[130,1950,529],{"class":150},[130,1952,532],{"class":150},[130,1954,1955],{"class":132,"line":181},[130,1956,161],{"emptyLinePlaceholder":160},[130,1958,1959],{"class":132,"line":186},[130,1960,1961],{"class":136},"# Показать логи с самого начала (по умолчанию)\n",[130,1963,1964,1966],{"class":132,"line":192},[130,1965,43],{"class":143},[130,1967,1968],{"class":150}," --no-pager\n",[299,1970,1971],{},[21,1972,1973,1974,1977,1978,1981,1982,315],{},"💡 ",[60,1975,1976],{},"Совет:"," Используйте флаг ",[35,1979,1980],{},"--no-pager",", если хотите, чтобы вывод сразу попал в конвейер (pipe) или файл, без постраничного просмотра через ",[35,1983,100],{},[16,1985,1987],{"id":1986},"шаг-2-фильтрация-по-службе-unit","Шаг 2: Фильтрация по службе (UNIT)",[21,1989,1990],{},"Самый частый сценарий — посмотреть логи конкретного демона или службы.",[121,1992,1994],{"className":123,"code":1993,"language":125,"meta":126,"style":126},"# Логи службы Nginx (имя службы берется из systemd unit-файла)\njournalctl -u nginx.service\n\n# Логи службы Docker\njournalctl -u docker.service -f\n\n# Логи нескольких служб одновременно\njournalctl -u ssh.service -u cron.service\n",[35,1995,1996,2001,2009,2013,2018,2029,2033,2038],{"__ignoreMap":126},[130,1997,1998],{"class":132,"line":133},[130,1999,2000],{"class":136},"# Логи службы Nginx (имя службы берется из systemd unit-файла)\n",[130,2002,2003,2005,2007],{"class":132,"line":140},[130,2004,43],{"class":143},[130,2006,350],{"class":150},[130,2008,353],{"class":146},[130,2010,2011],{"class":132,"line":157},[130,2012,161],{"emptyLinePlaceholder":160},[130,2014,2015],{"class":132,"line":164},[130,2016,2017],{"class":136},"# Логи службы Docker\n",[130,2019,2020,2022,2024,2027],{"class":132,"line":170},[130,2021,43],{"class":143},[130,2023,350],{"class":150},[130,2025,2026],{"class":146}," docker.service",[130,2028,401],{"class":150},[130,2030,2031],{"class":132,"line":181},[130,2032,161],{"emptyLinePlaceholder":160},[130,2034,2035],{"class":132,"line":186},[130,2036,2037],{"class":136},"# Логи нескольких служб одновременно\n",[130,2039,2040,2042,2044,2047,2049],{"class":132,"line":192},[130,2041,43],{"class":143},[130,2043,350],{"class":150},[130,2045,2046],{"class":146}," ssh.service",[130,2048,350],{"class":150},[130,2050,2051],{"class":146}," cron.service\n",[299,2053,2054],{},[21,2055,2056,2057,2060,2061,315],{},"⚠️ ",[60,2058,2059],{},"Важно:"," Имя службы должно быть точным. Узнать список всех активных юнитов можно командой ",[35,2062,1636],{},[16,2064,2066],{"id":2065},"шаг-3-фильтрация-по-уровню-серьезности-priority","Шаг 3: Фильтрация по уровню серьезности (PRIORITY)",[21,2068,2069],{},"Каждая запись имеет приоритет от 0 (emerg) до 7 (debug). Для отладки чаще всего нужны ошибки и предупреждения.",[121,2071,2073],{"className":123,"code":2072,"language":125,"meta":126,"style":126},"# Только ошибки (err) и критичные (crit, emerg)\njournalctl -p err\n\n# Только предупреждения и ошибки\njournalctl -p warning\n\n# Все, кроме отладочных сообщений (info и выше)\njournalctl -p info\n\n# Комбинация уровней: err, warn, notice\njournalctl -p err -p warn -p notice\n",[35,2074,2075,2080,2088,2092,2097,2106,2110,2115,2124,2128,2133],{"__ignoreMap":126},[130,2076,2077],{"class":132,"line":133},[130,2078,2079],{"class":136},"# Только ошибки (err) и критичные (crit, emerg)\n",[130,2081,2082,2084,2086],{"class":132,"line":140},[130,2083,43],{"class":143},[130,2085,424],{"class":150},[130,2087,427],{"class":146},[130,2089,2090],{"class":132,"line":157},[130,2091,161],{"emptyLinePlaceholder":160},[130,2093,2094],{"class":132,"line":164},[130,2095,2096],{"class":136},"# Только предупреждения и ошибки\n",[130,2098,2099,2101,2103],{"class":132,"line":170},[130,2100,43],{"class":143},[130,2102,424],{"class":150},[130,2104,2105],{"class":146}," warning\n",[130,2107,2108],{"class":132,"line":181},[130,2109,161],{"emptyLinePlaceholder":160},[130,2111,2112],{"class":132,"line":186},[130,2113,2114],{"class":136},"# Все, кроме отладочных сообщений (info и выше)\n",[130,2116,2117,2119,2121],{"class":132,"line":192},[130,2118,43],{"class":143},[130,2120,424],{"class":150},[130,2122,2123],{"class":146}," info\n",[130,2125,2126],{"class":132,"line":284},[130,2127,161],{"emptyLinePlaceholder":160},[130,2129,2130],{"class":132,"line":290},[130,2131,2132],{"class":136},"# Комбинация уровней: err, warn, notice\n",[130,2134,2135,2137,2139,2141,2143,2146,2148],{"class":132,"line":413},[130,2136,43],{"class":143},[130,2138,424],{"class":150},[130,2140,501],{"class":146},[130,2142,424],{"class":150},[130,2144,2145],{"class":146}," warn",[130,2147,424],{"class":150},[130,2149,2150],{"class":146}," notice\n",[21,2152,2153,2156,2157,2160],{},[60,2154,2155],{},"Шкала приоритетов (от самого серьезного):","\n0. ",[35,2158,2159],{},"emerg"," (система неработоспособна)",[55,2162,2163,2169,2175,2181,2187,2193,2199],{},[31,2164,2165,2168],{},[35,2166,2167],{},"alert"," (требуется немедленное действие)",[31,2170,2171,2174],{},[35,2172,2173],{},"crit"," (критическая ошибка)",[31,2176,2177,2180],{},[35,2178,2179],{},"err"," (ошибка)",[31,2182,2183,2186],{},[35,2184,2185],{},"warning"," (предупреждение)",[31,2188,2189,2192],{},[35,2190,2191],{},"notice"," (уведомление, нормальное, но значимое событие)",[31,2194,2195,2198],{},[35,2196,2197],{},"info"," (информационное сообщение)",[31,2200,2201,2204],{},[35,2202,2203],{},"debug"," (отладочное сообщение)",[16,2206,2208],{"id":2207},"шаг-4-фильтрация-по-времени","Шаг 4: Фильтрация по времени",[21,2210,2211],{},"Точное указание временного интервала — ключ к быстрому поиску.",[121,2213,2215],{"className":123,"code":2214,"language":125,"meta":126,"style":126},"# Логи за последние 10 минут\njournalctl --since \"10 minutes ago\"\n\n# Логи за сегодня (с 00:00)\njournalctl --since \"today\"\n\n# Логи за конкретную дату\njournalctl --since \"2026-02-15\" --until \"2026-02-16\"\n\n# Логи с точностью до секунды (формат: \"YYYY-MM-DD HH:MM:SS\")\njournalctl --since \"2026-02-15 14:30:00\" --until \"2026-02-15 15:00:00\"\n\n# Логи за последний час (сравнение с `-p err`)\njournalctl --since \"1 hour ago\" -p err\n",[35,2216,2217,2222,2231,2235,2240,2249,2253,2258,2273,2277,2282,2296,2300,2305],{"__ignoreMap":126},[130,2218,2219],{"class":132,"line":133},[130,2220,2221],{"class":136},"# Логи за последние 10 минут\n",[130,2223,2224,2226,2228],{"class":132,"line":140},[130,2225,43],{"class":143},[130,2227,376],{"class":150},[130,2229,2230],{"class":146}," \"10 minutes ago\"\n",[130,2232,2233],{"class":132,"line":157},[130,2234,161],{"emptyLinePlaceholder":160},[130,2236,2237],{"class":132,"line":164},[130,2238,2239],{"class":136},"# Логи за сегодня (с 00:00)\n",[130,2241,2242,2244,2246],{"class":132,"line":170},[130,2243,43],{"class":143},[130,2245,376],{"class":150},[130,2247,2248],{"class":146}," \"today\"\n",[130,2250,2251],{"class":132,"line":181},[130,2252,161],{"emptyLinePlaceholder":160},[130,2254,2255],{"class":132,"line":186},[130,2256,2257],{"class":136},"# Логи за конкретную дату\n",[130,2259,2260,2262,2264,2267,2270],{"class":132,"line":192},[130,2261,43],{"class":143},[130,2263,376],{"class":150},[130,2265,2266],{"class":146}," \"2026-02-15\"",[130,2268,2269],{"class":150}," --until",[130,2271,2272],{"class":146}," \"2026-02-16\"\n",[130,2274,2275],{"class":132,"line":284},[130,2276,161],{"emptyLinePlaceholder":160},[130,2278,2279],{"class":132,"line":290},[130,2280,2281],{"class":136},"# Логи с точностью до секунды (формат: \"YYYY-MM-DD HH:MM:SS\")\n",[130,2283,2284,2286,2288,2291,2293],{"class":132,"line":413},[130,2285,43],{"class":143},[130,2287,376],{"class":150},[130,2289,2290],{"class":146}," \"2026-02-15 14:30:00\"",[130,2292,2269],{"class":150},[130,2294,2295],{"class":146}," \"2026-02-15 15:00:00\"\n",[130,2297,2298],{"class":132,"line":430},[130,2299,161],{"emptyLinePlaceholder":160},[130,2301,2302],{"class":132,"line":435},[130,2303,2304],{"class":136},"# Логи за последний час (сравнение с `-p err`)\n",[130,2306,2307,2309,2311,2314,2316],{"class":132,"line":441},[130,2308,43],{"class":143},[130,2310,376],{"class":150},[130,2312,2313],{"class":146}," \"1 hour ago\"",[130,2315,424],{"class":150},[130,2317,427],{"class":146},[299,2319,2320],{},[21,2321,1973,2322,2324,2325,92,2328,92,2331,315],{},[60,2323,1976],{}," Формат времени понимается довольно свободно. Можно писать ",[35,2326,2327],{},"\"5 min ago\"",[35,2329,2330],{},"\"yesterday\"",[35,2332,2333],{},"\"2026-02-15\"",[16,2335,2337],{"id":2336},"шаг-5-комбинирование-фильтров-и-поиск-по-полям","Шаг 5: Комбинирование фильтров и поиск по полям",[21,2339,2340,2341,2343,2344,2347,2348,2351,2352,315],{},"Сила ",[35,2342,43],{}," — в комбинировании фильтров и поиске по ",[60,2345,2346],{},"структурированным полям"," (префикс ",[35,2349,2350],{},"_","). Это гораздо точнее, чем ",[35,2353,103],{},[121,2355,2357],{"className":123,"code":2356,"language":125,"meta":126,"style":126},"# Логи службы nginx с уровнем ошибка за последние 30 минут\njournalctl -u nginx.service -p err --since \"30 minutes ago\"\n\n# Логи конкретного процесса по PID\njournalctl _PID=1234\n\n# Логи конкретного исполняемого файла\njournalctl _COMM=/usr/bin/ssh\n\n# Логи от определенного пользователя (UID)\njournalctl _UID=1000\n\n# Логи, связанные с конкретным сеансом (session)\njournalctl _SESSION=2\n",[35,2358,2359,2364,2381,2385,2390,2400,2404,2409,2416,2420,2425,2435,2439,2444],{"__ignoreMap":126},[130,2360,2361],{"class":132,"line":133},[130,2362,2363],{"class":136},"# Логи службы nginx с уровнем ошибка за последние 30 минут\n",[130,2365,2366,2368,2370,2372,2374,2376,2378],{"class":132,"line":140},[130,2367,43],{"class":143},[130,2369,350],{"class":150},[130,2371,373],{"class":146},[130,2373,424],{"class":150},[130,2375,501],{"class":146},[130,2377,376],{"class":150},[130,2379,2380],{"class":146}," \"30 minutes ago\"\n",[130,2382,2383],{"class":132,"line":157},[130,2384,161],{"emptyLinePlaceholder":160},[130,2386,2387],{"class":132,"line":164},[130,2388,2389],{"class":136},"# Логи конкретного процесса по PID\n",[130,2391,2392,2394,2397],{"class":132,"line":170},[130,2393,43],{"class":143},[130,2395,2396],{"class":146}," _PID=",[130,2398,2399],{"class":150},"1234\n",[130,2401,2402],{"class":132,"line":181},[130,2403,161],{"emptyLinePlaceholder":160},[130,2405,2406],{"class":132,"line":186},[130,2407,2408],{"class":136},"# Логи конкретного исполняемого файла\n",[130,2410,2411,2413],{"class":132,"line":192},[130,2412,43],{"class":143},[130,2414,2415],{"class":146}," _COMM=/usr/bin/ssh\n",[130,2417,2418],{"class":132,"line":284},[130,2419,161],{"emptyLinePlaceholder":160},[130,2421,2422],{"class":132,"line":290},[130,2423,2424],{"class":136},"# Логи от определенного пользователя (UID)\n",[130,2426,2427,2429,2432],{"class":132,"line":413},[130,2428,43],{"class":143},[130,2430,2431],{"class":146}," _UID=",[130,2433,2434],{"class":150},"1000\n",[130,2436,2437],{"class":132,"line":430},[130,2438,161],{"emptyLinePlaceholder":160},[130,2440,2441],{"class":132,"line":435},[130,2442,2443],{"class":136},"# Логи, связанные с конкретным сеансом (session)\n",[130,2445,2446,2448,2451],{"class":132,"line":441},[130,2447,43],{"class":143},[130,2449,2450],{"class":146}," _SESSION=",[130,2452,2453],{"class":150},"2\n",[21,2455,2456],{},[60,2457,2458],{},"Популярные поля для фильтрации:",[28,2460,2461,2469,2474,2480,2486,2491,2497],{},[31,2462,2463,2465,2466,315],{},[35,2464,1882],{}," — аналог ",[35,2467,2468],{},"-u",[31,2470,2471,2473],{},[35,2472,1885],{}," — ID процесса.",[31,2475,2476,2479],{},[35,2477,2478],{},"_UID"," — ID пользователя.",[31,2481,2482,2485],{},[35,2483,2484],{},"_GID"," — ID группы.",[31,2487,2488,2490],{},[35,2489,1888],{}," — команда (имя исполняемого файла).",[31,2492,2493,2496],{},[35,2494,2495],{},"_EXE"," — полный путь к исполняемому файлу.",[31,2498,2499,2502],{},[35,2500,2501],{},"SYSLOG_IDENTIFIER"," — идентификатор, часто совпадает с именем программы.",[116,2504,2506],{"id":2505},"поиск-по-тексту-если-фильтры-по-полям-не-помогают","Поиск по тексту (если фильтры по полям не помогают)",[21,2508,2509,2510,2512,2513,77],{},"Используйте стандартный ",[35,2511,103],{}," для поиска по свободному тексту сообщения (",[35,2514,2515],{},"MESSAGE",[121,2517,2519],{"className":123,"code":2518,"language":125,"meta":126,"style":126},"# Поиск всех упоминаний 'Connection refused' (без учета регистра)\njournalctl | grep -i \"connection refused\"\n\n# Поиск с контекстом (2 строки до и после)\njournalctl | grep -C 2 \"timeout\"\n\n# Поиск и подсчет количества совпадений\njournalctl | grep -c \"Failed password\"\n",[35,2520,2521,2526,2540,2544,2549,2566,2570,2575],{"__ignoreMap":126},[130,2522,2523],{"class":132,"line":133},[130,2524,2525],{"class":136},"# Поиск всех упоминаний 'Connection refused' (без учета регистра)\n",[130,2527,2528,2530,2532,2534,2537],{"class":132,"line":140},[130,2529,43],{"class":143},[130,2531,202],{"class":201},[130,2533,205],{"class":143},[130,2535,2536],{"class":150}," -i",[130,2538,2539],{"class":146}," \"connection refused\"\n",[130,2541,2542],{"class":132,"line":157},[130,2543,161],{"emptyLinePlaceholder":160},[130,2545,2546],{"class":132,"line":164},[130,2547,2548],{"class":136},"# Поиск с контекстом (2 строки до и после)\n",[130,2550,2551,2553,2555,2557,2560,2563],{"class":132,"line":170},[130,2552,43],{"class":143},[130,2554,202],{"class":201},[130,2556,205],{"class":143},[130,2558,2559],{"class":150}," -C",[130,2561,2562],{"class":150}," 2",[130,2564,2565],{"class":146}," \"timeout\"\n",[130,2567,2568],{"class":132,"line":181},[130,2569,161],{"emptyLinePlaceholder":160},[130,2571,2572],{"class":132,"line":186},[130,2573,2574],{"class":136},"# Поиск и подсчет количества совпадений\n",[130,2576,2577,2579,2581,2583,2586],{"class":132,"line":192},[130,2578,43],{"class":143},[130,2580,202],{"class":201},[130,2582,205],{"class":143},[130,2584,2585],{"class":150}," -c",[130,2587,2588],{"class":146}," \"Failed password\"\n",[16,2590,2592],{"id":2591},"шаг-6-управление-выводом-и-экспорт","Шаг 6: Управление выводом и экспорт",[116,2594,2596],{"id":2595},"изменение-формата-вывода","Изменение формата вывода",[21,2598,2599],{},"По умолчанию выводится много метаданных. Можно изменить формат.",[121,2601,2603],{"className":123,"code":2602,"language":125,"meta":126,"style":126},"# Краткий формат: только время и сообщение\njournalctl -o short\n\n# Подробный формат (с полями)\njournalctl -o verbose\n\n# JSON (удобно для скриптов и парсинга)\njournalctl -u nginx.service -o json --since \"1 hour ago\" > nginx_logs.json\n\n# JSON-pretty (читаемый JSON)\njournalctl -o json-pretty\n\n# Показать только поле сообщения (очень кратко)\njournalctl -o cat\n",[35,2604,2605,2610,2620,2624,2629,2638,2642,2647,2669,2673,2678,2687,2691,2696],{"__ignoreMap":126},[130,2606,2607],{"class":132,"line":133},[130,2608,2609],{"class":136},"# Краткий формат: только время и сообщение\n",[130,2611,2612,2614,2617],{"class":132,"line":140},[130,2613,43],{"class":143},[130,2615,2616],{"class":150}," -o",[130,2618,2619],{"class":146}," short\n",[130,2621,2622],{"class":132,"line":157},[130,2623,161],{"emptyLinePlaceholder":160},[130,2625,2626],{"class":132,"line":164},[130,2627,2628],{"class":136},"# Подробный формат (с полями)\n",[130,2630,2631,2633,2635],{"class":132,"line":170},[130,2632,43],{"class":143},[130,2634,2616],{"class":150},[130,2636,2637],{"class":146}," verbose\n",[130,2639,2640],{"class":132,"line":181},[130,2641,161],{"emptyLinePlaceholder":160},[130,2643,2644],{"class":132,"line":186},[130,2645,2646],{"class":136},"# JSON (удобно для скриптов и парсинга)\n",[130,2648,2649,2651,2653,2655,2657,2660,2662,2664,2666],{"class":132,"line":192},[130,2650,43],{"class":143},[130,2652,350],{"class":150},[130,2654,373],{"class":146},[130,2656,2616],{"class":150},[130,2658,2659],{"class":146}," json",[130,2661,376],{"class":150},[130,2663,2313],{"class":146},[130,2665,554],{"class":201},[130,2667,2668],{"class":146}," nginx_logs.json\n",[130,2670,2671],{"class":132,"line":284},[130,2672,161],{"emptyLinePlaceholder":160},[130,2674,2675],{"class":132,"line":290},[130,2676,2677],{"class":136},"# JSON-pretty (читаемый JSON)\n",[130,2679,2680,2682,2684],{"class":132,"line":413},[130,2681,43],{"class":143},[130,2683,2616],{"class":150},[130,2685,2686],{"class":146}," json-pretty\n",[130,2688,2689],{"class":132,"line":430},[130,2690,161],{"emptyLinePlaceholder":160},[130,2692,2693],{"class":132,"line":435},[130,2694,2695],{"class":136},"# Показать только поле сообщения (очень кратко)\n",[130,2697,2698,2700,2702],{"class":132,"line":441},[130,2699,43],{"class":143},[130,2701,2616],{"class":150},[130,2703,2704],{"class":146}," cat\n",[116,2706,2708],{"id":2707},"ограничение-размера-вывода","Ограничение размера вывода",[121,2710,2712],{"className":123,"code":2711,"language":125,"meta":126,"style":126},"# Показать последние N записей (самый частый вариант)\njournalctl -n 100\n\n# Ограничить вывод по времени (например, за последние 2 часа)\njournalctl --since \"2 hours ago\"\n",[35,2713,2714,2719,2728,2732,2737],{"__ignoreMap":126},[130,2715,2716],{"class":132,"line":133},[130,2717,2718],{"class":136},"# Показать последние N записей (самый частый вариант)\n",[130,2720,2721,2723,2725],{"class":132,"line":140},[130,2722,43],{"class":143},[130,2724,529],{"class":150},[130,2726,2727],{"class":150}," 100\n",[130,2729,2730],{"class":132,"line":157},[130,2731,161],{"emptyLinePlaceholder":160},[130,2733,2734],{"class":132,"line":164},[130,2735,2736],{"class":136},"# Ограничить вывод по времени (например, за последние 2 часа)\n",[130,2738,2739,2741,2743],{"class":132,"line":170},[130,2740,43],{"class":143},[130,2742,376],{"class":150},[130,2744,2745],{"class":146}," \"2 hours ago\"\n",[116,2747,2749],{"id":2748},"сохранение-логов-в-файл","Сохранение логов в файл",[121,2751,2753],{"className":123,"code":2752,"language":125,"meta":126,"style":126},"# Сохранить логи службы ssh за последний день в файл\njournalctl -u ssh.service --since \"yesterday\" > ssh_logs.txt\n\n# Сохранить в JSON для последующего анализа скриптом\njournalctl -p err --since \"2026-02-01\" -o json > errors_feb.json\n",[35,2754,2755,2760,2778,2782,2787],{"__ignoreMap":126},[130,2756,2757],{"class":132,"line":133},[130,2758,2759],{"class":136},"# Сохранить логи службы ssh за последний день в файл\n",[130,2761,2762,2764,2766,2768,2770,2773,2775],{"class":132,"line":140},[130,2763,43],{"class":143},[130,2765,350],{"class":150},[130,2767,2046],{"class":146},[130,2769,376],{"class":150},[130,2771,2772],{"class":146}," \"yesterday\"",[130,2774,554],{"class":201},[130,2776,2777],{"class":146}," ssh_logs.txt\n",[130,2779,2780],{"class":132,"line":157},[130,2781,161],{"emptyLinePlaceholder":160},[130,2783,2784],{"class":132,"line":164},[130,2785,2786],{"class":136},"# Сохранить в JSON для последующего анализа скриптом\n",[130,2788,2789,2791,2793,2795,2797,2800,2802,2804,2806],{"class":132,"line":170},[130,2790,43],{"class":143},[130,2792,424],{"class":150},[130,2794,501],{"class":146},[130,2796,376],{"class":150},[130,2798,2799],{"class":146}," \"2026-02-01\"",[130,2801,2616],{"class":150},[130,2803,2659],{"class":146},[130,2805,554],{"class":201},[130,2807,2808],{"class":146}," errors_feb.json\n",[16,2810,2812],{"id":2811},"шаг-7-управление-самим-журналом-вакуумация-ротация","Шаг 7: Управление самим журналом (вакуумация, ротация)",[21,2814,2815],{},"Журнал systemd по умолчанию может занимать много места (до 10% диска). Управление:",[121,2817,2819],{"className":123,"code":2818,"language":125,"meta":126,"style":126},"# Показать текущую статистику по журналу (размер, количество записей)\njournalctl --disk-usage\n\n# Очистить (удалить) все старые записи, оставив только последние N мегабайт\nsudo journalctl --vacuum-size=500M\n\n# Очистить записи старше указанного времени\nsudo journalctl --vacuum-time=3d  # старше 3 дней\nsudo journalctl --vacuum-time=1w  # старше 1 недели\n\n# Принудительно ротировать журнал (создать новый файл)\nsudo journalctl --rotate\n\n# Комбинация: ротация + очистка записей старше 1 дня\nsudo journalctl --rotate && sudo journalctl --vacuum-time=1d\n",[35,2820,2821,2826,2833,2837,2842,2851,2855,2860,2871,2883,2887,2892,2901,2905,2910],{"__ignoreMap":126},[130,2822,2823],{"class":132,"line":133},[130,2824,2825],{"class":136},"# Показать текущую статистику по журналу (размер, количество записей)\n",[130,2827,2828,2830],{"class":132,"line":140},[130,2829,43],{"class":143},[130,2831,2832],{"class":150}," --disk-usage\n",[130,2834,2835],{"class":132,"line":157},[130,2836,161],{"emptyLinePlaceholder":160},[130,2838,2839],{"class":132,"line":164},[130,2840,2841],{"class":136},"# Очистить (удалить) все старые записи, оставив только последние N мегабайт\n",[130,2843,2844,2846,2848],{"class":132,"line":170},[130,2845,76],{"class":143},[130,2847,347],{"class":146},[130,2849,2850],{"class":150}," --vacuum-size=500M\n",[130,2852,2853],{"class":132,"line":181},[130,2854,161],{"emptyLinePlaceholder":160},[130,2856,2857],{"class":132,"line":186},[130,2858,2859],{"class":136},"# Очистить записи старше указанного времени\n",[130,2861,2862,2864,2866,2868],{"class":132,"line":192},[130,2863,76],{"class":143},[130,2865,347],{"class":146},[130,2867,473],{"class":150},[130,2869,2870],{"class":136},"  # старше 3 дней\n",[130,2872,2873,2875,2877,2880],{"class":132,"line":284},[130,2874,76],{"class":143},[130,2876,347],{"class":146},[130,2878,2879],{"class":150}," --vacuum-time=1w",[130,2881,2882],{"class":136},"  # старше 1 недели\n",[130,2884,2885],{"class":132,"line":290},[130,2886,161],{"emptyLinePlaceholder":160},[130,2888,2889],{"class":132,"line":413},[130,2890,2891],{"class":136},"# Принудительно ротировать журнал (создать новый файл)\n",[130,2893,2894,2896,2898],{"class":132,"line":430},[130,2895,76],{"class":143},[130,2897,347],{"class":146},[130,2899,2900],{"class":150}," --rotate\n",[130,2902,2903],{"class":132,"line":435},[130,2904,161],{"emptyLinePlaceholder":160},[130,2906,2907],{"class":132,"line":441},[130,2908,2909],{"class":136},"# Комбинация: ротация + очистка записей старше 1 дня\n",[130,2911,2912,2914,2916,2919,2922,2924,2926],{"class":132,"line":455},[130,2913,76],{"class":143},[130,2915,347],{"class":146},[130,2917,2918],{"class":150}," --rotate",[130,2920,2921],{"class":599}," && ",[130,2923,76],{"class":143},[130,2925,347],{"class":146},[130,2927,2928],{"class":150}," --vacuum-time=1d\n",[299,2930,2931],{},[21,2932,2056,2933,2935,2936,2939,2940,2943,2944,2947],{},[60,2934,2059],{}," Очистка (",[35,2937,2938],{},"--vacuum",") работает только с файлами в ",[35,2941,2942],{},"/var/log/journal",". Если журнал хранится только в памяти (",[35,2945,2946],{},"/run/log/journal","), он будет очищен при перезагрузке.",[16,2949,1028],{"id":1027},[55,2951,2952,2962,2974,2987],{},[31,2953,2954,2957,2958,2961],{},[60,2955,2956],{},"Базовый тест:"," Выполните ",[35,2959,2960],{},"journalctl -n 5 -f",". Вы должны увидеть последние 5 строк лога и новые записи при их появлении (например, при запуске службы).",[31,2963,2964,2957,2967,2970,2971,2973],{},[60,2965,2966],{},"Фильтрация:",[35,2968,2969],{},"journalctl -u ssh.service -p info",". В выводе должны быть только записи уровня ",[35,2972,2197],{}," и выше от службы SSH.",[31,2975,2976,2957,2979,2982,2983,2986],{},[60,2977,2978],{},"Экспорт:",[35,2980,2981],{},"journalctl --since \"1 hour ago\" -o json > test.json",". Файл ",[35,2984,2985],{},"test.json"," должен содержать валидный JSON-массив объектов-записей.",[31,2988,2989,2957,2992,2995,2996,2999],{},[60,2990,2991],{},"Управление:",[35,2993,2994],{},"sudo journalctl --disk-usage"," для проверки текущего размера. После ",[35,2997,2998],{},"sudo journalctl --vacuum-size=100M"," размер должен уменьшиться.",[21,3001,3002,3003,315],{},"Если все перечисленные команды выполняются без ошибок и вывод соответствует ожиданиям — вы успешно освоили основы работы с ",[35,3004,43],{},[16,3006,1094],{"id":1093},[116,3008,3010],{"id":3009},"_1-failed-to-open-directory-varlogjournal-permission-denied","1. \"Failed to open directory /var/log/journal: Permission denied\"",[21,3012,3013,3016,3017,3020,3021,3023,3024,89,3026,3029],{},[60,3014,3015],{},"Причина:"," У текущего пользователя нет прав на чтение системных логов.\n",[60,3018,3019],{},"Решение:"," Используйте ",[35,3022,76],{}," перед командой или добавьте пользователя в группу ",[35,3025,1870],{},[35,3027,3028],{},"sudo usermod -aG systemd-journal $USER"," (требуется перелогин).",[116,3031,3033,3034,3037],{"id":3032},"_2-нет-логов-для-нужной-службы-journalctl-u-пустой","2. Нет логов для нужной службы (",[35,3035,3036],{},"journalctl -u ..."," пустой)",[21,3039,3040,3043,3044,3047,3048,3050,3051,3054,3055,3058,3059,3062,3063,3065,3066,3069,3070,77],{},[60,3041,3042],{},"Причина а:"," Служба не использовала ",[35,3045,3046],{},"stdout/stderr"," для логирования (использует отдельный файл).\n",[60,3049,3019],{}," Проверьте конфигурацию службы (",[35,3052,3053],{},"/etc/systemd/system/\u003Cимя>.service","), опция ",[35,3056,3057],{},"StandardOutput",". Возможно, логи идут в отдельный файл, а не в journald.\n",[60,3060,3061],{},"Причина б:"," Служба не запускалась в рассматриваемом периоде.\n",[60,3064,3019],{}," Убедитесь, что служба активна (",[35,3067,3068],{},"systemctl status \u003Cимя>","). Проверьте временной интервал (",[35,3071,3072],{},"--since",[116,3074,3076],{"id":3075},"_3-no-journal-files-were-found","3. \"No journal files were found.\"",[21,3078,3079,3081,3082,3084,3085,3087,3088,3091,3092,3094],{},[60,3080,3015],{}," systemd-journald настроен на хранение логов только в памяти (",[35,3083,2946],{},"), и вы перезагрузили систему.\n",[60,3086,3019],{}," Для постоянного хранения создайте директорию: ",[35,3089,3090],{},"sudo mkdir -p /var/log/journal && sudo systemd-tmpfiles --create --prefix /var/log/journal",". Логи начнут сохраняться после перезапуска службы ",[35,3093,1801],{}," или перезагрузки.",[116,3096,3098],{"id":3097},"_4-слишком-много-данных-поиск-работает-медленно","4. Слишком много данных, поиск работает медленно",[21,3100,3101,3103,3104,3106,3107,3110,3111,92,3113,3115,3116,3118],{},[60,3102,3019],{}," Всегда сужайте временной интервал (",[35,3105,3072],{},") и уровень приоритета (",[35,3108,3109],{},"-p","). Используйте фильтрацию по полям (",[35,3112,1885],{},[35,3114,1882],{},") вместо ",[35,3117,103],{},", так как поиск по индексированным полям происходит в разы быстрее.",[116,3120,3122,3123,3125],{"id":3121},"_5-нужно-мониторить-логи-но-journalctl-f-не-показывает-новые-записи","5. Нужно мониторить логи, но ",[35,3124,1708],{}," не показывает новые записи",[21,3127,3128,3130,3131,3133,3134,3136,3137,3140,3141,3143,3144,3147,3148,3150,3151,3154,3155,315],{},[60,3129,3015],{}," Вы запустили ",[35,3132,43],{}," с очень старым ",[35,3135,3072],{}," или без ",[35,3138,3139],{},"-f",", и вывод \"завис\" в начале.\n",[60,3142,3019],{}," Нажмите ",[35,3145,3146],{},"Ctrl+C"," и запустите заново с ",[35,3149,3139],{}," и, возможно, с ",[35,3152,3153],{},"-n 0"," (не показывать старые записи): ",[35,3156,3157],{},"journalctl -u service.name -f -n 0",[106,3159],{},[561,3161],{},[16,3163,3165],{"id":3164},"продвинутые-сценарии-и-примеры","Продвинутые сценарии и примеры",[116,3167,3169],{"id":3168},"поиск-последних-перезагрузок-и-их-причин","Поиск последних перезагрузок и их причин",[121,3171,3173],{"className":123,"code":3172,"language":125,"meta":126,"style":126},"# Найти все записи о перезагрузке (сообщение от systemd)\njournalctl -b -1 -u systemd-logind.service | grep -i \"system reboot\" -A5 -B5\n",[35,3174,3175,3180],{"__ignoreMap":126},[130,3176,3177],{"class":132,"line":133},[130,3178,3179],{"class":136},"# Найти все записи о перезагрузке (сообщение от systemd)\n",[130,3181,3182,3184,3187,3190,3192,3195,3197,3199,3201,3204,3207],{"class":132,"line":140},[130,3183,43],{"class":143},[130,3185,3186],{"class":150}," -b",[130,3188,3189],{"class":150}," -1",[130,3191,350],{"class":150},[130,3193,3194],{"class":146}," systemd-logind.service",[130,3196,202],{"class":201},[130,3198,205],{"class":143},[130,3200,2536],{"class":150},[130,3202,3203],{"class":146}," \"system reboot\"",[130,3205,3206],{"class":150}," -A5",[130,3208,3209],{"class":150}," -B5\n",[21,3211,3212,3215],{},[35,3213,3214],{},"-b -1"," — логи предыдущей загрузки (boot). Это помогает найти, что происходило перед падением системы.",[116,3217,3219],{"id":3218},"анализ-причин-падения-службы-failed","Анализ причин падения службы (Failed)",[121,3221,3223],{"className":123,"code":3222,"language":125,"meta":126,"style":126},"# Найти все неудачные запуски служб\njournalctl -p err | grep -i \"failed\"\n\n# Или точнее, по полю результата юнита\njournalctl _SYSTEMD_UNIT=nginx.service _SYSTEMD_INVOCATION_ID=$(systemctl show nginx.service -p InvocationID --value)\n",[35,3224,3225,3230,3247,3251,3256],{"__ignoreMap":126},[130,3226,3227],{"class":132,"line":133},[130,3228,3229],{"class":136},"# Найти все неудачные запуски служб\n",[130,3231,3232,3234,3236,3238,3240,3242,3244],{"class":132,"line":140},[130,3233,43],{"class":143},[130,3235,424],{"class":150},[130,3237,501],{"class":146},[130,3239,202],{"class":201},[130,3241,205],{"class":143},[130,3243,2536],{"class":150},[130,3245,3246],{"class":146}," \"failed\"\n",[130,3248,3249],{"class":132,"line":157},[130,3250,161],{"emptyLinePlaceholder":160},[130,3252,3253],{"class":132,"line":164},[130,3254,3255],{"class":136},"# Или точнее, по полю результата юнита\n",[130,3257,3258,3260,3263,3266,3269,3271,3274,3276,3278,3281,3284],{"class":132,"line":170},[130,3259,43],{"class":143},[130,3261,3262],{"class":146}," _SYSTEMD_UNIT=nginx.service",[130,3264,3265],{"class":146}," _SYSTEMD_INVOCATION_ID=",[130,3267,3268],{"class":599},"$(",[130,3270,37],{"class":143},[130,3272,3273],{"class":146}," show",[130,3275,373],{"class":146},[130,3277,424],{"class":150},[130,3279,3280],{"class":146}," InvocationID",[130,3282,3283],{"class":150}," --value",[130,3285,3286],{"class":599},")\n",[116,3288,3290],{"id":3289},"сравнение-логов-двух-загрузок-boot","Сравнение логов двух загрузок (boot)",[121,3292,3294],{"className":123,"code":3293,"language":125,"meta":126,"style":126},"# Сравнить разницу в логах между текущей и предыдущей загрузкой\njournalctl -b -0 > current_boot.log\njournalctl -b -1 > previous_boot.log\ndiff -u previous_boot.log current_boot.log | less\n",[35,3295,3296,3301,3315,3328],{"__ignoreMap":126},[130,3297,3298],{"class":132,"line":133},[130,3299,3300],{"class":136},"# Сравнить разницу в логах между текущей и предыдущей загрузкой\n",[130,3302,3303,3305,3307,3310,3312],{"class":132,"line":140},[130,3304,43],{"class":143},[130,3306,3186],{"class":150},[130,3308,3309],{"class":150}," -0",[130,3311,554],{"class":201},[130,3313,3314],{"class":146}," current_boot.log\n",[130,3316,3317,3319,3321,3323,3325],{"class":132,"line":157},[130,3318,43],{"class":143},[130,3320,3186],{"class":150},[130,3322,3189],{"class":150},[130,3324,554],{"class":201},[130,3326,3327],{"class":146}," previous_boot.log\n",[130,3329,3330,3333,3335,3338,3341,3343],{"class":132,"line":164},[130,3331,3332],{"class":143},"diff",[130,3334,350],{"class":150},[130,3336,3337],{"class":146}," previous_boot.log",[130,3339,3340],{"class":146}," current_boot.log",[130,3342,202],{"class":201},[130,3344,3345],{"class":143}," less\n",[116,3347,3349],{"id":3348},"мониторинг-в-реальном-времени-с-цветовой-подсветкой","Мониторинг в реальном времени с цветовой подсветкой",[21,3351,3352,3354,3355,658],{},[35,3353,43],{}," не поддерживает цвета из коробки, но можно обернуть в ",[35,3356,3357],{},"grep --color",[121,3359,3361],{"className":123,"code":3360,"language":125,"meta":126,"style":126},"journalctl -f | grep --color -E \"error|failed|exception|WARNING\"\n",[35,3362,3363],{"__ignoreMap":126},[130,3364,3365,3367,3369,3371,3373,3376,3379],{"class":132,"line":133},[130,3366,43],{"class":143},[130,3368,1948],{"class":150},[130,3370,202],{"class":201},[130,3372,205],{"class":143},[130,3374,3375],{"class":150}," --color",[130,3377,3378],{"class":150}," -E",[130,3380,3381],{"class":146}," \"error|failed|exception|WARNING\"\n",[116,3383,3385],{"id":3384},"использование-в-скриптах-без-постраничного-просмотра","Использование в скриптах (без постраничного просмотра)",[21,3387,3388,3389,3391],{},"Всегда используйте ",[35,3390,1980],{}," в скриптах, чтобы команда не ждала нажатия клавиши.",[121,3393,3395],{"className":123,"code":3394,"language":125,"meta":126,"style":126},"#!/bin/bash\n# Проверить, были ли ошибки nginx за последние 15 минут\nif journalctl -u nginx.service --since \"15 minutes ago\" -p err --no-pager | grep -q .; then\n    echo \"Обнаружены ошибки в nginx!\"\n    # Можно отправить уведомление или перезапустить службу\n    systemctl restart nginx\nfi\n",[35,3396,3397,3401,3406,3445,3453,3458,3467],{"__ignoreMap":126},[130,3398,3399],{"class":132,"line":133},[130,3400,589],{"class":136},[130,3402,3403],{"class":132,"line":140},[130,3404,3405],{"class":136},"# Проверить, были ли ошибки nginx за последние 15 минут\n",[130,3407,3408,3411,3413,3415,3417,3419,3422,3424,3426,3429,3431,3433,3436,3439,3442],{"class":132,"line":157},[130,3409,3410],{"class":201},"if",[130,3412,347],{"class":143},[130,3414,350],{"class":150},[130,3416,373],{"class":146},[130,3418,376],{"class":150},[130,3420,3421],{"class":146}," \"15 minutes ago\"",[130,3423,424],{"class":150},[130,3425,501],{"class":146},[130,3427,3428],{"class":150}," --no-pager",[130,3430,202],{"class":201},[130,3432,205],{"class":143},[130,3434,3435],{"class":150}," -q",[130,3437,3438],{"class":146}," .",[130,3440,3441],{"class":599},"; ",[130,3443,3444],{"class":201},"then\n",[130,3446,3447,3450],{"class":132,"line":164},[130,3448,3449],{"class":150},"    echo",[130,3451,3452],{"class":146}," \"Обнаружены ошибки в nginx!\"\n",[130,3454,3455],{"class":132,"line":170},[130,3456,3457],{"class":136},"    # Можно отправить уведомление или перезапустить службу\n",[130,3459,3460,3463,3465],{"class":132,"line":181},[130,3461,3462],{"class":143},"    systemctl",[130,3464,255],{"class":146},[130,3466,208],{"class":146},[130,3468,3469],{"class":132,"line":186},[130,3470,3471],{"class":201},"fi\n",[1384,3473,3474],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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":126,"searchDepth":140,"depth":140,"links":3476},[3477,3478,3479,3480,3481,3482,3483,3486,3491,3492,3493,3502],{"id":18,"depth":140,"text":19},{"id":52,"depth":140,"text":53},{"id":1898,"depth":140,"text":1899},{"id":1986,"depth":140,"text":1987},{"id":2065,"depth":140,"text":2066},{"id":2207,"depth":140,"text":2208},{"id":2336,"depth":140,"text":2337,"children":3484},[3485],{"id":2505,"depth":157,"text":2506},{"id":2591,"depth":140,"text":2592,"children":3487},[3488,3489,3490],{"id":2595,"depth":157,"text":2596},{"id":2707,"depth":157,"text":2708},{"id":2748,"depth":157,"text":2749},{"id":2811,"depth":140,"text":2812},{"id":1027,"depth":140,"text":1028},{"id":1093,"depth":140,"text":1094,"children":3494},[3495,3496,3498,3499,3500],{"id":3009,"depth":157,"text":3010},{"id":3032,"depth":157,"text":3497},"2. Нет логов для нужной службы (journalctl -u ... пустой)",{"id":3075,"depth":157,"text":3076},{"id":3097,"depth":157,"text":3098},{"id":3121,"depth":157,"text":3501},"5. Нужно мониторить логи, но journalctl -f не показывает новые записи",{"id":3164,"depth":140,"text":3165,"children":3503},[3504,3505,3506,3507,3508],{"id":3168,"depth":157,"text":3169},{"id":3218,"depth":157,"text":3219},{"id":3289,"depth":157,"text":3290},{"id":3348,"depth":157,"text":3349},{"id":3384,"depth":157,"text":3385},"2026-02-16 14:15:51","Изучите мощный инструмент journalctl для просмотра, фильтрации и анализа системных логов в Linux. Пошаговые примеры для отладки служб, поиска ошибок и мониторинга.","15-25 мин",[3513,3516,3519,3522],{"question":3514,"answer":3515},"Чем journalctl отличается от /var/log/syslog или dmesg?","journalctl читает бинарный журнал systemd, который агрегирует логи со всех служб и ядра, поддерживает структурированный поиск и метаданные. Традиционные текстовые файлы часто содержат лишь часть информации.",{"question":3517,"answer":3518},"Как очистить журналы systemd, если они заняли весь диск?","Используйте `sudo journalctl --rotate && sudo journalctl --vacuum-time=1d` для удаления логов старше дня. Для принудительной очистки всех данных — `sudo rm -rf /var/log/journal/*` (осторожно!).",{"question":3520,"answer":3521},"Как мониторить логи в реальном времени, как tail -f?","Достаточно `journalctl -f`. Для отслеживания конкретной службы: `journalctl -u nginx.service -f`.",{"question":3523,"answer":3524},"Почему некоторые старые логи отсутствуют в journalctl?","По умолчанию журнал хранится в памяти (`/run/log/journal`). Для постоянного хранения создайте `/var/log/journal` (`sudo mkdir -p /var/log/journal && sudo systemd-tmpfiles --create --prefix /var/log/journal`).",[3526,3529,3532,3535,3538,3541],{"name":3527,"text":3528},"Просмотр последних записей журнала","Используйте `journalctl` без параметров для вывода всех логов с древнейшей записи. Добавьте `-n 50` для показа только 50 последних строк.",{"name":3530,"text":3531},"Отслеживание логов в реальном времени","Запустите `journalctl -f` для 'слежения' за журналом, аналогично `tail -f`. Для конкретной службы добавьте `-u \u003Cимя_службы>`.",{"name":3533,"text":3534},"Фильтрация по службе (unit)","Чтобы увидеть логи только nginx: `journalctl -u nginx.service`. Можно комбинировать с `-f` для мониторинга.",{"name":3536,"text":3537},"Фильтрация по приоритету (уровню серьезности)","Покажите только ошибки: `journalctl -p err`. Уровни: emerg, alert, crit, err, warning, notice, info, debug.",{"name":3539,"text":3540},"Поиск по времени","Логи за последний час: `journalctl --since \"1 hour ago\"`. Конкретный интервал: `journalctl --since \"2026-02-15 14:00:00\" --until \"2026-02-15 15:00:00\"`.",{"name":3542,"text":3543},"Поиск по тексту (включая регулярные выражения)","Найдите все упоминания 'timeout': `journalctl | grep -i timeout`. Для поиска по полю (например, PID) используйте `journalctl _PID=1234`.",[3545,3546,3547,3548,1581,3549,3550,3551,3552],"journalctl команды","как посмотреть логи systemd","фильтрация логов journalctl","поиск ошибок в journalctl","анализ логов systemd","journalctl примеры","systemd journal","просмотр логов службы",{},[3555,3556,3557],"/guides/linux/systemd-analyze-boot","/guides/linux/logrotate-configuration","/errors/linux/systemd-failed-to-start",{"title":1785,"description":3510},"guides/linux/journalctl-usage","Это руководство научит вас эффективно использовать journalctl — утилиту для запроса журналов systemd. Вы узнаете, как фильтровать логи по службам, времени и приоритету, искать конкретные ошибки и сохранять результаты для анализа.",[1471,1481,43,3562,1482,3563],"logs","debugging","QYh3A_6P3H_BXEvboZqf-WlrQ_Ow8MI2NiimTFkMH-0",{"id":3566,"title":3567,"appliesTo":3568,"author":11,"body":3573,"canonical":1420,"code":1420,"createdAt":4557,"description":4558,"difficulty":1423,"draft":1424,"estimatedTime":1425,"extension":1426,"faq":4559,"howToSteps":4572,"howToTotalTime":1456,"image":1420,"keywords":4591,"locale":1468,"meta":4602,"navigation":160,"path":1475,"platform":1471,"related":4603,"section":1476,"seo":4607,"severity":1420,"stem":4608,"summary":4609,"tags":4610,"twitterCreator":1420,"twitterSite":1420,"type":1486,"updatedAt":4557,"__hash__":4615},"content_ru/guides/linux/linux-permissions-explained.md","Полный гайд по правам доступа Linux: chmod, chown и модель rwx",[3569,3570,3571,3572],"Linux (любой дистрибутив)","Ubuntu 20.04+","CentOS/RHEL 8+","Debian 11+",{"type":13,"value":3574,"toc":4543},[3575,3577,3591,3593,3631,3635,3639,3646,3661,3664,3671,3678,3745,3755,3759,3793,3802,3817,3826,3835,3850,3853,3867,3873,3893,3897,3907,3929,3932,3937,3980,3988,4012,4019,4042,4049,4057,4061,4067,4084,4098,4103,4125,4129,4145,4183,4197,4201,4204,4362,4364,4428,4430,4535,4540],[16,3576,19],{"id":18},[21,3578,3579,3580,3583,3584,1120,3587,3590],{},"Понимание системы прав доступа (permissions) в Linux — это основа безопасности и стабильности работы системы. Без корректных настроек вы либо оставите критически важные файлы открытыми для всех, либо, наоборот, заблокируете легитимные процессы из-за недостатка прав. Этот гайд объяснит ",[60,3581,3582],{},"модель безопасности Linux (rwx)"," на простых примерах и покажет, как с помощью команд ",[35,3585,3586],{},"chmod",[35,3588,3589],{},"chown"," управлять доступом к файлам и папкам. Вы научитесь читать права, безопасно их изменять и понимать, что означают специальные биты вроде SUID.",[16,3592,53],{"id":52},[55,3594,3595,3601,3619],{},[31,3596,3597,3600],{},[60,3598,3599],{},"Доступ к терминалу Linux"," (любой дистрибутив: Ubuntu, CentOS, Debian, Fedora и т.д.).",[31,3602,3603,3606,3607,92,3610,3613,3614,92,3617,77],{},[60,3604,3605],{},"Базовые навыки работы с командной строкой",": навигация (",[35,3608,3609],{},"cd",[35,3611,3612],{},"ls","), создание файлов (",[35,3615,3616],{},"touch",[35,3618,611],{},[31,3620,3621,3624,3625,3627,3628,77],{},[60,3622,3623],{},"Права суперпользователя (sudo)"," для смены владельца (",[35,3626,3589],{},") или изменения прав на системных файлах. Для экспериментов можно использовать собственную домашнюю директорию (",[35,3629,3630],{},"/home/ваш_пользователь",[16,3632,3634],{"id":3633},"пошаговая-инструкция","Пошаговая инструкция",[116,3636,3638],{"id":3637},"шаг-1-проверка-текущих-прав-доступа","Шаг 1: Проверка текущих прав доступа",[21,3640,3641,3642,3645],{},"Основная команда для просмотра — ",[35,3643,3644],{},"ls -l",". Она выводит детальный список файлов.",[121,3647,3649],{"className":123,"code":3648,"language":125,"meta":126,"style":126},"ls -l /home/user/Documents/\n",[35,3650,3651],{"__ignoreMap":126},[130,3652,3653,3655,3658],{"class":132,"line":133},[130,3654,3612],{"class":143},[130,3656,3657],{"class":150}," -l",[130,3659,3660],{"class":146}," /home/user/Documents/\n",[21,3662,3663],{},"Пример вывода:",[121,3665,3669],{"className":3666,"code":3668,"language":1498},[3667],"language-text","-rwxr-xr-- 1 alice developers 2048 Feb 17 10:30 report.pdf\ndrwxr-xr-x 2 bob   users     4096 Feb 17 10:31 projects\n",[35,3670,3668],{"__ignoreMap":126},[21,3672,3673,3674,3677],{},"Разбираем первую строку (",[35,3675,3676],{},"-rwxr-xr--","):",[28,3679,3680,3698,3710,3724,3731,3738],{},[31,3681,3682,3683,3686,3687,3689,3690,3693,3694,3697],{},"Первый символ (",[35,3684,3685],{},"-","): тип объекта (",[35,3688,3685],{}," — обычный файл, ",[35,3691,3692],{},"d"," — каталог, ",[35,3695,3696],{},"l"," — ссылка).",[31,3699,3700,3701,92,3704,92,3707,315],{},"Следующие 9 символов разбиты на три триады: ",[60,3702,3703],{},"владелец (alice)",[60,3705,3706],{},"группа (developers)",[60,3708,3709],{},"остальные",[31,3711,3712,3715,3716,3719,3720,3723],{},[35,3713,3714],{},"r"," = чтение (read), ",[35,3717,3718],{},"w"," = запись (write), ",[35,3721,3722],{},"x"," = выполнение (execute).",[31,3725,3726,3727,3730],{},"Для владельца: ",[35,3728,3729],{},"rwx"," (полный доступ).",[31,3732,3733,3734,3737],{},"Для группы: ",[35,3735,3736],{},"r-x"," (чтение и выполнение, но нет записи).",[31,3739,3740,3741,3744],{},"Для остальных: ",[35,3742,3743],{},"r--"," (только чтение).",[299,3746,3747],{},[21,3748,1973,3749,3751,3752,315],{},[60,3750,1976],{}," Для быстрой проверки конкретного файла используйте ",[35,3753,3754],{},"ls -l \u003Cимя_файла>",[116,3756,3758],{"id":3757},"шаг-2-изменение-прав-через-символьный-режим-chmod","Шаг 2: Изменение прав через символьный режим (chmod)",[21,3760,3761,3762,3765,3766,3769,3770,3773,3774,3776,3777,3780,3781,3783,3784,3786,3787,92,3789,92,3791,77],{},"Этот режим интуитивно понятен: вы обращаетесь к классу пользователей (",[35,3763,3764],{},"u"," — owner, ",[35,3767,3768],{},"g"," — group, ",[35,3771,3772],{},"o"," — others, ",[35,3775,1349],{}," — all) и оператору (",[35,3778,3779],{},"+"," — добавить, ",[35,3782,3685],{}," — убрать, ",[35,3785,603],{}," — задать точно), а затем перечисляете права (",[35,3788,3714],{},[35,3790,3718],{},[35,3792,3722],{},[21,3794,3795,3798,3799,315],{},[60,3796,3797],{},"Пример 1:"," Дать группе право на запись в файл ",[35,3800,3801],{},"config.ini",[121,3803,3805],{"className":123,"code":3804,"language":125,"meta":126,"style":126},"chmod g+w config.ini\n",[35,3806,3807],{"__ignoreMap":126},[130,3808,3809,3811,3814],{"class":132,"line":133},[130,3810,3586],{"class":143},[130,3812,3813],{"class":146}," g+w",[130,3815,3816],{"class":146}," config.ini\n",[21,3818,3819,3820,3822,3823,315],{},"После этого права для группы изменятся с ",[35,3821,3743],{}," на ",[35,3824,3825],{},"rw-",[21,3827,3828,3831,3832,315],{},[60,3829,3830],{},"Пример 2:"," Убрать у всех, кроме владельца, право на выполнение скрипта ",[35,3833,3834],{},"backup.sh",[121,3836,3838],{"className":123,"code":3837,"language":125,"meta":126,"style":126},"chmod o-x backup.sh\n",[35,3839,3840],{"__ignoreMap":126},[130,3841,3842,3844,3847],{"class":132,"line":133},[130,3843,3586],{"class":143},[130,3845,3846],{"class":146}," o-x",[130,3848,3849],{"class":146}," backup.sh\n",[21,3851,3852],{},"Или для всех, кроме владельца и группы:",[121,3854,3856],{"className":123,"code":3855,"language":125,"meta":126,"style":126},"chmod go-x backup.sh\n",[35,3857,3858],{"__ignoreMap":126},[130,3859,3860,3862,3865],{"class":132,"line":133},[130,3861,3586],{"class":143},[130,3863,3864],{"class":146}," go-x",[130,3866,3849],{"class":146},[21,3868,3869,3872],{},[60,3870,3871],{},"Пример 3:"," Установить точные права: владелец — всё, группа — только чтение и выполнение, остальные — ничего.",[121,3874,3876],{"className":123,"code":3875,"language":125,"meta":126,"style":126},"chmod u=rwx,g=rx,o= script.sh\n# Или эквивалентно: chmod 750 script.sh (см. следующий шаг)\n",[35,3877,3878,3888],{"__ignoreMap":126},[130,3879,3880,3882,3885],{"class":132,"line":133},[130,3881,3586],{"class":143},[130,3883,3884],{"class":146}," u=rwx,g=rx,o=",[130,3886,3887],{"class":146}," script.sh\n",[130,3889,3890],{"class":132,"line":140},[130,3891,3892],{"class":136},"# Или эквивалентно: chmod 750 script.sh (см. следующий шаг)\n",[116,3894,3896],{"id":3895},"шаг-3-изменение-прав-через-восьмеричный-цифровой-режим","Шаг 3: Изменение прав через восьмеричный (цифровой) режим",[21,3898,3899,3900,92,3902,92,3904,3906],{},"Это самый компактный и часто используемый способ. Каждому типу прав (",[35,3901,3714],{},[35,3903,3718],{},[35,3905,3722],{},") присвоена цифра:",[28,3908,3909,3914,3919,3924],{},[31,3910,3911,3913],{},[35,3912,3714],{}," = 4",[31,3915,3916,3918],{},[35,3917,3718],{}," = 2",[31,3920,3921,3923],{},[35,3922,3722],{}," = 1",[31,3925,3926,3928],{},[35,3927,3685],{}," (отсутствие) = 0",[21,3930,3931],{},"Сумма этих цифр для каждой из трёх триад (владелец, группа, другие) даёт итоговое восьмеричное число (от 0 до 7).",[21,3933,3934],{},[60,3935,3936],{},"Распространённые preset-значения:",[28,3938,3939,3948,3956,3964,3972],{},[31,3940,3941,3944,3945,3947],{},[35,3942,3943],{},"7"," = ",[35,3946,3729],{}," (4+2+1)",[31,3949,3950,3944,3953,3955],{},[35,3951,3952],{},"6",[35,3954,3825],{}," (4+2)",[31,3957,3958,3944,3961,3963],{},[35,3959,3960],{},"5",[35,3962,3736],{}," (4+1)",[31,3965,3966,3944,3969,3971],{},[35,3967,3968],{},"4",[35,3970,3743],{}," (4)",[31,3973,3974,3944,3977],{},[35,3975,3976],{},"0",[35,3978,3979],{},"---",[21,3981,3982,3984,3985],{},[60,3983,3797],{}," ",[35,3986,3987],{},"chmod 755 script.sh",[28,3989,3990,3997,4004],{},[31,3991,3992,3993,3944,3995],{},"Владелец: ",[35,3994,3943],{},[35,3996,3729],{},[31,3998,3999,4000,3944,4002],{},"Группа: ",[35,4001,3960],{},[35,4003,3736],{},[31,4005,4006,4007,3944,4009,4011],{},"Остальные: ",[35,4008,3960],{},[35,4010,3736],{},"\nЭто стандарт для исполняемых скриптов и публичных каталогов.",[21,4013,4014,3984,4016],{},[60,4015,3830],{},[35,4017,4018],{},"chmod 644 config.conf",[28,4020,4021,4028,4035],{},[31,4022,3992,4023,3944,4025,4027],{},[35,4024,3952],{},[35,4026,3825],{}," (может читать и менять)",[31,4029,3999,4030,3944,4032,4034],{},[35,4031,3968],{},[35,4033,3743],{}," (только чтение)",[31,4036,4006,4037,3944,4039,4041],{},[35,4038,3968],{},[35,4040,3743],{}," (только чтение)\nЭто стандарт для обычных конфигурационных файлов.",[21,4043,4044,3984,4046],{},[60,4045,3871],{},[35,4047,4048],{},"chmod 600 secret.key",[28,4050,4051],{},[31,4052,4053,4054],{},"Только владелец может читать и писать. Группа и остальные — вообще никакого доступа. ",[60,4055,4056],{},"Критически важно для приватных ключей и паролей.",[116,4058,4060],{"id":4059},"шаг-4-смена-владельца-и-группы-chown","Шаг 4: Смена владельца и группы (chown)",[21,4062,4063,4064,4066],{},"Команда ",[35,4065,3589],{}," меняет метаданные файла: кто им владеет и к какой группе он принадлежит.",[121,4068,4070],{"className":123,"code":4069,"language":125,"meta":126,"style":126},"sudo chown alice:developers project_folder/\n",[35,4071,4072],{"__ignoreMap":126},[130,4073,4074,4076,4078,4081],{"class":132,"line":133},[130,4075,76],{"class":143},[130,4077,1194],{"class":146},[130,4079,4080],{"class":146}," alice:developers",[130,4082,4083],{"class":146}," project_folder/\n",[21,4085,4086,4087,4090,4091,4094,4095,315],{},"Эта команда установит владельца ",[35,4088,4089],{},"alice"," и группу ",[35,4092,4093],{},"developers"," для папки ",[35,4096,4097],{},"project_folder/",[21,4099,4100],{},[60,4101,4102],{},"Важные нюансы:",[28,4104,4105,4111,4117],{},[31,4106,4107,4108,315],{},"Для смены только группы можно опустить владельца: ",[35,4109,4110],{},"sudo chown :developers project_folder/",[31,4112,4113,4114,315],{},"Для смены только владельца можно опустить группу: ",[35,4115,4116],{},"sudo chown alice project_folder/",[31,4118,4119],{},[60,4120,4121,4122,4124],{},"Требуются права суперпользователя (",[35,4123,76],{},"), если вы не являетесь текущим владельцем файла.",[116,4126,4128],{"id":4127},"шаг-5-применение-рекурсивно","Шаг 5: Применение рекурсивно",[21,4130,4131,4132,4135,4136],{},"Флаг ",[35,4133,4134],{},"-R"," (рекурсивно) применяет команду ко всем вложенным файлам и подкаталогам. ",[60,4137,4138,4139,1067,4142,4144],{},"Используйте с большой осторожностью, особенно с ",[35,4140,4141],{},"chmod 777",[35,4143,3589],{}," на системных путях.",[121,4146,4148],{"className":123,"code":4147,"language":125,"meta":126,"style":126},"# Правильно: дать владельцу (bob) полный доступ ко всем файлам в его проекте, а группе и остальным — только чтение.\nsudo chown -R bob:bob /srv/www/myproject/\nsudo chmod -R 755 /srv/www/myproject/\n",[35,4149,4150,4155,4170],{"__ignoreMap":126},[130,4151,4152],{"class":132,"line":133},[130,4153,4154],{"class":136},"# Правильно: дать владельцу (bob) полный доступ ко всем файлам в его проекте, а группе и остальным — только чтение.\n",[130,4156,4157,4159,4161,4164,4167],{"class":132,"line":140},[130,4158,76],{"class":143},[130,4160,1194],{"class":146},[130,4162,4163],{"class":150}," -R",[130,4165,4166],{"class":146}," bob:bob",[130,4168,4169],{"class":146}," /srv/www/myproject/\n",[130,4171,4172,4174,4176,4178,4181],{"class":132,"line":157},[130,4173,76],{"class":143},[130,4175,641],{"class":146},[130,4177,4163],{"class":150},[130,4179,4180],{"class":150}," 755",[130,4182,4169],{"class":146},[299,4184,4185],{},[21,4186,2056,4187,4189,4190,4192,4193,4196],{},[60,4188,2059],{}," Рекурсивный ",[35,4191,3586],{}," может снять специальные биты (SUID/SGID) с файлов. Чтобы их сохранить, используйте ",[35,4194,4195],{},"chmod -R --preserve-root"," (в некоторых дистрибутивах) или применяйте права более точечно.",[116,4198,4200],{"id":4199},"шаг-6-понимание-и-настройка-специальных-битов-suid-sgid-sticky-bit","Шаг 6: Понимание и настройка специальных битов (SUID, SGID, Sticky Bit)",[21,4202,4203],{},"Эти биты добавляются к стандартным правам и меняют поведение.",[55,4205,4206,4263,4313],{},[31,4207,4208,4211,4212],{},[60,4209,4210],{},"SUID (Set User ID) — 4xxx"," (работает только для исполняемых файлов).",[28,4213,4214,4229,4239,4252],{},[31,4215,4216,3984,4219,4222,4223,311,4226,4228],{},[60,4217,4218],{},"Признак:",[35,4220,4221],{},"-rwsr-xr-x"," (виден ",[35,4224,4225],{},"s",[35,4227,3722],{}," у владельца).",[31,4230,4231,4234,4235,4238],{},[60,4232,4233],{},"Эффект:"," Файл выполняется с правами своего ",[60,4236,4237],{},"владельца",", а не того, кто его запустил.",[31,4240,4241,3984,4244,4247,4248,4251],{},[60,4242,4243],{},"Пример:",[35,4245,4246],{},"/usr/bin/passwd"," имеет SUID, чтобы обычный пользователь мог изменить системный пароль (файл ",[35,4249,4250],{},"/etc/shadow"," доступен только root).",[31,4253,4254,3984,4257,1067,4260,315],{},[60,4255,4256],{},"Установка:",[35,4258,4259],{},"chmod 4755 /path/to/file",[35,4261,4262],{},"chmod u+s /path/to/file",[31,4264,4265,315,4268],{},[60,4266,4267],{},"SGID (Set Group ID) — 2xxx",[28,4269,4270,4283,4295,4303],{},[31,4271,4272,4275,4276,4279,4280,315],{},[60,4273,4274],{},"Для файлов:"," Аналогично SUID, но выполнение происходит с правами ",[60,4277,4278],{},"группы-владельца"," файла. ",[35,4281,4282],{},"-rwxr-sr-x",[31,4284,4285,3984,4288,4291,4292,315],{},[60,4286,4287],{},"Для каталогов:",[60,4289,4290],{},"Наследование группы."," Все новые файлы, созданные в этом каталоге, будут принадлежать группе каталога, а не группе пользователя-создателя. ",[35,4293,4294],{},"drwxrwsr-x",[31,4296,4297,4299,4300,77],{},[60,4298,4243],{}," Общие папки для разработки (",[35,4301,4302],{},"/srv/shared",[31,4304,4305,3984,4307,1067,4310,315],{},[60,4306,4256],{},[35,4308,4309],{},"chmod 2770 /shared_folder",[35,4311,4312],{},"chmod g+s /shared_folder",[31,4314,4315,4318,4319],{},[60,4316,4317],{},"Sticky Bit — 1xxx"," (обычно для каталогов).",[28,4320,4321,4334,4343,4352],{},[31,4322,4323,3984,4325,4222,4328,311,4331,4333],{},[60,4324,4218],{},[35,4326,4327],{},"drwxrwxrwt",[35,4329,4330],{},"t",[35,4332,3722],{}," у \"остальных\").",[31,4335,4336,4338,4339,4342],{},[60,4337,4233],{}," Пользователь может удалять/переименовывать файлы в каталоге ",[60,4340,4341],{},"только если он является владельцем этого файла"," (или каталога).",[31,4344,4345,3984,4348,4351],{},[60,4346,4347],{},"Классический пример:",[35,4349,4350],{},"/tmp"," — любой пользователь может создавать файлы, но удалять может только их владелец.",[31,4353,4354,3984,4356,1067,4359,315],{},[60,4355,4256],{},[35,4357,4358],{},"chmod 1777 /tmp",[35,4360,4361],{},"chmod o+t /some/folder",[16,4363,1028],{"id":1027},[55,4365,4366,4373,4419],{},[31,4367,4368,4369,4372],{},"После изменений снова выполните ",[35,4370,4371],{},"ls -l \u003Cфайл>"," и убедитесь, что колонка прав доступа изменилась в соответствии с вашими действиями.",[31,4374,4375,4378,4379],{},[60,4376,4377],{},"Практический тест:"," Попробуйте выполнить действие, которое должно быть разрешено/запрещено.\n",[28,4380,4381,4398],{},[31,4382,4383,3984,4386,4389,4390,4393,4394,4397],{},[60,4384,4385],{},"Для файла:",[35,4387,4388],{},"cat file.txt"," (чтение), ",[35,4391,4392],{},"echo \"test\" >> file.txt"," (запись), ",[35,4395,4396],{},"./script.sh"," (выполнение).",[31,4399,4400,3984,4403,4406,4407,4409,4410,4413,4414,1120,4416,4418],{},[60,4401,4402],{},"Для папки:",[35,4404,4405],{},"cd /folder/"," (доступ к каталогу требует ",[35,4408,3722],{},"), ",[35,4411,4412],{},"touch /folder/newfile"," (создание файла требует ",[35,4415,3718],{},[35,4417,3722],{}," на папке).",[31,4420,4421,4422,4424,4425,4427],{},"Если действие не удалось, а права выглядят корректно, проверьте, не является ли файл/папка символической ссылкой (",[35,4423,3696],{}," в начале строки ",[35,4426,3644],{},"). Права ссылки не важны, важны права на目标 объект.",[16,4429,1094],{"id":1093},[28,4431,4432,4457,4473,4489,4507],{},[31,4433,4434,4446,4447,4449,4450,1260,4453,4456],{},[60,4435,4436,4437,4440,4441,1067,4443,4445],{},"Ошибка ",[35,4438,4439],{},"Operation not permitted"," при ",[35,4442,3589],{},[35,4444,3586],{}," на системных файлах:"," Вы не являетесь владельцем файла и не используете ",[35,4448,76],{},". Либо файл находится на смонтированной в режиме ",[35,4451,4452],{},"noexec",[35,4454,4455],{},"nosuid"," файловой системе.",[31,4458,4459,4469,4470,4472],{},[60,4460,4461,4464,4465,1260,4467,658],{},[35,4462,4463],{},"Permission denied"," при попытке выполнить ",[35,4466,3586],{},[35,4468,3589],{}," У вас недостаточно прав на изменение метаданных этого файла (вы не root и не владелец). Используйте ",[35,4471,76],{}," если это системный файл, или смените владельца, если это ваш файл.",[31,4474,4475,4482,4483,4485,4486],{},[60,4476,4477,4478,4481],{},"После ",[35,4479,4480],{},"chmod -R 777 /some/dir"," ничего не работает:"," Вы сняли все специальные биты (SUID/SGID) с исполняемых файлов. Некоторые системные утилиты (например, ",[35,4484,76],{},") перестанут работать. ",[60,4487,4488],{},"Восстановите права из резервной копии или переустановите пакет.",[31,4490,4491,4497,4498,4501,4502,1120,4504,4506],{},[60,4492,4493,4494,4496],{},"Не могу записать в папку, хотя у меня ",[35,4495,3729],{}," на файл:"," Запомните: для создания/удаления файлов в папке нужны права ",[60,4499,4500],{},"на саму папку"," (",[35,4503,3718],{},[35,4505,3722],{},"), а не на файл.",[31,4508,4509,4518,4519,4521,4522,4524,4525,4527,4528,4531,4532,77],{},[60,4510,4511,4512,4514,4515,4517],{},"Бит ",[35,4513,4225],{}," (SUID/SGID) не отображается после ",[35,4516,3586],{},"?"," Убедитесь, что вы устанавливаете его на исполняемый файл (с битом ",[35,4520,3722],{},"). Если ",[35,4523,3722],{}," нет, ",[35,4526,4225],{}," не появится. ",[35,4529,4530],{},"chmod 4755 file"," (а не ",[35,4533,4534],{},"chmod 4766",[561,4536,4537],{},[21,4538,4539],{},":::",[1384,4541,4542],{},"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":126,"searchDepth":140,"depth":140,"links":4544},[4545,4546,4547,4555,4556],{"id":18,"depth":140,"text":19},{"id":52,"depth":140,"text":53},{"id":3633,"depth":140,"text":3634,"children":4548},[4549,4550,4551,4552,4553,4554],{"id":3637,"depth":157,"text":3638},{"id":3757,"depth":157,"text":3758},{"id":3895,"depth":157,"text":3896},{"id":4059,"depth":157,"text":4060},{"id":4127,"depth":157,"text":4128},{"id":4199,"depth":157,"text":4200},{"id":1027,"depth":140,"text":1028},{"id":1093,"depth":140,"text":1094},"2026-02-17 16:29:40","Пошаговое руководство по управлению правами доступа к файлам и папкам в Linux. Разберём модель rwx, команды chmod и chown на практических примерах. Контролируйте безопасность системы.",[4560,4563,4566,4569],{"question":4561,"answer":4562},"Что делать, если выдает 'Permission denied' при попытке выполнить скрипт?","Скорее всего, у файла нет бита исполнения (x). Проверьте права через `ls -l \u003Cфайл>` и добавьте их командой `chmod +x \u003Cфайл>`.",{"question":4564,"answer":4565},"Чем отличается chmod 777 от chmod 755?","777 дает полные права (чтение, запись, выполнение) всем (владельцу, группе, остальным). 755 дает полные права владельцу, а остальным только чтение и выполнение (без записи).",{"question":4567,"answer":4568},"Как безопасно дать права на выполнение только владельцу?","Используйте `chmod 700 \u003Cфайл>` или `chmod u+x \u003Cфайл>`. Это установит бит выполнения только для владельца, группа и остальные не смогут его запускать.",{"question":4570,"answer":4571},"Что такое SUID и зачем он нужен?","SUID (Set User ID) — специальный бит, который позволяет запускать исполняемый файл с правами его владельца, а не текущего пользователя. Например, `passwd` работает через SUID, чтобы обычный пользователь мог менять системный пароль.",[4573,4576,4579,4582,4585,4588],{"name":4574,"text":4575},"Проверка текущих прав доступа","Используйте команду `ls -l \u003Cфайл_или_папка>` для отображения детальной информации, включая права, владельца и группу.",{"name":4577,"text":4578},"Изменение прав через символьный режим (chmod u/g/o/a +/- r/w/x)","Добавьте или уберите конкретные права (r, w, x) для владельца (u), группы (g), остальных (o) или всех (a). Например, `chmod g+w file.txt` добавит группе право на запись.",{"name":4580,"text":4581},"Изменение прав через восьмеричный (цифровой) режим","Используйте трёхзначное восьмеричное число (например, 755), где первая цифра — права владельца, вторая — группы, третья — остальных. Каждая цифра это сумма: r=4, w=2, x=1.",{"name":4583,"text":4584},"Смена владельца и группы (chown)","Команда `chown \u003Cновый_владелец>:\u003Cновая_группа> \u003Cфайл>` изменяет владельца и/или группу. Требуются права суперпользователя (sudo), если вы не текущий владелец.",{"name":4586,"text":4587},"Применение рекурсивно к папкам и файлам","Добавьте флаг `-R` для применения прав или смены владельца ко всем вложенным файлам и папкам. Например, `chmod -R 755 /var/www`.",{"name":4589,"text":4590},"Понимание и настройка специальных битов (SUID, SGID, Sticky Bit)","SUID (4xxx) — выполнение от имени владельца. SGID (2xxx) — для папок: новые файлы наследуют группу папки. Sticky Bit (1xxx) — только владелец может удалять файл в папке (например, /tmp).",[4592,4593,4594,4595,4596,4597,4598,4599,4600,4601],"права доступа linux","chmod команда примеры","chown как использовать","permission denied linux решение","модель rwx linux","изменить права файла linux","владелец файла linux","битовые права linux","setuid setgid linux","chmod 755 что значит",{},[4604,4605,4606],"/guides/linux/linux-file-system-structure","/guides/linux/understanding-linux-processes","/errors/linux/permission-denied",{"title":3567,"description":4558},"guides/linux/linux-permissions-explained","В этом гайде вы подробно разберёте, как работает система разрешений Linux, что означают цифры и буквы r, w, x, и как правильно использовать команды chmod и chown для управления доступом к файлам.",[1471,4611,4612,3586,3589,4613,4614],"безопасность","команды","рутовые права","permissions","fV3Dt6Q2kn8O4OA-TqaTK4G0QQRpeLjV5EVDwnrY54k"]