<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wwoss.ru/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>worldwide open-source software</title>
        <description></description>
        <link>https://wwoss.ru/</link>
        <lastBuildDate>Thu, 20 Aug 2026 16:09:42 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://wwoss.ru/lib/exe/fetch.php?media=wiki:logo.png</url>
            <title>worldwide open-source software</title>
            <link>https://wwoss.ru/</link>
        </image>
        <item>
            <title>30.05.2026</title>
            <link>https://wwoss.ru/doku.php?id=30.05.2026&amp;rev=1780461102</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;ручная_сборка_arch_iso_headless_webui&quot;&gt;Ручная сборка Arch ISO (Headless + WebUI)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0443\u0447\u043d\u0430\u044f \u0441\u0431\u043e\u0440\u043a\u0430 Arch ISO (Headless + WebUI)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0443\u0447\u043d\u0430\u044f_\u0441\u0431\u043e\u0440\u043a\u0430_arch_iso_headless_webui&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-70&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;этап_1_подготовка_диска_sdb_на_хосте_tom_1&quot;&gt;Этап 1. Подготовка диска sdb на хосте tom_1&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Выполняется на живом хосте tom_1 (IP: 192.168.1.72). Диск sdb выступает временным 
накопителем-донором. с доступом в интернет.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u042d\u0442\u0430\u043f 1. \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0438\u0441\u043a\u0430 sdb \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 tom_1&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u044d\u0442\u0430\u043f_1_\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_\u0434\u0438\u0441\u043a\u0430_sdb_\u043d\u0430_\u0445\u043e\u0441\u0442\u0435_tom_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;71-361&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;создание_рабочих_директорий&quot;&gt;1.1 Создание рабочих директорий&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Схема создаваемой структуры:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;/home
└── eva
    ├── new_iso
    │   ├── boot
    │   └── etc
    │       └── fstab
    └── original_iso_image
        └── archlinux-x86_64.iso&lt;/pre&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# original_iso_image - для оригинального образа iso&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;original_iso_image&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# new_iso - рабочай директория, где будем собирать новый образа iso&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Как это работает
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; mkdir имя_папки — создает новую директорию.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Проаерка создания
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# original_iso_image - для оригинального образа iso&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-ld&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;original_iso_image&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# new_iso - рабочай директория, где будем собирать новый образа iso&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-ld&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Как это работает
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ls -ld имя_папки — выводит информацию о конкретной папке и её правах без показа содержимого.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1.1 \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0440\u0430\u0431\u043e\u0447\u0438\u0445_\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;362-1567&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;разметка_виртуального_диска_sdb_будущий_arch-flash&quot;&gt;1.2 Разметка виртуального диска sdb (будущий arch-flash)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;просмотр_списка_дисков_и_разделов&quot;&gt;Просмотр списка дисков и разделов&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Самый наглядный способ увидеть все подключенные накопители, их размер и структуру:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;lsblk&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
скрипт создаст правильную структуру для UEFI + BIOS:
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteblue&quot;&gt;sdb1 — BIOS Boot (1 МБ) → для загрузки старого BIOS.&lt;br/&gt;

sdb2 — EFI System (1 ГБ, FAT32) → для загрузки UEFI (ваш boot).&lt;br/&gt;

sdb3 — Linux root (Все оставшееся место, BTRFS)

&lt;/div&gt;
&lt;p&gt;
Используйте один из следующих вариантов размеи дисков с 
использованием утилит fdisk или sfdisk
&lt;/p&gt;

&lt;p&gt;
1.2.1 Использование утилиты fdisk
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=4&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;fdisk&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sdb &lt;span class=&quot;co2&quot;&gt;&amp;lt;&amp;lt;EOF
g
n
1
&amp;nbsp;
+1M
t
4
n
2
&amp;nbsp;
+1G
t
2
1
n
3
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
w
EOF&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
1.2.2 Использование утилиты sfdisk
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=5&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; sfdisk &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sdb &lt;span class=&quot;co2&quot;&gt;&amp;lt;&amp;lt; EOF
label: gpt
device: /dev/sdb
unit: sectors
&amp;nbsp;
/dev/sdb1 : start=        2048, size=        2048, type=21686148-6449-6E6F-744E-656564454649
/dev/sdb2 : start=        4096, size=     2097152, type=C12A7328-F81F-11D2-BA4B-00A0C93EC93B
/dev/sdb3 : start=     2101248, size=            +, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4
EOF&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Поверим
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=6&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;lsblk&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1.2 \u0420\u0430\u0437\u043c\u0435\u0442\u043a\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430 sdb (\u0431\u0443\u0434\u0443\u0449\u0438\u0439 arch-flash)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430_\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e_\u0434\u0438\u0441\u043a\u0430_sdb_\u0431\u0443\u0434\u0443\u0449\u0438\u0439_arch-flash&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1568-3072&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;форматирование_разделов_с_метками_label&quot;&gt;1.3 Форматирование разделов с метками (LABEL)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
1.3.1 Назначение метки ARCH_BOOT для UEFI-загрузчикаFAT32:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=7&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mkfs.vfat &lt;span class=&quot;re5&quot;&gt;-F&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;32&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-n&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ARCH_BOOT&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sdb2&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
1.3.2 Назначение метки ARCH_ROOT для корневой системы BTRFS:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=8&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mkfs.btrfs &lt;span class=&quot;re5&quot;&gt;-f&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-L&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ARCH_ROOT&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sdb3&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Утилита isohybrid из пакета syslinux сама запишет туда MBR-загрузчик на этапе сборки ISO).&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
1.3.3. Проверка
Показывает структуру, тип файловой системы (FSTYPE) и метку (LABEL):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=9&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;lsblk &lt;span class=&quot;re5&quot;&gt;-f&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
1.3.4 Проверка текущего монтирования
&lt;br/&gt;
 Чтобы загрузчик установился корректно, 
разделы должны быть смонтированы внутри вашей среды arch-chroot. 
Обычная структура выглядит так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;NAME   FSTYPE FSVER LABEL     UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda
├─sda1 vfat   FAT32           64D4-DC3F                             977.5M     4% /boot
└─sda2 btrfs                  53b73831-4cdb-4783-8dd1-e2342ec6c2bf   42.1G    13% /var/log
                                                                                  /var/cache/pacman/pkg
                                                                                  /home
                                                                                  /
sdb
├─sdb1
├─sdb2 vfat   FAT32 ARCH_BOOT AAD6-B042
└─sdb3 btrfs        ARCH_ROOT cb7b1794-2e34-456c-b4c6-b470a4d3df26
zram0  swap   1     zram0     2fad77bf-318e-45ee-8f60-87fee0c1c882                [SWAP]
&lt;/pre&gt;

&lt;/div&gt;

&lt;h5 id=&quot;структура_разделов_на_диске_sdb&quot;&gt;Структура разделов на диске sdb&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Для универсальной загрузки (и на старых компьютерах с BIOS, и на современных с UEFI) 
диск размечается в таблице GPT на три раздела:
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteblue&quot;&gt;&lt;div class=&quot;table sectionedit6&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Раздел&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Назначение&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Размер&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;Файловая система&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;Метка (LABEL)&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;/dev/sdb1&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Загрузчик BIOS Boot (нужен для Syslinux/GRUB на старом железе)&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;1 МБ&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;Нет (пустой)&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;Нет&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;/dev/sdb2&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Системный раздел EFI (EFI System Partition) для UEFI&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;1 ГБFAT32&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;ARCH_BOOT&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;/dev/sdb3&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Корневой раздел системы (RootFS)&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Всё оставшееся&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;BTRFS&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;ARCH_ROOT&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;5219-5675&amp;quot;} --&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;монтирование_корневого_раздела_диска_в_домашнюю_папку&quot;&gt;Монтирование корневого раздела диска в домашнюю папку.&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=11&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sdb3 ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Разбор команды:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; sudo: запускает команду с правами администратора (root).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; mount: команда для подключения файловой системы устройства к дереву папок.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; /dev/sdb3: третий раздел на втором жестком диске (sdb).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ~/new_iso: целевая папка (точка монтирования) внутри вашей домашней директории.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Результат:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; содержимое раздела /dev/sdb3 станет доступно для чтения и записи внутри папки ~/new_iso.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_монтирования_корневого_раздела&quot;&gt;Проверка монтирования корневого раздела.&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Найти все активные монтирования, связанные с 
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=12&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Разбор команды:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; mount: без параметров выводит список всех вообще примонтированных устройств в системе.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; | (конвейер): передает этот огромный список на вход следующей команде.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; grep : фильтрует строки, оставляя только те, где встречается текст .&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Результат:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; вы увидите, примонтировано ли что-то в ~/new_iso или системный , а также узнаете параметры этого подключения (например, rw — чтение/запись, или ro — только чтение).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создать_папку_etc_внутри_точки_монтирования&quot;&gt;Создать папку etc внутри точки монтирования.&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=13&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Разбор команды:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; mkdir: команда создания директорий.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; -p (parents): полезный флаг. Он создаст всю цепочку папок (~/new_iso/, ~/new_iso/ и etc), если какого-то из этих промежуточных каталогов еще не существует. Также этот флаг защищает от ошибок, если папка уже создана.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Результат:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; создается каталог etc. Если перед этим вы успешно выполнили первую команду (mount), то эта папка создастся прямо внутри раздела /dev/sdb3.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_создания_папки_etc&quot;&gt;Проверка создания папки /etc&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=14&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;tree&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Команда tree ~/new_iso выведет структуру каталогов и файлов внутри этой папки в виде наглядного дерева.)&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
1.3.6 Автоматическая генерация fstab
Команда ls -ld ~/new_iso/etc/ выводит подробную информацию о самой папке etc, а не о файлах внутри неё.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=15&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-ld&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Важно: Эту команду нужно выполнять снаружи chroot-окружения (внутри установочной флешки), 
когда все ваши разделы уже смонтированы в папку .
&lt;br/&gt;

Выполните команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=16&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; genfstab &lt;span class=&quot;re5&quot;&gt;-U&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;tee&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-a&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(
  * Флаг -U указывает утилите использовать уникальные UUID разделов вместо имен вроде /dev/sdb3. 
Это гарантирует, что система загрузится, даже если вы вставите диск в другой ПК или другой SATA-разъем.
  * Команда sudo tee запускает саму утилиту записи с правами администратора (root). Это позволяет успешно сохранить сгенерированную таблицу разделов в файл fstab
  * Флаг -a (сокращение от append — добавить) переключает утилиту в режим добавления. Новый текст дописывается в самый конец файла, а старые данные не удаляются
)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_результата&quot;&gt;Проверка результата&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Откройте файл для проверки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=17&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Если вы ставили систему без подтомов (прямо в корень BTRFS), 
ваш файл должен выглядеть примерно так:text
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[eva@tom1 ~]$ cat ~/new_iso/etc/fstab
# /dev/sdb3 LABEL=ARCH_ROOT
UUID=cb7b1794-2e34-456c-b4c6-b470a4d3df26 / btrfs rw,noatime,space_cache=v2,compress=zstd,ssd 0 0
[eva@tom1 ~]$&lt;/pre&gt;
&lt;div class=&quot;plugin_note noteblue&quot;&gt;⚠️ Оптимизация для BTRFS (Рекомендуется)&lt;br/&gt;

Стандартные настройки genfstab рабочие, но для BTRFS 
(особенно если у вас SSD-диск) крайне полезно вручную отредактировать опции монтирования 
для корня (/).&lt;br/&gt;

Откройте файл через nano /etc/fstab и добавьте в строку с btrfs следующие параметры через запятую:
ssd — включает оптимизацию под твердотельные накопители (если у вас SSD).&lt;br/&gt;

compress=zstd — включает прозрачное сжатие данных (сильно экономит место и продлевает жизнь SSD).

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;редактирование_файла_fstab&quot;&gt;Редактирование файла fstab&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=19&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Пример оптимизированной строки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=20&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;fstab&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# /dev/sdb3 LABEL=ARCH_ROOT&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;UUID&lt;/span&gt;=cb7b1794-2e34-456c-b4c6-b470a4d3df26   &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;   btrfs   rw,noatime,&lt;span class=&quot;re2&quot;&gt;discard&lt;/span&gt;=async,&lt;span class=&quot;re2&quot;&gt;space_cache&lt;/span&gt;=v2,&lt;span class=&quot;re2&quot;&gt;compress&lt;/span&gt;=zstd,ssd   &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Сохраните файл (Ctrl + O, Enter) и выйдете из nano (Ctrl + X).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверить_что_вы_всё_сделали_правильно&quot;&gt;Проверить, что вы всё сделали правильно&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=21&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Посчитайте количество элементов в строке с UUID (разделенных пробелами). Их должно быть ровно 6:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; UUID=…&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; /&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; btrfs&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; rw,noatime,discard=async,space_cache=v2,compress=zstd,ssd&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;

&lt;h4 id=&quot;отключение_диска_sdb3_от_системы&quot;&gt;Отключение диска sdb3 от системы&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Команда sudo umount -l /dev/sdb3 выполняет «ленивое» (lazy) размонтирование раздела диска.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=22&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;umount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sdb3&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Разбор параметров команды
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; sudo: запускает операцию с правами администратора.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; umount: стандартная системная команда для отключения файловой системы.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; -l (lazy): ключевой флаг, который активирует режим «ленивого» (или отложенного) отключения.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; /dev/sdb3: целевой раздел диска, который нужно отключить.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1.3 \u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432 \u0441 \u043c\u0435\u0442\u043a\u0430\u043c\u0438 (LABEL)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432_\u0441_\u043c\u0435\u0442\u043a\u0430\u043c\u0438_label&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;3073-13221&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;этап_2_сборка_rootfs_внутри_нового_образа_new_iso&quot;&gt;Этап 2. Сборка RootFS внутри нового образа (~/new_iso/)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🗺️_визуальная_схема_структуры_монтирования&quot;&gt;🗺️ Визуальная схема структуры монтирования.&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В процессе сборки (Этап 2.1) создается иерархическая структура, 
где один раздел накопителя-донора монтируется внутрь другого:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;/ (Корень хоста tom_1)         &amp;lt;─── раздел sda2
├── boot/                      &amp;lt;─── загрузочный раздел хоста (/dev/sda1)
├── [BIOS Boot]                &amp;lt;─── X (НЕ смонтирован / раздел /dev/sdb1)
└── home/
    └── eva/
        └── new_iso/           &amp;lt;─── сюда монтируется /dev/sdb3 (ARCH_ROOT)
            └── boot/          &amp;lt;─── сюда монтируется /dev/sdb2 (ARCH_BOOT)&lt;/pre&gt;

&lt;p&gt;
Выполните команду для проверки текущего дерева монтирования:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=24&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;lsblk &lt;span class=&quot;re5&quot;&gt;-f&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Как выглядит идеальный результат для вашего диска:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=25&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;NAME   FSTYPE FSVER LABEL     UUID                                 FSAVAIL FSUSE&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt; MOUNTPOINTS
sda
├─sda1 vfat   FAT32           64D4-DC3F                             977.5M     &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot
└─sda2 btrfs                  53b73831-4cdb-&lt;span class=&quot;nu0&quot;&gt;4783&lt;/span&gt;-8dd1-e2342ec6c2bf   42.1G    &lt;span class=&quot;nu0&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;log
                                                                                  &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg
                                                                                  &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home
                                                                                  &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
sdb
├─sdb1
├─sdb2 vfat   FAT32 ARCH_BOOT AAD6-B042
└─sdb3 btrfs        ARCH_ROOT cb7b1794-2e34-456c-b4c6-b470a4d3df26
zram0  swap   &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;     zram0     2fad77bf-318e-45ee-8f60-87fee0c1c882                &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;SWAP&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Вот список из 4 ключевых вещей, которые вам нужно проверить в терминале:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 1. Колонка &lt;strong&gt;FSTYPE&lt;/strong&gt; (Тип файловой системы)&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Убедитесь, что система правильно видит форматирование ваших разделов:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Для /dev/&lt;strong&gt;sdb2&lt;/strong&gt; (загрузочный) там должно быть строго &lt;strong&gt;vfat&lt;/strong&gt; (или fat32).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Для /dev/&lt;strong&gt;sdb3&lt;/strong&gt; (корневой) там должно быть написано &lt;strong&gt;btrfs&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Если там пусто, значит раздел еще не отформатирован.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 2. Колонка &lt;strong&gt;LABEL&lt;/strong&gt; (Метка диска)&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Проверьте, соответствуют ли имена вашему плану:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; У загрузочного раздела должно стоять &lt;strong&gt;ARCH_BOOT&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; У корневого раздела должно стоять &lt;strong&gt;ARCH_ROOT&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Метки помогают визуально не перепутать разделы местами.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3. Колонка &lt;strong&gt;UUID&lt;/strong&gt; (Уникальный идентификатор)&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Это длинная строка из букв, цифр и дефисов. Именно её вы записывали в файл fstab.
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Убедитесь, что &lt;strong&gt;UUID&lt;/strong&gt; для /dev/&lt;strong&gt;sdb3&lt;/strong&gt; в выводе команды символ в символ совпадает с тем &lt;strong&gt;UUID&lt;/strong&gt;, который вы оставили в файле &lt;strong&gt;~/new_iso/etc/fstab&lt;/strong&gt;. Если они отличаются, система выдаст ошибку при загрузке.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4. Колонка &lt;strong&gt;MOUNTPOINTS&lt;/strong&gt; (Точки монтирования)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; В этой колонке напротив строк &lt;strong&gt;sdb2&lt;/strong&gt; и &lt;strong&gt;sdb3&lt;/strong&gt; должно быть абсолютно &lt;strong&gt;пусто&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u042d\u0442\u0430\u043f 2. \u0421\u0431\u043e\u0440\u043a\u0430 RootFS \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 (~\/new_iso\/)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u044d\u0442\u0430\u043f_2_\u0441\u0431\u043e\u0440\u043a\u0430_rootfs_\u0432\u043d\u0443\u0442\u0440\u0438_\u043d\u043e\u0432\u043e\u0433\u043e_\u043e\u0431\u0440\u0430\u0437\u0430_new_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:23,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;13222-17096&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;монтирование_новых_дисов_для_загрузки_системы&quot;&gt;2.1 Монтирование новых дисов для загрузки системы&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Монтируются два раздела диска sdb в рабочую папку сборки (~/new_iso):
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteblue&quot;&gt;&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;sdb1&lt;/strong&gt; (BIOS Boot) — &lt;strong&gt;не монтируется&lt;/strong&gt; (нужен просто как «маяк» для старого BIOS).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;sdb2&lt;/strong&gt; (FAT32, метка ARCH_BOOT) — монтируется в папку &lt;strong&gt;~/new_iso/boot&lt;/strong&gt;. Нужен для размещения файлов EFI-загрузчика (systemd-boot), ядра Linux (vmlinuz-linux) и загрузочного образа initramfs&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;sdb3&lt;/strong&gt; (Btrfs, метка ARCH_ROOT) — монтируется в корень сборки &lt;strong&gt;~/new_iso&lt;/strong&gt;. Сюда через утилиту rsync копируется вся основная корневая файловая система (RootFS) с текущего рабочего хоста tom_1.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=26&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# mkdir -p ~/new_iso - создана в Этап1 раздел 1.1 Создание рабочих директорий&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sdb3 ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso       &lt;span class=&quot;co0&quot;&gt;# Корень BTRFS монтируем в корень сборки&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sdb2 ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot  &lt;span class=&quot;co0&quot;&gt;# FAT32 монтируем в boot&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;dev_sdb1_bios_boot_не_монтируется&quot;&gt;1. /dev/sdb1 (BIOS Boot) — НЕ МОНТИРУЕТСЯ&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Этот раздел действительно &lt;strong&gt;остается несмонтированным&lt;/strong&gt; на протяжении всего процесса.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В инструкции на Этапе 1.3.4 прямо указано: «Раздел sdb1 (bios boot) должен оставаться пустым и не смонтированным».&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Зачем он нужен: Этот раздел имеет крошечный размер (всего 1 МБ). Он нужен только для разметки GPT, чтобы старые материнские платы (BIOS/Legacy) могли найти загрузочный код утилиты Syslinux. Файловая система на нем не создается, файлы туда не копируются, и монтировать его в папки Linux нельзя.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h5 id=&quot;dev_sdb3_корень_btrfs_монтируется&quot;&gt;3. /dev/sdb3 (Корень Btrfs) — МОНТИРУЕТСЯ&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Этот раздел монтируется в первую очередь.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В инструкции на Этапе 2.1 выполняется команда: sudo mount /dev/sdb3 ~/new_iso.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Зачем: Это самый большой раздел, куда копируется вся операционная система (папки /etc, /usr, /var и т.д.). Папка ~/new_iso становится отображением этого диска.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h5 id=&quot;dev_sdb2_папка_boot_монтируется&quot;&gt;2. /dev/sdb2 (папка boot) — МОНТИРУЕТСЯ&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Этот раздел действительно &lt;strong&gt;остается несмонтированным&lt;/strong&gt; на протяжении всего процесса.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В инструкции на Этапе 1.3.4 прямо указано: «Раздел sdb1 (bios boot) должен оставаться пустым и не смонтированным».&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Зачем он нужен: Этот раздел имеет крошечный размер (всего 1 МБ). Он нужен только для разметки GPT, чтобы старые материнские платы (BIOS/Legacy) могли найти загрузочный код утилиты Syslinux. Файловая система на нем не создается, файлы туда не копируются, и монтировать его в папки Linux нельзя.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=27&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;lsblk &lt;span class=&quot;re5&quot;&gt;-f&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;pre class=&quot;code&quot;&gt;[eva@tom1 ~]$ lsblk -f
NAME   FSTYPE FSVER LABEL     UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda
├─sda1 vfat   FAT32           64D4-DC3F                             977.5M     4% /boot
└─sda2 btrfs                  53b73831-4cdb-4783-8dd1-e2342ec6c2bf   42.1G    13% /var/log
                                                                                  /var/cache/pacman/pkg
                                                                                  /home
                                                                                  /
sdb
├─sdb1
├─sdb2 vfat   FAT32 ARCH_BOOT AAD6-B042                              1022M     0% /home/eva/new_iso/boot
└─sdb3 btrfs        ARCH_ROOT cb7b1794-2e34-456c-b4c6-b470a4d3df26   25.5G     0% /home/eva/new_iso
zram0  swap   1     zram0     2fad77bf-318e-45ee-8f60-87fee0c1c882                [SWAP]
&lt;/pre&gt;

&lt;p&gt;
Итоговая схема п.2.1
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[eva@tom1 ~]$ tree /home
/home
└── eva
    └── new_iso
        ├── boot
        └── etc
            └── fstab

5 directories, 1 file&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2.1 \u041c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u0434\u0438\u0441\u043e\u0432 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u043d\u043e\u0432\u044b\u0445_\u0434\u0438\u0441\u043e\u0432_\u0434\u043b\u044f_\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438_\u0441\u0438\u0441\u0442\u0435\u043c\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:26,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;17097-22030&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;копируем_корень_tom_1_исключая_виртуальные_и_временные_папки&quot;&gt;2.2 копируем корень tom_1, исключая виртуальные и временные папки.&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=30&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; rsync &lt;span class=&quot;re5&quot;&gt;-aAXv&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--exclude&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;/dev/*&amp;quot;&lt;/span&gt;,&lt;span class=&quot;st0&quot;&gt;&amp;quot;/proc/*&amp;quot;&lt;/span&gt;,&lt;span class=&quot;st0&quot;&gt;&amp;quot;/sys/*&amp;quot;&lt;/span&gt;,&lt;span class=&quot;st0&quot;&gt;&amp;quot;/tmp/*&amp;quot;&lt;/span&gt;,&lt;span class=&quot;st0&quot;&gt;&amp;quot;/run/*&amp;quot;&lt;/span&gt;,&lt;span class=&quot;st0&quot;&gt;&amp;quot;/mnt/*&amp;quot;&lt;/span&gt;,&lt;span class=&quot;st0&quot;&gt;&amp;quot;/media/*&amp;quot;&lt;/span&gt;,&lt;span class=&quot;st0&quot;&gt;&amp;quot;/lost+found&amp;quot;&lt;/span&gt;,&lt;span class=&quot;st0&quot;&gt;&amp;quot;/home/*/.cache/*&amp;quot;&lt;/span&gt;,&lt;span class=&quot;st0&quot;&gt;&amp;quot;/home/eva/new_iso/*&amp;quot;&lt;/span&gt;,&lt;span class=&quot;st0&quot;&gt;&amp;quot;/home/eva/original_iso_image/*&amp;quot;&lt;/span&gt;,&lt;span class=&quot;st0&quot;&gt;&amp;quot;/etc/fstab&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;eva&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверим_выполнение_с_вложенностью_3_уровня&quot;&gt;Проверим выполнение с вложенностью 3 уровня&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выведем только интересующие нас папку /boot и файл /etc/fstab
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=31&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;eva&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso &lt;span class=&quot;re5&quot;&gt;-maxdepth&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; \&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-path&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;*/boot&amp;quot;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-path&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;*/etc&amp;quot;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-path&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;*/etc/fstab&amp;quot;&lt;/span&gt; \&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;tree&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--fromfile&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;pre class=&quot;code&quot;&gt;└── home
    └── eva
        └── new_iso
            ├── boot
            └── etc
                └── fstab

5 directories, 2 files&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_файла_etc_fstab&quot;&gt;Проверка файла /etc/fstab&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверим, что файл /home/eva/new_iso/etc/fstab существует, не затерт и содержит правильные данные — 
выведем его содержимое на экран с помощью команды cat.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=33&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;eva&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;pre class=&quot;code&quot;&gt;# /dev/sdb3 LABEL=ARCH_ROOT
UUID=85f23d27-9469-4c60-89d5-79242d2e1e17       /               btrfs           rw,noatime,discard=async,space_cache=v2,compress=zstd,ssd        0 0&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2.2 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043a\u043e\u0440\u0435\u043d\u044c tom_1, \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043f\u0430\u043f\u043a\u0438.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c_\u043a\u043e\u0440\u0435\u043d\u044c_tom_1_\u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044f_\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435_\u0438_\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435_\u043f\u0430\u043f\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:30,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;22031-23474&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;этап_3_настройка_системы_через_chroot_chroot_new_iso&quot;&gt;Этап 3. Настройка системы через Chroot (chroot ~/new_iso/)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Переходим внутрь создаваемой системы для изоляции настроек.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u042d\u0442\u0430\u043f 3. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0447\u0435\u0440\u0435\u0437 Chroot (chroot ~\/new_iso\/)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u044d\u0442\u0430\u043f_3_\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u0441\u0438\u0441\u0442\u0435\u043c\u044b_\u0447\u0435\u0440\u0435\u0437_chroot_chroot_new_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:35,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;23475-23683&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;вход_в_окружение&quot;&gt;3.1 Вход в окружение&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=35&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; arch-chroot ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;pre class=&quot;code&quot;&gt;[eva@tom1 ~]$ sudo arch-chroot ~/new_iso/
[root@tom1 /]#&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3.1 \u0412\u0445\u043e\u0434 \u0432 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0445\u043e\u0434_\u0432_\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:35,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;23684-23856&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;время_и_офлайн-режим&quot;&gt;3.2 Время и Офлайн-режим&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Во время установки Arch Linux с помощью скрипта archinstall или официального образа служба 
синхронизации времени включается автоматически. По умолчанию за это отвечает служба systemd-timesyncd
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;настройка_времени_универсальное_utc_запрет_синхронизации&quot;&gt;3.2.1 Настройка времени (Универсальное UTC + запрет синхронизации):&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Эти команды используются для настройки системного времени и управления синхронизацией часов в Linux.
&lt;br/&gt;

Обычно такой набор команд применяется в изолированных окружениях, контейнерах или при сборке 
кастомных ISO-образов, где нужно жестко зафиксировать всемирное время (UTC) и отключить 
фоновые сетевые службы времени.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;устанавливаем_часовой_пояс_utc_europe_moscow_внутри_chroot&quot;&gt;1. Устанавливаем часовой пояс UTC / Europe/Moscow внутри chroot&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=37&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sf&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;zoneinfo&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;UTC &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;localtime&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
или
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=38&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sf&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;zoneinfo&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Europe&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Moscow &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;localtime&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Установка системного часового пояса в UTC / Europe/Moscow.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ln: утилита для создания ссылок между файлами.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; -s (symbolic): создает символическую ссылку (ярлык), а не жесткую копию.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; -f (force): принудительно перезаписывает старую ссылку /etc/localtime, если она уже существовала.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Как это работает:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; файл /etc/localtime указывает операционной системе, какое локальное время отображать. &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Эта команда привязывает вашу систему к эталонному всемирному времени UTC (Zero timezone). 
Все логи и системные часы теперь будут работать без смещения на зимнее/летнее время или региональные пояса.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_часового_пояса_utc_europe_moscow&quot;&gt;Проверка часового пояса (UTC / Europe/Moscow)&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните команду ls -l для файла /etc/localtime. Она должна показать, что этот файл 
является символической ссылкой, указывающей именно на файл UTC / Europe/Moscow:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=39&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;localtime&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Идеальный вывод:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# UTC
lrwxrwxrwx 1 root root 23 May 31 19:08 /etc/localtime -&amp;gt; /usr/share/zoneinfo/UTC
# Europe/Moscow
lrwxrwxrwx 1 root root 33 May 31 22:35 /etc/localtime -&amp;gt; /usr/share/zoneinfo/Europe/Moscow&lt;/pre&gt;

&lt;p&gt;
Также можно запустить команду date -u — она покажет текущее системное время в формате UTC / Europe/Moscow.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;переносим_системное_время_в_аппаратное&quot;&gt;2. Переносим системное время в аппаратное&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=41&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;hwclock &lt;span class=&quot;re5&quot;&gt;--systohc&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Запись текущего системного времени в аппаратные часы материнской платы.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; hwclock: утилита для работы с аппаратными часами (RTC — Real Time Clock), &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
которые питаются от батарейки на материнской плате вашего компьютера.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; –systohc (System to Hardware Clock): берет точное время из операционной памяти &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
(которое настроено в Linux) и принудительно записывает его в чип BIOS/UEFI.
Зачем это нужно:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; чтобы при следующей перезагрузке компьютера материнская плата сразу передала ядру &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Linux правильное время, даже если не будет интернета.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_переноса_времени_в_аппаратное&quot;&gt;Проверка переноса времени в аппаратное&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Чтобы убедиться, что время успешно записалось в аппаратную часть, просто вызовите утилиту чтения часов без флагов:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=42&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;hwclock &lt;span class=&quot;re5&quot;&gt;--show&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Идеальный вывод:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;2026-05-31 19:49:22.992460+00:00&lt;/pre&gt;

&lt;p&gt;
Идеальный вывод: Команда должна вывести актуальную дату и точное время 
(обычно с припиской .000000+00:00), не выдавая ошибок доступа к устройству /dev/rtc.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;ручной_mask_службы_связываем_её_с_dev_null&quot;&gt;3. Ручной &amp;quot;mask&amp;quot; службы — связываем её с /dev/null&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=44&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sf&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;system&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd-timesyncd.service&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Полная блокировка («замораживание») службы синхронизации времени.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; mask: это самая сильная форма отключения сервиса в Systemd. Она связывает файл службы с пустой директорией /dev/null.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Результат:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; службу systemd-timesyncd теперь невозможно запустить вообще никак — ни автоматически, &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
ни вручную, ни в качестве зависимости для других программ. Любая попытка включить 
её вызовет ошибку. Это гарантирует, что интернет-соединение во время работы системы 
случайно не изменит зафиксированное вами время.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;как_это_сработает_на_конечной_машине&quot;&gt;Как это сработает на конечной машине?&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Когда ваш кастомный образ загрузится на компьютере без интернета, 
systemd попытается прочитать конфигурацию службы systemd-timesyncd.service, 
наткнется на пустышку /dev/null и просто проигнорирует её запуск, 
вообще не тратя системные ресурсы.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_ручной_блокировки_службы_mask&quot;&gt;Проверка ручной блокировки службы (mask)&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Проверьте, куда указывает созданный ярлык службы. Для этого выведите информацию о файле сервиса:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=45&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;system&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd-timesyncd.service&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Идеальный вывод:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;lrwxrwxrwx 1 root root 9 May 31 19:44 /etc/systemd/system/systemd-timesyncd.service -&amp;gt; /dev/null&lt;/pre&gt;

&lt;p&gt;
Идеальный вывод: systemd-timesyncd.service → /dev/null
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3.2 \u0412\u0440\u0435\u043c\u044f \u0438 \u041e\u0444\u043b\u0430\u0439\u043d-\u0440\u0435\u0436\u0438\u043c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0440\u0435\u043c\u044f_\u0438_\u043e\u0444\u043b\u0430\u0439\u043d-\u0440\u0435\u0436\u0438\u043c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:37,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;23857-30812&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;настройка_статического_офлайн-репозитория&quot;&gt;3.3 Настройка статического офлайн-репозитория&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Для настройки статического офлайн-репозитория на Arch Linux скачайте 
нужные .pkg.tar.zst пакеты и их зависимости, поместите их в отдельную 
папку (например, /var/local/repo), создайте базу данных утилитой repo-add, 
а затем добавьте полученный путь в конфигурационный файл /etc/pacman.conf 
перед официальными репозиториями.
&lt;/p&gt;

&lt;p&gt;
3.3.1 Создаем локальный репозиторий внутри образа из кэша tom_1,
База пакетов уже скопирована вместе с /var/cache/pacman/pkg/. 
&lt;/p&gt;

&lt;p&gt;
&lt;br/&gt;
 Перейдем в папку /var/cache/pacman/pkg/
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=47&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
вывод
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[root@tom1 /]# cd /var/cache/pacman/pkg/
[root@tom1 pkg]#&lt;/pre&gt;

&lt;p&gt;
Создаем локальную БД:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=49&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;repo-add custom.db.tar.gz &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;.pkg.tar.zst&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
вывод
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[root@tom1 pkg]# repo-add custom.db.tar.gz *.pkg.tar.zst

  -&amp;gt; Computing checksums...
  -&amp;gt; Creating &amp;#039;desc&amp;#039; db entry...
  -&amp;gt; Creating &amp;#039;files&amp;#039; db entry...
==&amp;gt; Creating updated database file &amp;#039;custom.db.tar.gz&amp;#039;
[root@tom1 pkg]#
&lt;/pre&gt;

&lt;p&gt;
3.3.2 Настройка секции [custom] в pacman.conf для полной изоляции
Чтобы система на tom_2 гарантированно не ломилась в сеть и брала 
пакеты только из локального кэша, мы полностью отключаем внешние 
репозитории и зеркала.
&lt;/p&gt;

&lt;p&gt;
3.3.3 Настраиваем pacman.conf внутри образа, чтобы он смотрел только 
в локальный кэш:
3.3.3.1 Откройте конфигурационный файл:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=51&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
3.3.4 Настройка файла:
&lt;/p&gt;

&lt;p&gt;
3.3.4.1 Найди и закомментируй (поставь # в начале строки) 
все стандартные репозитории: [core], [extra], [community]. 
Вместе с ними закомментируй строки Include = /etc/pacman.d/mirrorlist.
&lt;/p&gt;

&lt;p&gt;
3.3.4.2 В самый конец файла добавь твою локальную секцию [custom].
Итоговый блок репозиториев в /etc/pacman.conf должен выглядеть строго так:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=52&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_conf&quot;&gt;pacman.conf&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# Полностью отключаем внешние репозитории&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#[core]&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#Include = /etc/pacman.d/mirrorlist&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#[extra]&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#Include = /etc/pacman.d/mirrorlist&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Добавляем изолированный локальный репозиторий&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;custom&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
SigLevel = Optional TrustAll
Server = file:&lt;span class=&quot;sy0&quot;&gt;///&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
После правки
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#[core]
#Include = /etc/pacman.d/mirrorlist

#[extra-testing]
#Include = /etc/pacman.d/mirrorlist
 
#[extra]
#Include = /etc/pacman.d/mirrorlist

# Добавляем изолированный локальный репозиторий
[custom]
SigLevel = Optional TrustAll
Server = file:///var/cache/pacman/pkg&lt;/pre&gt;

&lt;p&gt;
&lt;em&gt;(Нажмите сочетание клавиш Ctrl + O, 
затем Enter для подтверждения записи файла, 
и наконец Ctrl + X для выхода)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3.3 \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0444\u043b\u0430\u0439\u043d-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e_\u043e\u0444\u043b\u0430\u0439\u043d-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:47,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;30813-34317&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;проверка_внутри_chroot&quot;&gt;3.3.5 Проверка внутри Chroot&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
После сохранения файла обязательно обнови локальную базу данных, 
чтобы проверить работу:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=54&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Sy&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
вывод
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[root@tom1 pkg]# pacman -Sy
:: Synchronizing package databases...
 custom                                 148.1 KiB   145 MiB/s 00:00 [######################################] 100%
[root@tom1 pkg]#&lt;/pre&gt;

&lt;p&gt;
&lt;em&gt;(Результат: Система должна моментально считать базу данных 
custom.db напрямую из папки без единого сетевого запроса.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3.3.5 \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 Chroot&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u0432\u043d\u0443\u0442\u0440\u0438_chroot&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:54,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;34318-35012&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit15&quot; id=&quot;настройка_сети_статический_ip_флешки_в_озу&quot;&gt;3.4 Настройка сети (Статический IP флешки в ОЗУ)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;прописываем_параметры_для_работы_в_озу_ip1921681150&quot;&gt;Прописываем параметры для работы в ОЗУ (IP: 192.168.1.150).&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Т.к. файл профиля systemd-networkd скопирован с основной системы
tom_1 и имеет IP:192.168.1.72, то откроем его для редактирования:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=56&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Изменим одержимое:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=57&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_network&quot;&gt;20-wired.network&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Match&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=en&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=eth&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Network&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Address&lt;/span&gt;=192.168.1.150&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Gateway&lt;/span&gt;=192.168.1.1
&lt;span class=&quot;re2&quot;&gt;DNS&lt;/span&gt;=1.1.1.1&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
!!!!!!!!!!!!!!!!!!!!!Я ТУТ!!!!!!!!!!!!!!!!!!!!!!!!!&lt;br/&gt;

!!!!!!!!!!!!!!!!!!!!!Я ТУТ!!!!!!!!!!!!!!!!!!!!!!!!!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3.4 \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0435\u0442\u0438 (\u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 IP \u0444\u043b\u0435\u0448\u043a\u0438 \u0432 \u041e\u0417\u0423)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u0441\u0435\u0442\u0438_\u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439_ip_\u0444\u043b\u0435\u0448\u043a\u0438_\u0432_\u043e\u0437\u0443&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:56,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;35013-35765&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit16&quot; id=&quot;включение_сервисов_nginx_порт_7000_ssh&quot;&gt;3.5 Включение сервисов (Nginx порт 7000 + SSH)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;настройка_ssh&quot;&gt;Настройка SSH&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Убедитесь, что служба OpenSSH включена, чтобы иметь возможность удаленного подключения:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=58&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; sshd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
По умолчанию Nginx слушает 80-й порт. Чтобы изменить его на 7000:
Откройте конфигурационный файл в текстовом редакторе (например, nano):
&lt;/p&gt;

&lt;p&gt;
3.5.1 Правим порт Nginx: 
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=59&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Найдите блок server { … } и проверьте/ измените директиву listen:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=60&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_conf&quot;&gt;nginx.conf&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;listen       &lt;span class=&quot;nu0&quot;&gt;7000&lt;/span&gt;;
server_name  localhost;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Сохраните изменения (в nano: нажмите Ctrl + O, затем Enter, для выхода — Ctrl + X).&lt;/em&gt;
&lt;br/&gt;

Включите службу Nginx
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=61&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;systemd-networkd&quot;&gt;1. systemd-networkd&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Это системный демон для управления сетевыми интерфейсами и подключениями
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;systemd-resolved&quot;&gt;2. systemd-resolved&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Это локальный кэширующий &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-клиент (распознаватель)
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;как_они_работают_вместе&quot;&gt;Как они работают вместе:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
systemd-networkd поднимает соединение и получает от 
провайдера IP-адрес и адреса &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-серверов. Затем он передает эти &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-адреса 
службе systemd-resolved, которая берет на себя всю обработку запросов от 
ваших приложений (например, браузера).
&lt;/p&gt;

&lt;p&gt;
3.5.2 Активируем автозапуск:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=62&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; systemd-networkd systemd-resolved&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Вывод:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[root@tom1 ~]# systemctl enable systemd-networkd systemd-resolved sshd nginx
Created symlink &amp;#039;/etc/systemd/system/dbus-org.freedesktop.resolve1.service&amp;#039; → &amp;#039;/usr/lib/systemd/system/systemd-resolved.service&amp;#039;.
Created symlink &amp;#039;/etc/systemd/system/sysinit.target.wants/systemd-resolved.service&amp;#039; → &amp;#039;/usr/lib/systemd/system/systemd-resolved.service&amp;#039;.
Created symlink &amp;#039;/etc/systemd/system/sockets.target.wants/systemd-resolved-varlink.socket&amp;#039; → &amp;#039;/usr/lib/systemd/system/systemd-resolved-varlink.socket&amp;#039;.
Created symlink &amp;#039;/etc/systemd/system/sockets.target.wants/systemd-resolved-monitor.socket&amp;#039; → &amp;#039;/usr/lib/systemd/system/systemd-resolved-monitor.socket&amp;#039;.
[root@tom1 ~]# &lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_автозапуска_служб&quot;&gt;Проверка автозапуска служб&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В среде chroot команда systemctl status 
может работать некорректно из-за отсутствия запущенного менеджера 
инициализации (systemd). Чтобы гарантировать, что службы добавлены 
в автозагрузку, выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=64&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled sshd
systemctl is-enabled nginx
systemctl is-enabled systemd-networkd
systemctl is-enabled systemd-resolved&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Если службы добавлены в автозагрузку, все команды вернут ответ enabled.
&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Вывод:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[root@tom1 ~]# systemctl is-enabled sshd
enabled
[root@tom1 ~]# systemctl is-enabled nginx
enabled
[root@tom1 ~]# systemctl is-enabled systemd-networkd
enabled
[root@tom1 ~]# systemctl is-enabled systemd-resolved
enabled
[root@tom1 ~]#&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3.5 \u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 (Nginx \u043f\u043e\u0440\u0442 7000 + SSH)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435_\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432_nginx_\u043f\u043e\u0440\u0442_7000_ssh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:58,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;35766-39331&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit17&quot; id=&quot;настройка_swap_в_озу_zram-generator&quot;&gt;3.6 Настройка Swap в ОЗУ (zram-generator)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=66&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;zram-generator.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Содержимое:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=67&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_conf&quot;&gt;zram-generator.conf&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;zram0&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
zram-size = ram &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
compression-algorithm = zstd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3.6 \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Swap \u0432 \u041e\u0417\u0423 (zram-generator)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_swap_\u0432_\u043e\u0437\u0443_zram-generator&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:66,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;39332-39584&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit18&quot; id=&quot;перезапись_fstab_под_новые_метки_label&quot;&gt;3.7 Перезапись fstab под новые метки (LABEL)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=68&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# Так как rsync скопировал реальный fstab с UUID хоста tom_1,&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# мы полностью очищаем его внутри chroot, чтобы Live-система на tom_2 работала в ОЗУ без привязки к дискам.&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
( Если система при загрузке в ОЗУ затребует UUID дисков, то пробуем этот пункт
3.7 Перезапись fstab под новые метки (LABEL):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=69&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;EOF &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab
&lt;span class=&quot;re2&quot;&gt;LABEL&lt;/span&gt;=ARCH_ROOT    &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;        btrfs    defaults,noatime,&lt;span class=&quot;re2&quot;&gt;compress&lt;/span&gt;=zstd    &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LABEL&lt;/span&gt;=ARCH_BOOT    &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot  vfat  defaults,&lt;span class=&quot;re2&quot;&gt;fmask&lt;/span&gt;=0077,&lt;span class=&quot;re2&quot;&gt;dmask&lt;/span&gt;=0077  &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;  &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
)
&lt;/p&gt;

&lt;p&gt;
nano /etc/fstab
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3.7 \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044c fstab \u043f\u043e\u0434 \u043d\u043e\u0432\u044b\u0435 \u043c\u0435\u0442\u043a\u0438 (LABEL)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044c_fstab_\u043f\u043e\u0434_\u043d\u043e\u0432\u044b\u0435_\u043c\u0435\u0442\u043a\u0438_label&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:68,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;39585-40408&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit19&quot; id=&quot;установка_и_обновление_efi-загрузчика&quot;&gt;3.8 Установка и обновление EFI-загрузчика&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Перемонтируйте раздел повторно
Теперь примените новые параметры монтирования 
из обновленного fstab:
&lt;/p&gt;

&lt;p&gt;
mount -o remount /boot
&lt;/p&gt;

&lt;p&gt;
Смонтируйте вручную с правильными правами
&lt;/p&gt;

&lt;p&gt;
mount -t vfat -o fmask=0077,dmask=0077 /dev/disk/by-label/ARCH_BOOT /boot
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=70&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;bootctl &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Выход из chroot:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=71&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3.8 \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 EFI-\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u0438_\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435_efi-\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:70,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;40409-40959&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit20&quot; id=&quot;этап_4_конфигурация_загрузчика_systemd-boot_и_syslinux&quot;&gt;Этап 4. Конфигурация загрузчика systemd-boot  и Syslinux&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Установка загрузчика (Выполняется на хосте tom_1. На этом этапе разделы 
диска sdb все еще примонтированы в ~/new_iso/!):
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u042d\u0442\u0430\u043f 4. \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 systemd-boot  \u0438 Syslinux&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u044d\u0442\u0430\u043f_4_\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f_\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430_systemd-boot_\u0438_syslinux&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:72,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;40960-41259&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit21&quot; id=&quot;настройка_параметров_загрузки_loaderconf&quot;&gt;4.1 Настройка параметров загрузки (loader.conf)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=72&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Содержимое (выбор 3 секунды):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=73&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_conf&quot;&gt;loader.conf&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;inidefault &lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt;
timeout &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;
console-mode max
editor no&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.1 \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 (loader.conf)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432_\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438_loaderconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:72,&amp;quot;secid&amp;quot;:21,&amp;quot;range&amp;quot;:&amp;quot;41260-41555&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit22&quot; id=&quot;настройка_записи_загрузки_параметры_ядра_archconf&quot;&gt;4.2 Настройка записи загрузки параметры ядра (arch.conf)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Привязка к глобальной метке ARCH_ROOT, COM-порт и отключение прерываний Hyper-V:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=74&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Содержимое:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=75&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;ini&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# Для ~/new_iso/boot/loader/entries/arch.conf и isolinux.cfg&lt;/span&gt;
title Arch Linux Custom Live &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;SquashFS Manual&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
linux &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux
initrd &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;initramfs-linux.img
options &lt;span class=&quot;re2&quot;&gt;archisolabel&lt;/span&gt;==ARCH_202605 &lt;span class=&quot;re2&quot;&gt;archisobasedir&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs rw &lt;span class=&quot;re2&quot;&gt;console&lt;/span&gt;=ttyS0,115200n8 &lt;span class=&quot;re2&quot;&gt;earlyprintk&lt;/span&gt;=ttyS0,&lt;span class=&quot;nu0&quot;&gt;115200&lt;/span&gt; hv_utils.disable_gpadl_match=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.2 \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u044f\u0434\u0440\u0430 (arch.conf)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u0437\u0430\u043f\u0438\u0441\u0438_\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438_\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b_\u044f\u0434\u0440\u0430_archconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:74,&amp;quot;secid&amp;quot;:22,&amp;quot;range&amp;quot;:&amp;quot;41556-42231&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit23&quot; id=&quot;подготовка_syslinux_bios_для_физического_железа&quot;&gt;4.3 Подготовка Syslinux (BIOS) для физического железа&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=76&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; syslinux &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;syslinux
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;syslinux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bios&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;isolinux.bin,ldlinux.c32,libcom.c32,libutil.c32,vesamenu.c32&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;syslinux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=77&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;syslinux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;isolinux.cfg&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Содержимое:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=78&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;ini&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;UI vesamenu.c32
PROMPT &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
TIMEOUT &lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
DEFAULT &lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt;
&amp;nbsp;
LABEL &lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt;
LINUX &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux
INITRD &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;initramfs-linux.img
APPEND &lt;span class=&quot;re2&quot;&gt;archisolabel&lt;/span&gt;==ARCH_202605 &lt;span class=&quot;re2&quot;&gt;archisobasedir&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs rw &lt;span class=&quot;re2&quot;&gt;console&lt;/span&gt;=ttyS0,115200n8 &lt;span class=&quot;re2&quot;&gt;earlyprintk&lt;/span&gt;=ttyS0,&lt;span class=&quot;nu0&quot;&gt;115200&lt;/span&gt; hv_utils.disable_gpadl_match=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.3 \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 Syslinux (BIOS) \u0434\u043b\u044f \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0436\u0435\u043b\u0435\u0437\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_syslinux_bios_\u0434\u043b\u044f_\u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e_\u0436\u0435\u043b\u0435\u0437\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:76,&amp;quot;secid&amp;quot;:23,&amp;quot;range&amp;quot;:&amp;quot;42232-42934&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit24&quot; id=&quot;настройка_родного_initramfs_для_поддержки_squashfs_и_overlayfs&quot;&gt;4.4. Настройка родного initramfs для поддержки SquashFS и OverlayFS&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы система загрузилась в режиме «только чтение» из SquashFS, но позволяла изменять файлы в ОЗУ (принцип LiveCD), 
стандартный initramfs должен 
уметь работать с модулями loop и overlay.
&lt;/p&gt;

&lt;p&gt;
Выполните следующие действия на хосте tom_1:
Зайдите в окружение Chroot:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=79&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; arch-chroot ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Включите поддержку модулей в конфигурации сборщика:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=80&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mkinitcpio.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Найдите строку MODULES=(…) и добавьте туда модули для работы с петлевыми устройствами и 
сжатыми файловыми системами:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=81&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;MODULES&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;loop overlay squashfs vfat btrfs&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Проверьте хуки:
В строке HOOKS=(…) убедитесь, что присутствуют systemd и block:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=82&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;HOOKS&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;base udev modconf memdisk archiso_loop_mnt archiso archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs block filesystems keyboard&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Пересоберите initramfs:
Генерируем новый образ загрузки, который теперь аппаратно готов смонтировать наш будущий .sfs файл:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=83&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;mkinitcpio &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; linux&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Выйдите из chroot:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=84&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.4. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0440\u043e\u0434\u043d\u043e\u0433\u043e initramfs \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 SquashFS \u0438 OverlayFS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u0440\u043e\u0434\u043d\u043e\u0433\u043e_initramfs_\u0434\u043b\u044f_\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438_squashfs_\u0438_overlayfs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:79,&amp;quot;secid&amp;quot;:24,&amp;quot;range&amp;quot;:&amp;quot;42935-44596&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit25&quot; id=&quot;этап_5_выбор_варианта_генерация_uefi-образа_squashfs_и_сборка_iso_для_через_xorriso&quot;&gt;Этап 5. Выбор варианта Генерация UEFI-образа, SquashFS и сборка ISO для через xorriso&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
【 ВАРИАНТ А 】 
&lt;br/&gt;

Сборка «на лету» прямо из ~/new_iso/ (Быстрый метод)&lt;br/&gt;

Метод собирает ISO прямо из рабочей директории, где смонтирован диск sdb. &lt;br/&gt;

&lt;em&gt;(Идеально для быстрых тестов.)&lt;/em&gt;
&lt;br/&gt;

【 ВАРИАНТ Б 】
&lt;br/&gt;

Сборка через изолированную структуру 
~/iso_source (Классический метод)
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;              [ Этап 3. Настройка через Chroot ]
                                │
                                ▼
              [ Этап 4. Конфигурация loader.conf ]
                                │
       ┌────────────────────────┴────────────────────────┐
       ▼                                                 ▼
【 ВАРИАНТ А 】                                    【 ВАРИАНТ Б 】
Сборка &amp;quot;на лету&amp;quot; из ~/new_iso/                    Сборка через копирование структуры
(Быстрый метод)                                   (Классический метод)
       │                                                 │
       ▼                                                 ▼
 [ Этап 5А ]                                        [ Этап 5Б ]
Генерация efi.img и                              Создание папки ~/iso_source,
прямой запуск xorriso                            перенос данных и запуск скрипта
       │                                                 │
       └────────────────────────┬────────────────────────┘
                                │
                                ▼
             [ Этап 6. Экспорт и запуск в Hyper-V ]&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u042d\u0442\u0430\u043f 5. \u0412\u044b\u0431\u043e\u0440 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f UEFI-\u043e\u0431\u0440\u0430\u0437\u0430, SquashFS \u0438 \u0441\u0431\u043e\u0440\u043a\u0430 ISO \u0434\u043b\u044f \u0447\u0435\u0440\u0435\u0437 xorriso&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u044d\u0442\u0430\u043f_5_\u0432\u044b\u0431\u043e\u0440_\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430_\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f_uefi-\u043e\u0431\u0440\u0430\u0437\u0430_squashfs_\u0438_\u0441\u0431\u043e\u0440\u043a\u0430_iso_\u0434\u043b\u044f_\u0447\u0435\u0440\u0435\u0437_xorriso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:85,&amp;quot;secid&amp;quot;:25,&amp;quot;range&amp;quot;:&amp;quot;44597-46828&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit26&quot; id=&quot;этап_5а_генерация_uefi-образа_squashfs_и_сборка_iso_для_через_xorriso&quot;&gt;Этап 5А. Генерация UEFI-образа, SquashFS и сборка ISO для через xorriso&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
【 ВАРИАНТ А 】 
&lt;br/&gt;

Сборка «на лету» прямо из ~/new_iso/ (Быстрый метод)&lt;br/&gt;

Метод собирает ISO прямо из рабочей директории, где смонтирован диск sdb.
&lt;br/&gt;

&lt;em&gt;(Идеально для быстрых тестов.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u042d\u0442\u0430\u043f 5\u0410. \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f UEFI-\u043e\u0431\u0440\u0430\u0437\u0430, SquashFS \u0438 \u0441\u0431\u043e\u0440\u043a\u0430 ISO \u0434\u043b\u044f \u0447\u0435\u0440\u0435\u0437 xorriso&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u044d\u0442\u0430\u043f_5\u0430_\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f_uefi-\u043e\u0431\u0440\u0430\u0437\u0430_squashfs_\u0438_\u0441\u0431\u043e\u0440\u043a\u0430_iso_\u0434\u043b\u044f_\u0447\u0435\u0440\u0435\u0437_xorriso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:85,&amp;quot;secid&amp;quot;:26,&amp;quot;range&amp;quot;:&amp;quot;46829-47263&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit27&quot; id=&quot;а1_создание_внутренней_структуры_arch_iso_и_сжатие_rootfs&quot;&gt;5А.1 Создание внутренней структуры Arch ISO и сжатие RootFS&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
# 1. Создаем целевой каталог внутри сборки
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=85&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
# 2. Упаковываем RootFS во временный файл в /tmp/ хоста
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=86&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mksquashfs ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs &lt;span class=&quot;re5&quot;&gt;-comp&lt;/span&gt; zstd &lt;span class=&quot;re5&quot;&gt;-noappend&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; tmp lost+found&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
# 3. Перемещаем готовый изолированный образ внутрь структуры
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=87&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;5\u0410.1 \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b Arch ISO \u0438 \u0441\u0436\u0430\u0442\u0438\u0435 RootFS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u04301_\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439_\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b_arch_iso_\u0438_\u0441\u0436\u0430\u0442\u0438\u0435_rootfs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:85,&amp;quot;secid&amp;quot;:27,&amp;quot;range&amp;quot;:&amp;quot;47264-47906&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit28&quot; id=&quot;а2_создание_внутреннего_efiimg_внутри_структуры&quot;&gt;5А.2 Создание внутреннего efi.img внутри структуры&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
# 1. Создаем образ efi.img во временной папке хоста в ~/new_iso/boot
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=88&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;dd&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;if&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;zero &lt;span class=&quot;re2&quot;&gt;of&lt;/span&gt;=~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efi.img &lt;span class=&quot;re2&quot;&gt;bs&lt;/span&gt;=1M &lt;span class=&quot;re2&quot;&gt;count&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;status&lt;/span&gt;=none
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mkfs.vfat &lt;span class=&quot;re5&quot;&gt;-F&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-n&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ARCH_202605&amp;quot;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efi.img &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
# 2. Монтируем его для наполнения
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=89&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efi_mnt
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; loop &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efi.img &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efi_mnt&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
# 3. Копируем файлы загрузчика ИЗ смонтированного диска во временный efi.img
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=90&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efi_mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efi_mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOTX64.EFI &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efi_mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader.conf &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efi_mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch.conf &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efi_mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
# 4. Размонтируем и удаляем точку монтирования
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=91&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;umount&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efi_mnt
&lt;span class=&quot;kw2&quot;&gt;rmdir&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efi_mnt&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;5\u0410.2 \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e efi.img \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u04302_\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e_efiimg_\u0432\u043d\u0443\u0442\u0440\u0438_\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:88,&amp;quot;secid&amp;quot;:28,&amp;quot;range&amp;quot;:&amp;quot;47907-49018&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit29&quot; id=&quot;а3_прямой_запуск_xorriso_сборки_гибридного_iso&quot;&gt;5А.3  Прямой запуск xorriso сборки гибридного ISO&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
# Запускаем сборку из директории ~/new_iso/. Результат положим в корень домашней директории.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=92&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; xorriso &lt;span class=&quot;re5&quot;&gt;-as&lt;/span&gt; mkisofs \
  &lt;span class=&quot;re5&quot;&gt;-iso-level&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-full-iso9660-filenames&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-volid&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ARCH_202605&amp;quot;&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-eltorito-boot&lt;/span&gt; boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;syslinux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;isolinux.bin \
  &lt;span class=&quot;re5&quot;&gt;-eltorito-catalog&lt;/span&gt; boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;syslinux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot.cat \
  &lt;span class=&quot;re5&quot;&gt;-no-emul-boot&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-boot-load-size&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-boot-info-table&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-isohybrid-mbr&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;syslinux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bios&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;isohdpfx.bin \
  &lt;span class=&quot;re5&quot;&gt;-eltorito-alt-boot&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efi.img \
  &lt;span class=&quot;re5&quot;&gt;-no-emul-boot&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-isohybrid-gpt-basdat&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-hide&lt;/span&gt; EFI \
  &lt;span class=&quot;re5&quot;&gt;-hide&lt;/span&gt; loader \
  &lt;span class=&quot;re5&quot;&gt;-output&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ARCH_202605.iso \
  ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;5\u0410.3  \u041f\u0440\u044f\u043c\u043e\u0439 \u0437\u0430\u043f\u0443\u0441\u043a xorriso \u0441\u0431\u043e\u0440\u043a\u0438 \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u043e\u0433\u043e ISO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u04303_\u043f\u0440\u044f\u043c\u043e\u0439_\u0437\u0430\u043f\u0443\u0441\u043a_xorriso_\u0441\u0431\u043e\u0440\u043a\u0438_\u0433\u0438\u0431\u0440\u0438\u0434\u043d\u043e\u0433\u043e_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:92,&amp;quot;secid&amp;quot;:29,&amp;quot;range&amp;quot;:&amp;quot;49019-49749&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit30&quot; id=&quot;а4_безопасное_размонтирование_диска_донора&quot;&gt;5А.4 Безопасное размонтирование диска донора&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
# Только теперь, когда ISO-образ успешно создан, освобождаем накопитель:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=93&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# Размонтируем разделы диска sdb, которые были подключены к хосту tom_1&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;umount&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;umount&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso
&lt;span class=&quot;kw2&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efi.img&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteblue&quot;&gt;Примечание: «Этап сборки завершен. Пропустите Вариант Б и переходите сразу к Этапу 6».

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;5\u0410.4 \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0435 \u0440\u0430\u0437\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u0441\u043a\u0430 \u0434\u043e\u043d\u043e\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u04304_\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0435_\u0440\u0430\u0437\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u0434\u0438\u0441\u043a\u0430_\u0434\u043e\u043d\u043e\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:93,&amp;quot;secid&amp;quot;:30,&amp;quot;range&amp;quot;:&amp;quot;49750-50368&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit31&quot; id=&quot;этап_5б_подготовка_структуры_и_сборка_iso_через_xorriso&quot;&gt;Этап 5Б. Подготовка структуры и сборка ISO через xorriso&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
【 ВАРИАНТ Б 】Сборка через изолированную структуру 
~/iso_source (Классический метод)
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteblue&quot;&gt;Этот этап применяется, если не использовался Вариант А, 
позволяя упаковать систему в SquashFS и создать гибридный 
ISO-образ, используя временную директорию ~/iso_source.

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Метод копирует все данные в отдельную директорию на хосте, 
освобождая диск донор sdb сразу.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u042d\u0442\u0430\u043f 5\u0411. \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438 \u0441\u0431\u043e\u0440\u043a\u0430 ISO \u0447\u0435\u0440\u0435\u0437 xorriso&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u044d\u0442\u0430\u043f_5\u0431_\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b_\u0438_\u0441\u0431\u043e\u0440\u043a\u0430_iso_\u0447\u0435\u0440\u0435\u0437_xorriso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:94,&amp;quot;secid&amp;quot;:31,&amp;quot;range&amp;quot;:&amp;quot;50369-51108&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit32&quot; id=&quot;б1_создание_структуры_и_копирование_данных&quot;&gt;5Б.1 Создание структуры и копирование данных&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создаем рабочую директорию и синхронизируем в нее данные, исключая временный образ EFI:
# Создаем чистую директорию
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=94&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_source&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
# Синхронизируем содержимое sdb в папку сборки для xorriso
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=95&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; rsync &lt;span class=&quot;re5&quot;&gt;-aAXv&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--exclude&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;/boot/efi.img&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_source&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;5\u0411.1 \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u04311_\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b_\u0438_\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u0434\u0430\u043d\u043d\u044b\u0445&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:94,&amp;quot;secid&amp;quot;:32,&amp;quot;range&amp;quot;:&amp;quot;51109-51655&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit33&quot; id=&quot;б2_освобождение_диска-донора&quot;&gt;5Б.2 Освобождение диска-донора&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Размонтируем исходный диск sdb, так как данные уже скопированы в iso_source:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=96&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;umount&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;umount&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;5\u0411.2 \u041e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0434\u0438\u0441\u043a\u0430-\u0434\u043e\u043d\u043e\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u04312_\u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u0435_\u0434\u0438\u0441\u043a\u0430-\u0434\u043e\u043d\u043e\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:96,&amp;quot;secid&amp;quot;:33,&amp;quot;range&amp;quot;:&amp;quot;51656-51926&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit34&quot; id=&quot;б3_упаковка_rootfs_в_squashfs&quot;&gt;5Б.3 Упаковка RootFS в SquashFS&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Упаковываем файловую систему в сжатый образ airootfs.sfs с использованием zstd, 
исключая служебные каталоги:
&lt;/p&gt;

&lt;p&gt;
# 1. Создаем целевой каталог внутри изолированной структуры
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=97&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_source&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
# 2. Упаковываем RootFS во временный файл из папки ~/iso_source, исключая arch, tmp и lost+found
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=98&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mksquashfs ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_source &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs &lt;span class=&quot;re5&quot;&gt;-comp&lt;/span&gt; zstd &lt;span class=&quot;re5&quot;&gt;-noappend&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; tmp lost+found&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
# 3. Перемещаем готовый изолированный образ внутрь правильной структуры
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=99&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_source&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;5\u0411.3 \u0423\u043f\u0430\u043a\u043e\u0432\u043a\u0430 RootFS \u0432 SquashFS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u04313_\u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0430_rootfs_\u0432_squashfs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:97,&amp;quot;secid&amp;quot;:34,&amp;quot;range&amp;quot;:&amp;quot;51927-52825&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit35&quot; id=&quot;б4_создание_скрипта_сборки_iso_глобальной_меткой_arch_202605&quot;&gt;5Б.4 Создание скрипта сборки ISO глобальной меткой ARCH_202605.&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Так как мы собираем чистый гибридный UEFI/BIOS образ вручную (без archiso), 
нам нужен готовый скрипт, который соберет структуру папки ~/iso_source/ 
в правильный .iso файл.
Выполняется на хосте tom_1, вне Chroot.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;5\u0411.4 \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0441\u0431\u043e\u0440\u043a\u0438 ISO \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0435\u0442\u043a\u043e\u0439 ARCH_202605.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u04314_\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_\u0441\u0431\u043e\u0440\u043a\u0438_iso_\u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0439_\u043c\u0435\u0442\u043a\u043e\u0439_arch_202605&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:100,&amp;quot;secid&amp;quot;:35,&amp;quot;range&amp;quot;:&amp;quot;52826-53283&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit36&quot; id=&quot;б41_создай_файл_скрипта&quot;&gt;5Б.4.1. Создай файл скрипта&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=100&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build_iso.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;5\u0411.4.1. \u0421\u043e\u0437\u0434\u0430\u0439 \u0444\u0430\u0439\u043b \u0441\u043a\u0440\u0438\u043f\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043141_\u0441\u043e\u0437\u0434\u0430\u0439_\u0444\u0430\u0439\u043b_\u0441\u043a\u0440\u0438\u043f\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:100,&amp;quot;secid&amp;quot;:36,&amp;quot;range&amp;quot;:&amp;quot;53284-53386&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit37&quot; id=&quot;б42_вставь_в_него_следующий_код&quot;&gt;5Б.4.2. Вставь в него следующий код&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=101&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Настройка путей&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SOURCE_DIR&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$HOME&lt;/span&gt;/iso_source&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;OUTPUT_ISO&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$HOME&lt;/span&gt;/ARCH_202605.iso&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;VOLUME_ID&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;ARCH_202605&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TMP_EFI_MNT&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;/tmp/efi_mnt&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== Старт автоматической сборки гибридного ISO (BIOS + UEFI) ===&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 1. Проверка утилит&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;command&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; xorriso &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null; &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ошибка: xorriso не установлен. Выполните: sudo pacman -S xorriso&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;fi&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 2. Безопасный бэкап файлов загрузчика перед операциями, если sdb2 еще примонтирован&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Если sdb2 уже размонтирован, скрипт возьмет файлы из структуры копии&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;→ Синхронизация файлов загрузчика...&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader_backup&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader_backup&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; mountpoint &lt;span class=&quot;re5&quot;&gt;-q&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot; &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader_backup&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader_backup&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$SOURCE_DIR&lt;/span&gt;/boot/EFI&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;; &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$SOURCE_DIR&lt;/span&gt;/boot/EFI&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader_backup&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$SOURCE_DIR&lt;/span&gt;/boot/loader&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader_backup&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;
        &lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Критическая ошибка: Файлы UEFI-загрузчика не найдены ни в ~/new_iso/boot, ни в &lt;span class=&quot;es2&quot;&gt;$SOURCE_DIR&lt;/span&gt;/boot!&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;fi&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;fi&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 3. Генерация EFI-образа для загрузки UEFI&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;→ Подготовка EFI boot image...&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$SOURCE_DIR&lt;/span&gt;/boot/efi.img&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;dd&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;if&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;zero &lt;span class=&quot;re2&quot;&gt;of&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$SOURCE_DIR&lt;/span&gt;/boot/efi.img&amp;quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;bs&lt;/span&gt;=1M &lt;span class=&quot;re2&quot;&gt;count&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;status&lt;/span&gt;=none
mkfs.vfat &lt;span class=&quot;re5&quot;&gt;-F&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-n&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ARCH_202605&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$SOURCE_DIR&lt;/span&gt;/boot/efi.img&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 4. Монтируем efi.img и копируем туда файлы загрузчика systemd-boot&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efi_mnt
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; loop &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$SOURCE_DIR&lt;/span&gt;/boot/efi.img&amp;quot;&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$TMP_EFI_MNT&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 5. Проверяем успешность монтирования перед тем, как работать с директорией&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; mountpoint &lt;span class=&quot;re5&quot;&gt;-q&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$TMP_EFI_MNT&lt;/span&gt;; &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;→ Наполнение efi.img файлами загрузчика...&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$TMP_EFI_MNT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT
    &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$TMP_EFI_MNT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries
&amp;nbsp;
    &lt;span class=&quot;co0&quot;&gt;# Копируем из гарантированного бэкапа&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader_backup&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOTX64.EFI &lt;span class=&quot;re1&quot;&gt;$TMP_EFI_MNT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader_backup&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader.conf &lt;span class=&quot;re1&quot;&gt;$TMP_EFI_MNT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader_backup&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch.conf &lt;span class=&quot;re1&quot;&gt;$TMP_EFI_MNT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;umount&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$TMP_EFI_MNT&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;rmdir&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$TMP_EFI_MNT&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-rf&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader_backup
&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Критическая ошибка: Не удалось примонтировать efi.img!&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;rmdir&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$TMP_EFI_MNT&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;fi&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 6. Безопасная проверка готовности каталога boot перед сборкой ISO&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Вместо деструктивного удаления файлов, мы просто проверяем наличие efi.img&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;→ Проверка загрузочной структуры в boot...&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$SOURCE_DIR&lt;/span&gt;/boot/efi.img&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;; &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Критическая ошибка: efi.img отсутствует в &lt;span class=&quot;es2&quot;&gt;$SOURCE_DIR&lt;/span&gt;/boot/!&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;fi&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Чтобы xorriso не затягивал дублирующие папки EFI и loader в корень ISO &lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# (они уже упакованы внутрь efi.img), мы укажем утилите xorriso исключить их &lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# прямо во время сборки на Шаге 7 с помощью флага -hide.&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 7. Сборка полноценного гибридного ISO через xorriso&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;→ Запуск xorriso (Сборка гибридного образа)...&amp;quot;&lt;/span&gt;
xorriso &lt;span class=&quot;re5&quot;&gt;-as&lt;/span&gt; mkisofs \
  &lt;span class=&quot;re5&quot;&gt;-iso-level&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-full-iso9660-filenames&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-volid&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$VOLUME_ID&lt;/span&gt;&amp;quot;&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-eltorito-boot&lt;/span&gt; boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;syslinux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;isolinux.bin \
  &lt;span class=&quot;re5&quot;&gt;-eltorito-catalog&lt;/span&gt; boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;syslinux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot.cat \
  &lt;span class=&quot;re5&quot;&gt;-no-emul-boot&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-boot-load-size&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-boot-info-table&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-isohybrid-mbr&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;syslinux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bios&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;isohdpfx.bin \
  &lt;span class=&quot;re5&quot;&gt;-eltorito-alt-boot&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efi.img \
  &lt;span class=&quot;re5&quot;&gt;-no-emul-boot&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-isohybrid-gpt-basdat&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-hide&lt;/span&gt; EFI \
  &lt;span class=&quot;re5&quot;&gt;-hide&lt;/span&gt; loader \
  &lt;span class=&quot;re5&quot;&gt;-output&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$OUTPUT_ISO&lt;/span&gt;&amp;quot;&lt;/span&gt; \
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$SOURCE_DIR&lt;/span&gt;/&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;re4&quot;&gt;$?&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-eq&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;; &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== Сборка успешно завершена! ===&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Файл образа: &lt;span class=&quot;es2&quot;&gt;$OUTPUT_ISO&lt;/span&gt;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Этот образ готов к записи через Rufus (в режиме DD/ISO) для флешек ИЛИ прямого монтирования в Hyper-V Gen1/Gen2.&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== Ошибка при сборке ISO ===&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;fi&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;5\u0411.4.2. \u0412\u0441\u0442\u0430\u0432\u044c \u0432 \u043d\u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043142_\u0432\u0441\u0442\u0430\u0432\u044c_\u0432_\u043d\u0435\u0433\u043e_\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439_\u043a\u043e\u0434&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:101,&amp;quot;secid&amp;quot;:37,&amp;quot;range&amp;quot;:&amp;quot;53387-58104&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit38&quot; id=&quot;б5_запуск_сборки&quot;&gt;5Б.5 Запуск сборки&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Делаем скрипт исполняемым и запускаем его для создания финального образа:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=102&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build_iso.sh
~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build_iso.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Примечание: Параметры xorriso могут адаптироваться под структуру папки boot вашего диска sdb).&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Скрипт автоматически упакует систему, создаст правильный UEFI-загрузочный 
сектор efi.img с твоей глобальной меткой ARCH_202605 и положит готовый файл 
в твою домашнюю директорию.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;5\u0411.5 \u0417\u0430\u043f\u0443\u0441\u043a \u0441\u0431\u043e\u0440\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u04315_\u0437\u0430\u043f\u0443\u0441\u043a_\u0441\u0431\u043e\u0440\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:102,&amp;quot;secid&amp;quot;:38,&amp;quot;range&amp;quot;:&amp;quot;58105-58829&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit39&quot; id=&quot;этап_6_экспорт_iso_в_windows_и_монтирование_в_cd-привод_hyper-v_tom_2&quot;&gt;Этап 6. Экспорт ISO в Windows и монтирование в CD-привод Hyper-V (tom_2)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u042d\u0442\u0430\u043f 6. \u042d\u043a\u0441\u043f\u043e\u0440\u0442 ISO \u0432 Windows \u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 CD-\u043f\u0440\u0438\u0432\u043e\u0434 Hyper-V (tom_2)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u044d\u0442\u0430\u043f_6_\u044d\u043a\u0441\u043f\u043e\u0440\u0442_iso_\u0432_windows_\u0438_\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u0432_cd-\u043f\u0440\u0438\u0432\u043e\u0434_hyper-v_tom_2&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:103,&amp;quot;secid&amp;quot;:39,&amp;quot;range&amp;quot;:&amp;quot;58830-58946&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit40&quot; id=&quot;передача_файла_на_windows-хост&quot;&gt;6.1 Передача файла на Windows-хост&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Используте WinSCP  на Windows:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=30.05.2026&amp;amp;codeblock=103&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;cmd&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pscp eva&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;192.168.1.72:&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;eva&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ARCH_202605.iso C:\ISO\&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;6.1 \u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0444\u0430\u0439\u043b\u0430 \u043d\u0430 Windows-\u0445\u043e\u0441\u0442&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430_\u0444\u0430\u0439\u043b\u0430_\u043d\u0430_windows-\u0445\u043e\u0441\u0442&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:103,&amp;quot;secid&amp;quot;:40,&amp;quot;range&amp;quot;:&amp;quot;58947-59135&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit41&quot; id=&quot;запись_на_arch-flash_опционально_для_физ_теста&quot;&gt;6.2 Запись на arch-flash (опционально, для физ. теста)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Открываешь Rufus, выбираешь флешку, выбираешь созданный ARCH_202605.iso
 и пишешь в режиме DD/ISO.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;6.2 \u0417\u0430\u043f\u0438\u0441\u044c \u043d\u0430 arch-flash (\u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e, \u0434\u043b\u044f \u0444\u0438\u0437. \u0442\u0435\u0441\u0442\u0430)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u043f\u0438\u0441\u044c_\u043d\u0430_arch-flash_\u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e_\u0434\u043b\u044f_\u0444\u0438\u0437_\u0442\u0435\u0441\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:104,&amp;quot;secid&amp;quot;:41,&amp;quot;range&amp;quot;:&amp;quot;59136-59387&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit42&quot; id=&quot;монтирование_нового_iso-образа_в_cd-привод_hyper-v_для_tom_2&quot;&gt;6.3 Монтирование нового ISO-образа в CD-привод Hyper-V (для tom_2)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Открой Диспетчер Hyper-V.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Выбери изолированную виртуальную машину tom_2.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Нажми Параметры (Settings) → vIDE-контроллер или SCSI-контроллер (в зависимости от поколения ВМ Gen1/Gen2).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Выбери Накопитель DVD (DVD Drive).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Установи переключатель в положение Файл образа (ISO) (Image file).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Нажми Обзор (Browse) и укажи путь к скачанному файлу C:\ISO\ARCH_202605.iso.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Нажми Применить (Apply) и запусти ВМ tom_2.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;6.3 \u041c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e ISO-\u043e\u0431\u0440\u0430\u0437\u0430 \u0432 CD-\u043f\u0440\u0438\u0432\u043e\u0434 Hyper-V (\u0434\u043b\u044f tom_2)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u043d\u043e\u0432\u043e\u0433\u043e_iso-\u043e\u0431\u0440\u0430\u0437\u0430_\u0432_cd-\u043f\u0440\u0438\u0432\u043e\u0434_hyper-v_\u0434\u043b\u044f_tom_2&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:104,&amp;quot;secid&amp;quot;:42,&amp;quot;range&amp;quot;:&amp;quot;59388-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 03 Jun 2026 04:31:42 +0000</pubDate>
        </item>
        <item>
            <title>arhiv_29.05.2026_08.28</title>
            <link>https://wwoss.ru/doku.php?id=arhiv_29.05.2026_08.28&amp;rev=1780032540</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;сборка_headless_arch_iso_с_webui-инсталлятором_и_управлением&quot;&gt;Сборка Headless Arch ISO с WebUI-инсталлятором и управлением&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0431\u043e\u0440\u043a\u0430 Headless Arch ISO \u0441 WebUI-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0431\u043e\u0440\u043a\u0430_headless_arch_iso_\u0441_webui-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u043e\u043c_\u0438_\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-107&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;вводные_данные_и_архитектура_стенда&quot;&gt;1. Вводные данные и Архитектура Стенда&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1. \u0412\u0432\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0421\u0442\u0435\u043d\u0434\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0432\u043e\u0434\u043d\u044b\u0435_\u0434\u0430\u043d\u043d\u044b\u0435_\u0438_\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430_\u0441\u0442\u0435\u043d\u0434\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;108-189&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;термины_и_определения&quot;&gt;Термины и определения&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Ubuntu Server&lt;/strong&gt; — это специализированная операционная система с открытым исходным кодом от компании Canonical, разработанная для работы на серверах, в облаках и центрах обработки данных. В отличие от версии для ПК, по умолчанию она не имеет графического интерфейса и полностью управляется через командную строку.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Arch (Arch Linux)&lt;/strong&gt; — это популярный, легковесный дистрибутив Linux, созданный для опытных пользователей. Он предлагает «чистую» систему без предустановленного лишнего ПО, предоставляя полный контроль над настройками, и использует модель обновлений rolling release (постоянные обновления вместо редких глобальных версий).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Headless Arch ISO&lt;/strong&gt; — это модифицированный образ установочного диска Arch Linux, который автоматически запускает SSH-сервер и разрешает удаленное подключение без физического монитора и клавиатуры. Это позволяет устанавливать ОС на сервер или виртуальную машину полностью по сети с другого компьютера.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Hyper-V&lt;/strong&gt; — это встроенная система аппаратной виртуализации от Microsoft. Она позволяет создавать изолированные виртуальные машины (ВМ) на одном компьютере. &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;ISO-образ&lt;/strong&gt; (файл с расширением .iso) — это цифровой архив, представляющий собой точную, побайтовую копию («слепок») диска (CD, DVD или Blu-Ray).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;UUID&lt;/strong&gt; (Universally Unique Identifier) — это универсальный 128-битный уникальный идентификатор, который файловая система автоматически присваивает диску или разделу при форматировании. &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;LABEL&lt;/strong&gt; (global volume label) — это понятное человеку имя, присвоенное разделу жесткого диска или логическому тому.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Sudo&lt;/strong&gt; (Superuser Do) — это утилита, позволяющая обычному пользователю выполнять команды с правами администратора (root).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Pacman&lt;/strong&gt; (Package Manager) — это официальный консольный менеджер пакетов, разработанный специально для Arch Linux. Он выполняет роль главного «инструментария» для установки, удаления, обновления и отслеживания программ в системе.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;sda&lt;/strong&gt; / &lt;strong&gt;sdb&lt;/strong&gt; (SCSI Disk) — это системные имена для ваших физических накопителей,где a, b, c — латинские буквы, обозначающие порядок, в котором система обнаружила диски.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0422\u0435\u0440\u043c\u0438\u043d\u044b \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0442\u0435\u0440\u043c\u0438\u043d\u044b_\u0438_\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;190-3858&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;назначение_headless_arch_iso-images&quot;&gt;1.1. Назначение Headless Arch ISO-images&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
 цели создания автономного Headless-образа для серверов «вслепую» without Internet.
реальный headless-сервер - без интернета и без монитора.(supermicro, 2 none-name (старый и новый) и старый HP) &lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;наша_цель&quot;&gt;Наша цель:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
собрать новый, полностью универсальный ISO-образ, который будет находить флешку не по жесткому UUID, а по глобальной метке тома (LABEL=ARCH_202605).&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1.1. \u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 Headless Arch ISO-images&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435_headless_arch_iso-images&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3859-4502&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;конфигурация_и_минимальные_требования_к_оборудованию&quot;&gt;1.2. Конфигурация и минимальные требования к оборудованию&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;рабочая_станция_desktop&quot;&gt;1.2.1. Рабочая станция (DeskTop)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;div class=&quot;table sectionedit6&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;CPU&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://www.amd.com/en/support/downloads/drivers.html/processors/ryzen/ryzen-3000-series/amd-ryzen-7-3700x.html&quot; class=&quot;urlextern&quot; title=&quot;https://www.amd.com/en/support/downloads/drivers.html/processors/ryzen/ryzen-3000-series/amd-ryzen-7-3700x.html&quot; rel=&quot;ugc nofollow&quot;&gt;AMD Ryzen 7 3700X 8-Core Processor (3.59GHz)&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;RAM DDR4 48.0 &lt;abbr title=&quot;Gigabyte&quot;&gt;GB&lt;/abbr&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;AMD Radeon R7 2x8GB 2666 &lt;abbr title=&quot;Megahertz&quot;&gt;MHz&lt;/abbr&gt; (&lt;a href=&quot;https://amd-memory.com/shop/r748g2606u2s-u/&quot; class=&quot;urlextern&quot; title=&quot;https://amd-memory.com/shop/r748g2606u2s-u/&quot; rel=&quot;ugc nofollow&quot;&gt;R748G2606U2S-U&lt;/a&gt;) &lt;br/&gt;
 AMD Radeon R7 2x16GB 2666 &lt;abbr title=&quot;Megahertz&quot;&gt;MHz&lt;/abbr&gt; (&lt;a href=&quot;https://amd-memory.com/shop/r7416g2606u2s-uo/&quot; class=&quot;urlextern&quot; title=&quot;https://amd-memory.com/shop/r7416g2606u2s-uo/&quot; rel=&quot;ugc nofollow&quot;&gt;R7416G2606U2S-U&lt;/a&gt;)&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Motherboard&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://www.aorus.com/motherboards/b550-aorus-elite-v2-rev-10-11/Specification&quot; class=&quot;urlextern&quot; title=&quot;https://www.aorus.com/motherboards/b550-aorus-elite-v2-rev-10-11/Specification&quot; rel=&quot;ugc nofollow&quot;&gt;GIGABYTE B550 AORUS ELITE V2&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Solid state drive&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Gigabyte Aorus Gen4 5000E M.2 5000/3800MB/s(R/W) (&lt;a href=&quot;https://www.gigabyte.com/SSD/AORUS-Gen4-5000E-SSD-500GB&quot; class=&quot;urlextern&quot; title=&quot;https://www.gigabyte.com/SSD/AORUS-Gen4-5000E-SSD-500GB&quot; rel=&quot;ugc nofollow&quot;&gt;AG450E500G-G&lt;/a&gt;)&lt;br/&gt;
 Gigabyte Gen4 4000E M.2 3600/3000MB/s(R/W) (&lt;a href=&quot;https://www.gigabyte.com/SSD/GIGABYTE-Gen4-4000E-SSD-500GB&quot; class=&quot;urlextern&quot; title=&quot;https://www.gigabyte.com/SSD/GIGABYTE-Gen4-4000E-SSD-500GB&quot; rel=&quot;ugc nofollow&quot;&gt;G440E500G&lt;/a&gt;)&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Flash drive&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Smartbuy Crown 8 ГБ USB 3.1 (&lt;a href=&quot;https://smartbuy-russia.ru/catalog/nositeli_informatsii/flesh_nakopiteli_usb/usb_3_0_3_1_nakopitel_smartbuy_008_gb_seriya_crown_tyemno_siniy_sb8gbcrw_bl/&quot; class=&quot;urlextern&quot; title=&quot;https://smartbuy-russia.ru/catalog/nositeli_informatsii/flesh_nakopiteli_usb/usb_3_0_3_1_nakopitel_smartbuy_008_gb_seriya_crown_tyemno_siniy_sb8gbcrw_bl/&quot; rel=&quot;ugc nofollow&quot;&gt;SB8GBCRW-BL&lt;/a&gt;) &lt;br/&gt;
 Smartbuy Crown 16 ГБ USB 2.0 (&lt;a href=&quot;https://smartbuy-russia.ru/catalog/nositeli_informatsii/flesh_nakopiteli_usb/usb_2_0_nakopitel_smartbuy_016_gb_seriya_crown_belyy_sb16gbcrw_w/&quot; class=&quot;urlextern&quot; title=&quot;https://smartbuy-russia.ru/catalog/nositeli_informatsii/flesh_nakopiteli_usb/usb_2_0_nakopitel_smartbuy_016_gb_seriya_crown_belyy_sb16gbcrw_w/&quot; rel=&quot;ugc nofollow&quot;&gt;SB16GBCRW-W&lt;/a&gt;)&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Operating system&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://ru.wikipedia.org/wiki/Windows_10&quot; class=&quot;urlextern&quot; title=&quot;https://ru.wikipedia.org/wiki/Windows_10&quot; rel=&quot;ugc nofollow&quot;&gt;Microsoft Windows 10&lt;/a&gt; Pro 1909 (19H2) Build 18363.476 x64&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Virtual machine&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Microsoft &lt;a href=&quot;https://ru.wikipedia.org/wiki/Hyper-V&quot; class=&quot;urlextern&quot; title=&quot;https://ru.wikipedia.org/wiki/Hyper-V&quot; rel=&quot;ugc nofollow&quot;&gt;Hyper-V&lt;/a&gt; Manager 10.0.18362.1]&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Remote ssh client&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://putty.org.ru/&quot; class=&quot;urlextern&quot; title=&quot;https://putty.org.ru/&quot; rel=&quot;ugc nofollow&quot;&gt;PuTTY&lt;/a&gt; 64bit 0.84 not portable&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Dev environment&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://archlinux.org/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/&quot; rel=&quot;ugc nofollow&quot;&gt;Arch linux x86_64 2026.05.01&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Code editor&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://notepad-plus-plus.org/&quot; class=&quot;urlextern&quot; title=&quot;https://notepad-plus-plus.org/&quot; rel=&quot;ugc nofollow&quot;&gt;Notepad++ v8.9.6.1&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Web browser&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://www.google.com/chrome/&quot; class=&quot;urlextern&quot; title=&quot;https://www.google.com/chrome/&quot; rel=&quot;ugc nofollow&quot;&gt;Google Chrome&lt;/a&gt; 148.0.7778.179 64 bit / &lt;a href=&quot;https://www.firefox.com/&quot; class=&quot;urlextern&quot; title=&quot;https://www.firefox.com/&quot; rel=&quot;ugc nofollow&quot;&gt;Mozilla Firefox&lt;/a&gt; 151.0.2 64-bit / Opera One  131.0.5877.74&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Wiki system&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/&quot; rel=&quot;ugc nofollow&quot;&gt;Dokuwiki&lt;/a&gt; Librarian 2025-05-14b&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;4675-6548&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h4 id=&quot;рекомендуемая_рабочая_станция&quot;&gt;1.2.3. Рекомендуемая рабочая станция&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Конфигурация вашего оборудавания будет соответственно отличаться, но это так-же будет работать, заняв больше времени при установке и рендере карт на устройстве с минимальными параметрами:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Motherboard &amp;gt; virtualization support  &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CPU &amp;gt; 4 ядер&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RAM &amp;gt; 4Gb&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HDD &amp;gt; 300Mb&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt; &amp;gt; Windows 10 (Pro) c Hyper-V&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;тестовые_сервера&quot;&gt;1.2.4. Тестовые сервера&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В данном руководстве установка программного обеспечения производиться на оборудование следующей конфигурации: 
&lt;/p&gt;
&lt;div class=&quot;table sectionedit7&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;CPU&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=hardware:cpu_amd_epyc_7551p_oem&quot; class=&quot;wikilink1&quot; title=&quot;hardware:cpu_amd_epyc_7551p_oem&quot; data-wiki-id=&quot;hardware:cpu_amd_epyc_7551p_oem&quot;&gt;AMD EPYC™ 7551P OEM&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Motherboard&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=hardware:motherboard_supermicro_h11ssl-i&quot; class=&quot;wikilink1&quot; title=&quot;hardware:motherboard_supermicro_h11ssl-i&quot; data-wiki-id=&quot;hardware:motherboard_supermicro_h11ssl-i&quot;&gt;Supermicro MBD-H11SSL-I&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Solid state drive&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=hardware:m2_ssd_samsung_970_evo_plus&quot; class=&quot;wikilink1&quot; title=&quot;hardware:m2_ssd_samsung_970_evo_plus&quot; data-wiki-id=&quot;hardware:m2_ssd_samsung_970_evo_plus&quot;&gt;Raid5 1tb M.2 Samsung 970 EVO Plus&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;RAM 512.0 &lt;abbr title=&quot;Gigabyte&quot;&gt;GB&lt;/abbr&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=hardware:ddr4_ecc_reg_64gb&quot; class=&quot;wikilink1&quot; title=&quot;hardware:ddr4_ecc_reg_64gb&quot; data-wiki-id=&quot;hardware:ddr4_ecc_reg_64gb&quot;&gt;DDR4 3200MHz DIMM ECC Reg Micron&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;7359-7680&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h4 id=&quot;рекомендуемая_сервер&quot;&gt;1.2.5. Рекомендуемая сервер&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Конфигурация вашего оборудавания будет соответственно отличаться, но это так-же будет работать, заняв больше времени при установке и рендере карт на устройстве с минимальными параметрами:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Motherboard &amp;gt; virtualization support  &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CPU &amp;gt; 2 ядер (x86_64 VT-x/AMD-V)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RAM &amp;gt; 4Gb&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HDD &amp;gt; 30Gb&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1.2. \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f_\u0438_\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435_\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f_\u043a_\u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;4503-8198&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;схема_распределения_тестовой_среды&quot;&gt;1.3. Схема распределения тестовой среды&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;распределение_ролей_при_работе_в_hyper-v_virtual_machine&quot;&gt;1.3.1. Распределение ролей при работе в Hyper-V (Virtual Machine)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;tom_1&lt;/strong&gt; - эталонный хост, основная тестовая ВМ в Hyper-V для сборки iso образа, с доступом в интернет, с рабочим arch linux, на котором разверачивается Nginx (порт 7000) и работает SSH для PuTTY, созданы пользователи root и eva и им заданы пороли.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;arch-flash&lt;/strong&gt; - виртуальный диск ы Hyper-V (носитель с записанным iso образом), куда мы через rufus записываем, созданный нами ISO-образ на tom_1&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;tom_2&lt;/strong&gt; - изолированный виртуальный хост, ВМ в Hyper-V без доступа в интернет, куда мы подключим arch-flash и развернем arch linux, на котором развернут Nginx (порт 7000) и работает SSH для PuTTY, созданы пользователи root и eva и им заданы пороли.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Добавление ролей при работе c физическим железом&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;usb-arch-server&lt;/strong&gt; - физический usb носитель&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;arch-server&lt;/strong&gt; - физический сервер (supermicro/hp/no-name)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;администраторы_сервера&quot;&gt;1.3.2. Администраторы сервера&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; root - по умолчанию в Arch linux&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; eva - из установленного Arch linux&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; admin - новый создаваемый администратор (замена eva)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1.3. \u0421\u0445\u0435\u043c\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u0441\u0440\u0435\u0434\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0445\u0435\u043c\u0430_\u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f_\u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439_\u0441\u0440\u0435\u0434\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;8199-9921&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;выравнивание_версий_и_подготовка_окружения_на_tom_1&quot;&gt;2. Выравнивание версий и подготовка окружения на tom_1&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Чтобы предотвратить конфликт драйверов и панику модуля ZRAM на ранних секундах загрузки флешки, ядро загрузчика и модули внутри SquashFS-слепка должны совпадать символ в символ.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2. \u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0439 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043d\u0430 tom_1&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435_\u0432\u0435\u0440\u0441\u0438\u0439_\u0438_\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f_\u043d\u0430_tom_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;9922-10345&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;тотальное_обновление_и_фиксация_ядра_хоста&quot;&gt;2.1. Тотальное обновление и фиксация ядра хоста&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;обновление_ядра_хоста&quot;&gt;2.1.1. Обновление  ядра хоста&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Зайдите на чистый tom_1 по SSH под пользователем eva и обновите индекс пакетов и само ядро хоста:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-Syu&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_186.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_186.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_186.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;фиксация_эталонной_версии_ядра&quot;&gt;2.1.2. Фиксация эталонной версии ядра&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Посмотрите на строчку генерации образа виртуального диска:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;=⇒ Starting build: &amp;#039;7.0.10-arch1-1&amp;#039;&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Наша новая зафиксированная версия ядра: 7.0.10-arch1-1.&lt;br/&gt;

Обратите внимание, как утилита mkinitcpio автоматически пересобрала не просто обычный виртуальный диск, а создала единый объединенный образ:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Creating unified kernel image: &amp;#039;/boot/EFI/Linux/arch-linux.efi&amp;#039;&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_187.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_187.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_187.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Это означает, что на tom_1 теперь развернута абсолютно чистая, монолитная, современная база ядра. Конфликт версий официально предотвращен еще на этапе фундамента.&lt;br/&gt;

Поскольку в процессе этого тотального обновления pacman физически заменил старые файлы ядра в каталоге /boot/ на новые, текущее запущенное в оперативной памяти tom_1 ядро всё еще имеет старый индекс, а на диске уже лежат файлы версии 7.0.9-arch2-1.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;перезагрузка_системы&quot;&gt;2.1.2.1. Перезагрузка системы&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Чтобы система tom_1 полностью приняла новое ядро и зафиксировала его в оперативной памяти, нам нужно отправить виртуалку в чистую перезагрузку.&lt;br/&gt;

Прямо в консоли PuTTY выполните команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; reboot&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_98.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_98.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_98.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Подождите около 20–30 секунд, пока ВМ tom_1 сделает круг перезапуска в Hyper-V.&lt;br/&gt;

Подключитесь к tom_1 заново через PuTTY под пользователем eva
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;загрузка_и_проверка&quot;&gt;2.1.3. Загрузка и проверка&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Как только зайдете обратно, выполните команду сверки
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;uname&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_188.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_188.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_188.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Убедимся, что в ОЗУ хоста теперь честно светится 7.0.10-arch1-1, и только после этого медленно и аккуратно двинемся дальше по нашему новому руководству.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2.1. \u0422\u043e\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u044f \u044f\u0434\u0440\u0430 \u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0442\u043e\u0442\u0430\u043b\u044c\u043d\u043e\u0435_\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435_\u0438_\u0444\u0438\u043a\u0441\u0430\u0446\u0438\u044f_\u044f\u0434\u0440\u0430_\u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;10346-13602&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;проверка_и_установка_по&quot;&gt;3. Проверка и установка ПО&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u041f\u041e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u0438_\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u043f\u043e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;13603-13660&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;проверка_по&quot;&gt;3.1. Проверка ПО&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/core/x86_64/linux/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/core/x86_64/linux/&quot; rel=&quot;ugc nofollow&quot;&gt;linux&lt;/a&gt;: ядро операционной системы.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/core/any/linux-firmware/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/core/any/linux-firmware/&quot; rel=&quot;ugc nofollow&quot;&gt;linux-firmware&lt;/a&gt;: набор микропрограмм (драйверов) для компьютерного железа.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wiki.archlinux.org/title/Systemd-boot/systemd-boot&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Systemd-boot/systemd-boot&quot; rel=&quot;ugc nofollow&quot;&gt;https://wiki.archlinux.org/title/Systemd-boot/systemd-boot&lt;/a&gt;: простой и быстрый загрузчик, встроенный в системную среду systemd&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/core/x86_64/grub/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/core/x86_64/grub/&quot; rel=&quot;ugc nofollow&quot;&gt;grub&lt;/a&gt;: популярный универсальный загрузчик&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_linux&quot;&gt;3.1.1. Проверка пакета linux&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; linux&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_189.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_189.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_189.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(В выводе отобразилась подробная информация об уже установленном в системе пакете ядра linux, его версию (7.0.10.arch1-1), архитектуру (x86_64) и т.д.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_linux-firmware&quot;&gt;3.1.2. Проверка пакета linux-firmware&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=4&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; linux-firmware&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_190.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_190.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_190.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(В выводе отобразилась подробная информация об уже установленном пакете прошивок linux-firmware, в частности информацию о файлах встроенного программного обеспечения (микрокод/прошивки) для работы различного оборудования — например, Wi-Fi адаптеров, видеокарт, звуковых плат и Bluetooth-модулей.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3.1. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u041f\u041e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u043f\u043e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;13661-15498&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;проверка_загрузчика&quot;&gt;3.1.3. Проверка загрузчика&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Мы можем проверить это за с помощью утилиты bootctl
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=5&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;bootctl status&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_191.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_191.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_191.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;Если вы увидите детальную информацию с текстом вроде «Features: ✓ boot-info» и версиями в строках «Product: systemd-boot», значит, ваша система использует systemd-boot.&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;Если команда выдаст ошибку или укажет, что система загружена не в режиме UEFI (например, «System is not booted with EFI»), то у вас используется классический BIOS/MBR загрузчик, либо другой менеджер загрузки.&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;em&gt;(Для выхода CTRL+C)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_grub_в_var_cache_pacman_pkg&quot;&gt;Проверка пакета grub в  /var/cache/pacman/pkg/&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверить наличие кэшированных файлов пакета grub можно с помощью стандартных команд терминала для поиска файлов. pacman хранит в этом каталоге скачанные архивные файлы с расширением .pkg.tar.zst (или .pkg.tar.xz).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=6&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; grub&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_193.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_193.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_193.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(выведет список всех файлов в кэше, в имени которых содержится слово «grub». Если пакет там есть, вы увидите файлы вида grub-2.12-1-x86_64.pkg.tar.zst, иначе пустой вывод)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;скачивание_пакета_в_кэш&quot;&gt;Скачивание пакета в кэш&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Для загрузки пакета без установки используйте ключ -Sw. Также сразу скачать сопутствующие пакеты, которые понадобятся для настройки GRUB:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=7&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-Sw&lt;/span&gt; grub efibootmgr os-prober&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_194.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_194.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_194.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_загруженного_пакета_grub_с_зависимостями&quot;&gt;Проверка загруженного пакета grub с зависимостями&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Чтобы проверить наличие всех трех пакетов в кэше одной командой, используйте расширенный grep (grep -E) и вертикальную черту | в качестве разделителя «ИЛИ»
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=8&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;grub|efibootmgr|os-prober&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_195.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_195.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_195.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3.1.3. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;15499-18348&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit14&quot; id=&quot;установка_необходимых_пакетов&quot;&gt;4. Установка необходимых пакетов&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445_\u043f\u0430\u043a\u0435\u0442\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;18349-18421&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit15&quot; id=&quot;пакет_редактора_nano&quot;&gt;4.1. Пакет редактора nano&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Пакет nano в Arch Linux — это официальный пакет, который содержит одноимённый консольный текстовый редактор &lt;a href=&quot;https://wiki.archlinux.org/title/Nano_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Nano_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; rel=&quot;ugc nofollow&quot;&gt;nano&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_nano_в_системе&quot;&gt;4.1.1. Проверка пакета nano в системе&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=9&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_196.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_196.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_196.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(В выводе отобразилась подробная информация об уже установленном пакете редактора nano.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_nano_в_var_cache_pacman_pkg&quot;&gt;4.1.2. Проверка пакета nano в  /var/cache/pacman/pkg/&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверить наличие кэшированных файлов пакета nano можно с помощью стандартных команд терминала для поиска файлов. pacman хранит в этом каталоге скачанные архивные файлы с расширением .pkg.tar.zst (или .pkg.tar.xz).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=10&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_197.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_197.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_197.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что в кэше вашего пакетного менеджера успешно найдены файлы текстового редактора nano версии 9.0-1.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.1. \u041f\u0430\u043a\u0435\u0442 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 nano&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0430\u043a\u0435\u0442_\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430_nano&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;18422-19951&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit16&quot; id=&quot;пакет_openssh&quot;&gt;4.2. Пакет OpenSSH&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Пакет &lt;a href=&quot;https://wiki.archlinux.org/title/OpenSSH_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/OpenSSH_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; rel=&quot;ugc nofollow&quot;&gt;OpenSSH&lt;/a&gt; в Arch Linux — это набор программ для безопасного удаленного доступа и управления компьютером по сети (через протокол SSH). 
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_openssh_в_системе&quot;&gt;4.2.1. Проверка пакета openssh в системе&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=11&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; openssh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_198.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_198.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_198.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(В выводе отобразилась подробная информация об уже установленном пакете openssh.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_openssh_в_var_cache_pacman_pkg&quot;&gt;4.2.2. Проверка пакета openssh в  /var/cache/pacman/pkg/&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверить наличие кэшированных файлов пакета nano можно с помощью стандартных команд терминала для поиска файлов. pacman хранит в этом каталоге скачанные архивные файлы с расширением .pkg.tar.zst (или .pkg.tar.xz).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=12&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; openssh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_199.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_199.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_199.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что в кэше вашего пакетного менеджера успешно найдены файлы пакета openssh версии 10.3p1-1-x86_64.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.2. \u041f\u0430\u043a\u0435\u0442 OpenSSH&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0430\u043a\u0435\u0442_openssh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:11,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;19952-21492&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit17&quot; id=&quot;пакет_samba&quot;&gt;4.3. Пакет Samba&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Пакет &lt;a href=&quot;https://wiki.archlinux.org/title/Samba&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Samba&quot; rel=&quot;ugc nofollow&quot;&gt;samba&lt;/a&gt; в Arch Linux — это реализация сетевого протокола SMB/CIFS. Он позволяет обмениваться файлами и принтерами между операционными системами Linux, Windows и macOS. 
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_samba_в_системе&quot;&gt;4.3.1. Проверка пакета samba в системе&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=13&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; samba&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_200.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_200.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_200.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что пакет samba в данный момент не установлен в вашей системе.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_пакета_samba&quot;&gt;4.3.2. Установка пакета samba&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Скачивание и интеграция пакета в систему с автоматическим подтверждением (флаг –noconfirm) и пропуском уже установленных актуальных версий (–needed).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=14&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--needed&lt;/span&gt; samba&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_201.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_201.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_201.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_установки_пакета_samba&quot;&gt;4.3.3. Проверка установки пакета samba&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Верификация целостности установленных файлов пакета и их наличия в системе.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=15&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qk&lt;/span&gt; samba&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_202.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_202.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_202.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что пакет samba успешно установлен в системе, а все его файлы находятся на своих местах и не повреждены.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;разбор_строки_вывода&quot;&gt;Разбор строки вывода:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;1195 total files&lt;/strong&gt; — пакет Samba содержит в себе ровно 1195 файлов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;0 missing files&lt;/strong&gt; — утерянных или отсутствующих файлов нет. Все 1195 компонентов успешно найдены в системе.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_samba_в_var_cache_pacman_pkg&quot;&gt;4.3.4. Проверка пакета samba в  /var/cache/pacman/pkg/&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверить наличие кэшированных файлов пакета nano можно с помощью стандартных команд терминала для поиска файлов. pacman хранит в этом каталоге скачанные архивные файлы с расширением .pkg.tar.zst (или .pkg.tar.xz).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=16&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; samba&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_203.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_203.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_203.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что в локальном кэше вашего пакетного менеджера успешно сохранен установочный архив пакета samba версии 4.24.2-1.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.3. \u041f\u0430\u043a\u0435\u0442 Samba&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0430\u043a\u0435\u0442_samba&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:13,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;21493-24466&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit18&quot; id=&quot;пакет_nginx&quot;&gt;4.4. Пакет nginx&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Пакет &lt;a href=&quot;https://wiki.archlinux.org/title/Nginx_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Nginx_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; rel=&quot;ugc nofollow&quot;&gt;nginx&lt;/a&gt; в Arch Linux — это стандартный пакет, содержащий популярный высокопроизводительный веб-сервер и обратный прокси-сервер. Он используется для обработки HTTP-запросов, раздачи статических файлов, кэширования и перенаправления трафика.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_nginx_в_системе&quot;&gt;4.4.1. Проверка пакета nginx в системе&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=17&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_204.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_204.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_204.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод содержит подробные метаданные об уже установленном в вашей системе веб-сервере nginx)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_установки_пакета_nginx&quot;&gt;4.4.2.Проверка установки пакета nginx&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Верификация целостности установленных файлов пакета и их наличия в системе.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=18&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qk&lt;/span&gt; nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_205.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_205.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_205.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что пакет nginx успешно установлен в системе, а все его файлы находятся на своих местах и не повреждены.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;разбор_строки_вывода1&quot;&gt;Разбор строки вывода:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;47 total files&lt;/strong&gt; — пакет nginx содержит в себе ровно 47 файлов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;0 missing files&lt;/strong&gt; — утерянных или отсутствующих файлов нет. Все 47 компонентов успешно найдены в системе.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_nginx_в_var_cache_pacman_pkg&quot;&gt;4.4.3. Проверка пакета nginx в  /var/cache/pacman/pkg/&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверить наличие кэшированных файлов пакета nginx можно с помощью стандартных команд терминала для поиска файлов. pacman хранит в этом каталоге скачанные архивные файлы с расширением .pkg.tar.zst (или .pkg.tar.xz).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=19&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_206.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_206.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_206.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что в кэше сохранены установочные файлы для двух разных версий веб-сервера nginx. Предыдущая версия (1.30.1). Текущая установленная версия (1.30.2))&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.4. \u041f\u0430\u043a\u0435\u0442 nginx&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0430\u043a\u0435\u0442_nginx&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:17,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;24467-27327&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit19&quot; id=&quot;пакет_php-fpm&quot;&gt;4.5. Пакет php-fpm&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
В Arch Linux пакет &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/php-fpm/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/php-fpm/&quot; rel=&quot;ugc nofollow&quot;&gt;php-fpm&lt;/a&gt; (FastCGI Process Manager) — это официальный компонент, который отвечает за обработку PHP-кода на сервере. По сути, это независимый менеджер фоновых процессов, который принимает запросы от веб-сервера (например, Nginx или Apache), выполняет PHP-скрипты и возвращает готовые страницы.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_php-fpm_в_системе&quot;&gt;4.5.1. Проверка пакета php-fpm в системе&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=20&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_207.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_207.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_207.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что пакет php-fpm в данный момент не установлен в вашей системе.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_пакета_php-fpm&quot;&gt;4.5.2. Установка пакета php-fpm&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Скачивание и интеграция пакета в систему с автоматическим подтверждением (флаг –noconfirm) и пропуском уже установленных актуальных версий (–needed).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=21&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--needed&lt;/span&gt; php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_208.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_208.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_208.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_установки_пакета_php-fpm&quot;&gt;4.5.3. Проверка установки пакета php-fpm&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Верификация целостности установленных файлов пакета и их наличия в системе.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=22&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qk&lt;/span&gt; php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_209.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_209.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_209.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что пакет php-fpm успешно установлен в системе, а все его файлы находятся на своих местах и не повреждены.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;разбор_строки_вывода2&quot;&gt;Разбор строки вывода:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;21 total files&lt;/strong&gt; — пакет php-fpm содержит в себе ровно 21 файлов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;0 missing files&lt;/strong&gt; — утерянных или отсутствующих файлов нет. Все 21 компонентов успешно найдены в системе.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_php-fpm_в_var_cache_pacman_pkg&quot;&gt;4.5.4. Проверка пакета php-fpm в  /var/cache/pacman/pkg/&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверить наличие кэшированных файлов пакета php-fpm можно с помощью стандартных команд терминала для поиска файлов. pacman хранит в этом каталоге скачанные архивные файлы с расширением .pkg.tar.zst (или .pkg.tar.xz).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=23&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_210.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_210.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_210.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что в кэше пакетов сохранен готовый к установке архив php-fpm версии 8.5.6-1.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.5. \u041f\u0430\u043a\u0435\u0442 php-fpm&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0430\u043a\u0435\u0442_php-fpm&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:20,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;27328-30597&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit20&quot; id=&quot;пакет_squashfs-tools&quot;&gt;4.6. Пакет squashfs-tools&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Пакет &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/squashfs-tools/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/squashfs-tools/&quot; rel=&quot;ugc nofollow&quot;&gt;squashfs-tools&lt;/a&gt; в Arch Linux — это набор утилит командной строки для создания, распаковки и модификации сжатых файловых систем SquashFS.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_squashfs-tools_в_системе&quot;&gt;4.6.1. Проверка пакета squashfs-tools в системе&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=24&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; squashfs-tools&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_211.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_211.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_211.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что пакет squashfs-tools в данный момент не установлен в вашей системе.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_пакета_squashfs-tools&quot;&gt;4.6.2. Установка пакета squashfs-tools&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Скачивание и интеграция пакета в систему с автоматическим подтверждением (флаг –noconfirm) и пропуском уже установленных актуальных версий (–needed).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=25&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--needed&lt;/span&gt; squashfs-tools&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_212.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_212.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_212.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_установки_пакета_squashfs-tools&quot;&gt;4.6.3. Проверка установки пакета squashfs-tools&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Верификация целостности установленных файлов пакета и их наличия в системе.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=26&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qk&lt;/span&gt; squashfs-tools&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_213.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_213.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_213.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что пакет squashfs-tools успешно установлен в системе, а все его файлы находятся на своих местах и не повреждены.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;разбор_строки_вывода3&quot;&gt;Разбор строки вывода:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;31 total files&lt;/strong&gt; — пакет squashfs-tools содержит в себе ровно 31 файлов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;0 missing files&lt;/strong&gt; — утерянных или отсутствующих файлов нет. Все 31 компонентов успешно найдены в системе.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_squashfs-tools_в_var_cache_pacman_pkg&quot;&gt;4.6.4. Проверка пакета squashfs-tools в  /var/cache/pacman/pkg/&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверить наличие кэшированных файлов пакета squashfs-tools можно с помощью стандартных команд терминала для поиска файлов. pacman хранит в этом каталоге скачанные архивные файлы с расширением .pkg.tar.zst (или .pkg.tar.xz).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=27&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; squashfs-tools&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_214.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_214.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_214.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что в локальном кэше вашего пакетного менеджера сохранен установочный архив пакета squashfs-tools версии 4.7.5-1.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.6. \u041f\u0430\u043a\u0435\u0442 squashfs-tools&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0430\u043a\u0435\u0442_squashfs-tools&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:24,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;30598-33748&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit21&quot; id=&quot;пакет_zram-generator&quot;&gt;4.7. Пакет zram-generator&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.archlinux.org/title/Zram_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Zram_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; rel=&quot;ugc nofollow&quot;&gt;zram-generator&lt;/a&gt; в Arch Linux — это компонент, который автоматически создает сжатые блочные устройства в оперативной памяти (RAM) и настраивает их в качестве пространства подкачки (swap) с помощью системного менеджера systemd.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_zram-generator_в_системе&quot;&gt;4.7.1. Проверка пакета zram-generator в системе&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=28&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_215.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_215.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_215.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод содержит подробные метаданные об уже установленном в вашей системе пакете zram-generator версии 1.2.1-1.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_установки_пакета_zram-generator&quot;&gt;4.7.2. Проверка установки пакета zram-generator&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Верификация целостности установленных файлов пакета и их наличия в системе.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=29&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qk&lt;/span&gt; zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_216.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_216.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_216.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что пакет zram-generator полностью целостен и все его компоненты находятся на своих местах в операционной системе.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;разбор_строки_вывода4&quot;&gt;Разбор строки вывода:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;19 total files&lt;/strong&gt; — пакет содержит в себе ровно 19 файлов (исполняемые файлы, файлы конфигурации systemd, документация).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;0 missing files&lt;/strong&gt; — утерянных, поврежденных или случайно удаленных файлов не обнаружено. Все 19 компонентов успешно найдены в системе.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_zram-generator_в_var_cache_pacman_pkg&quot;&gt;4.7.3. Проверка пакета zram-generator в  /var/cache/pacman/pkg/&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверить наличие кэшированных файлов пакета zram-generator можно с помощью стандартных команд терминала для поиска файлов. pacman хранит в этом каталоге скачанные архивные файлы с расширением .pkg.tar.zst (или .pkg.tar.xz).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=30&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_217.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_217.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_217.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что в локальном кэше пакетов сохранен установочный архив версии пакета zram-generator, которая сейчас установлена у вас в системе.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.7. \u041f\u0430\u043a\u0435\u0442 zram-generator&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0430\u043a\u0435\u0442_zram-generator&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:28,&amp;quot;secid&amp;quot;:21,&amp;quot;range&amp;quot;:&amp;quot;33749-36790&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit22&quot; id=&quot;утилита_xorriso&quot;&gt;4.8. Утилита xorriso&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Утилита &lt;a href=&quot;https://man.archlinux.org/man/xorriso.1.en&quot; class=&quot;urlextern&quot; title=&quot;https://man.archlinux.org/man/xorriso.1.en&quot; rel=&quot;ugc nofollow&quot;&gt;xorriso&lt;/a&gt; в Arch Linux — это мощная консольная программа для создания, изменения и извлечения ISO-образов (файловых систем ISO 9660 с расширениями Rock Ridge), а также для записи данных и образов на оптические диски (CD, DVD, Blu-ray).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_утилиты_xorriso_в_системе&quot;&gt;4.8.1. Проверка утилиты xorriso в системе&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=31&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; xorriso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_218.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_218.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_218.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что утилита xorriso в данный момент не установлена в вашей системе.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_утилиты_xorriso&quot;&gt;4.8.2. Установка утилиты xorriso&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=32&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; xorriso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Система запросит подтверждение установки, нажмите Y и Enter).&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_219.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_219.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_219.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что вы успешно установили зависимости утилиты xorriso, являющтхся её основой)&lt;/em&gt;
&lt;br/&gt;

Менеджер пакетов pacman перед установкой xorriso установил необходимые для его работы библиотеки (libburn, libisofs, libisoburn).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_установки_утилиты_xorriso&quot;&gt;4.8.3. Проверка установки утилиты xorriso&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Верификация целостности установленных файлов пакета и их наличия в системе.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=33&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qk&lt;/span&gt; xorriso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_221.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_221.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_221.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод наглядно подтверждает, что утилита xorriso физически находится внутри пакета libisoburn, и все её файлы полностью целы.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;разбор_строки_вывода5&quot;&gt;Разбор строки вывода:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;libisoburn: 32 total files&lt;/strong&gt; — pacman автоматически перенаправил запрос на реальный пакет libisoburn, так как именно он отвечает за эту программу в Arch Linux.).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;0 missing files&lt;/strong&gt; — все 32 файла (включая саму команду xorriso) успешно найдены на вашем жестком диске. Ни один компонент не утерян и не.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_xorriso_в_var_cache_pacman_pkg&quot;&gt;4.8.4. Проверка пакета xorriso в  /var/cache/pacman/pkg/&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверить наличие кэшированных файлов пакета xorriso можно с помощью стандартных команд терминала для поиска файлов. pacman хранит в этом каталоге скачанные архивные файлы с расширением .pkg.tar.zst (или .pkg.tar.xz).
&lt;br/&gt;

Т.к. реальное имя пакета в системе — libisoburn, чтобы правильно проверить наличие установочных файлов в кэше, выполните поиск по ключевому слову isoburn:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=34&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; isoburn&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_222.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_222.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_222.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что в локальном кэше вашего пакетного менеджера успешно сохранен установочный архив пакета libisoburn (который и содержит в себе утилиту xorriso).)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверяем_версию_установленной_утилиты_xorriso&quot;&gt;4.8.5. Проверяем версию установленной утилиты xorriso&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=35&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;xorriso &lt;span class=&quot;re5&quot;&gt;--version&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_223.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_223.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_223.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что утилита xorriso успешно запущена, полностью исправна и готова к работе.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.8. \u0423\u0442\u0438\u043b\u0438\u0442\u0430 xorriso&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0442\u0438\u043b\u0438\u0442\u0430_xorriso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:31,&amp;quot;secid&amp;quot;:22,&amp;quot;range&amp;quot;:&amp;quot;36791-41169&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit23&quot; id=&quot;установка_дополнительных_пакетов&quot;&gt;5. Установка дополнительных пакетов&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В предыдущей главе, мы проверили и установили все основные пакеты и утилиты, необходимые нам для сборки кастомного iso образа сервера Arch linux, который будут собран и записан на физический USB - флеш накопитель, для установки системы на локальном сервере (Offline mode) в изолированной сети (air-gapped network).
&lt;br/&gt;

&lt;br/&gt;

Так как цель данного руководства - сборка полностью автомомного сервера с web-приложением для настройки сервера под любые задачи, мы загрузим в кэш pacman (/var/cache/pacman/pkg/) дополнительные пакеты, перечень которых вы можите изменить по своему усмотрению.  (&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:linux_server:arch_linux:arch_linux_installing_core_packages&quot; class=&quot;wikilink1&quot; title=&quot;software:linux_server:arch_linux:arch_linux_installing_core_packages&quot; data-wiki-id=&quot;software:linux_server:arch_linux:arch_linux_installing_core_packages&quot;&gt;см. список всех пакетов устанавливаемых при выполнении этого пункта&lt;/a&gt;).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;сохранение_в_кэш_дополнительного_по&quot;&gt;5.1. Сохранение в кэш дополнительного ПО&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Использум для этой цели скрипт, обернутый в subo cat « &amp;#039;&lt;abbr title=&quot;End of file&quot;&gt;EOF&lt;/abbr&gt;&amp;#039; для загрузки дополнительный пакетов с зависимостями в  arch linux в /var/cache/pacman/pkg/ с автоподтверждением и проверкой целосности каждого пакета, без установки в систему, с выводом в конце списка загруженных пакетов 
&lt;br/&gt;

Чтобы запустить весь этот процесс напрямую в консоли, скопируйте весь блок кода ниже, вставьте его в свой терминал и нажмите Enter. Команда сразу запросит пароль администратора и начнет выполнение:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=36&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;&amp;lt;&amp;lt; &#039;EOF&#039;
# Полный список ваших пакетов
PACKAGES=(
    btrfs-progs e2fsprogs mdadm lvm2 snapper inxi man-pages texinfo
    networkmanager dnsmasq
    pam libpam-google-authenticator qrencode ufw fail2ban certbot clamav
    apache php-apache mariadb phpmyadmin php
    nfs-utils bftpd rsync
    dokuwiki wordpress gitea
    minidlna mpd immich-go radicale opensmtpd
    code python feh libreoffice-fresh
    docker qemu-system-x86 kcron fzy
)
&amp;nbsp;
CACHE_DIR=&amp;quot;/var/cache/pacman/pkg&amp;quot;
&amp;nbsp;
echo &amp;quot;=== 1. Синхронизация баз данных пакетов ===&amp;quot;
pacman -Sy --noconfirm
&amp;nbsp;
echo -e &amp;quot;\n=== 2. Загрузка пакетов и их зависимостей (без установки) ===&amp;quot;
pacman -Sw --noconfirm --needed &amp;quot;${PACKAGES[@]}&amp;quot;
# -S: установка/загрузка
# -w: только скачивание (без установки)
# --noconfirm: автоподтверждение всех запросов
# --needed: не скачивать заново то, что уже есть актуального в кэше/системе
&amp;nbsp;
echo -e &amp;quot;\n=== 3. Проверка целостности архивов и сбор версий ===&amp;quot;
echo &amp;quot;----------------------------------------------------------------------&amp;quot;
printf &amp;quot;%-30s %-20s %s\n&amp;quot; &amp;quot;ПАКЕТ&amp;quot; &amp;quot;ВЕРСИЯ&amp;quot; &amp;quot;СТАТУС КЭША&amp;quot;
echo &amp;quot;----------------------------------------------------------------------&amp;quot;
&amp;nbsp;
ERRORS=0
&amp;nbsp;
for pkg in &amp;quot;${PACKAGES[@]}&amp;quot;; do
    # Получаем версию пакета из базы данных pacman
    VERSION=$(pacman -Si &amp;quot;$pkg&amp;quot; | awk -F&#039;: &#039; &#039;/^Version/ {print $2}&#039; | xargs)
&amp;nbsp;
    if [ -z &amp;quot;$VERSION&amp;quot; ]; then
        printf &amp;quot;%-30s %-20s %s\n&amp;quot; &amp;quot;$pkg&amp;quot; &amp;quot;---&amp;quot; &amp;quot;[НЕ НАЙДЕН В РЕПО]&amp;quot;
        ((ERRORS++))
        continue
    fi
&amp;nbsp;
    # Очищаем версию от эпохи (двоеточия) для сопоставления с именем файла
    CLEAN_VER=$(echo &amp;quot;$VERSION&amp;quot; | sed &#039;s/^[0-9]://&#039;)
&amp;nbsp;
    # Поиск архива в кэше загрузок
    PKG_FILE=$(ls &amp;quot;$CACHE_DIR&amp;quot; 2&amp;gt;/dev/null | grep -E &amp;quot;^${pkg}-${CLEAN_VER}-(x86_64|any)\.pkg\.tar\.zst$&amp;quot;)
&amp;nbsp;
    if [ -n &amp;quot;$PKG_FILE&amp;quot; ]; then
        # Проверка целостности структуры сжатого архива утилитой zstd
        if zstd -t &amp;quot;$CACHE_DIR/$PKG_FILE&amp;quot; &amp;amp;&amp;gt;/dev/null; then
            STATUS=&amp;quot;[OK] Архив цел&amp;quot;
        else
            STATUS=&amp;quot;[ОШИБКА] Поврежден&amp;quot;
            ((ERRORS++))
        fi
    else
        STATUS=&amp;quot;[ОТСУТСТВУЕТ]&amp;quot;
        ((ERRORS++))
    fi
&amp;nbsp;
    printf &amp;quot;%-30s %-20s %s\n&amp;quot; &amp;quot;$pkg&amp;quot; &amp;quot;$VERSION&amp;quot; &amp;quot;$STATUS&amp;quot;
done
&amp;nbsp;
echo &amp;quot;----------------------------------------------------------------------&amp;quot;
echo &amp;quot;Процесс завершен. Проблемных пакетов: $ERRORS&amp;quot;
EOF&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_224.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_224.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_224.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
В окне терминала пойдет загрузка перечня загружаемых пакетом, с выводом пакета, версии и проверкой целосности пакета
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_225.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_225.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_225.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что ваш скрипт успешно отработал и 95% запрошенных пакетов были успешно загружены и проверены в кэше.)&lt;/em&gt;
&lt;br/&gt;

Однако два пакета (docker и immich-go) не смогли скачаться, из-за чего в самом низу лога вывелось сообщение: «Процесс завершен. Проблемных пакетов: 2».
&lt;br/&gt;

При этом прокрутив ползунок кансоли, мы убеждаемся, что пакет docker загружен в кэш.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_228.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_228.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_228.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_docker_и_immich-go_в_кэш&quot;&gt;5.2. Проверка docker и immich-go в кэш&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=37&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;docker|immich-go&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_229.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_229.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_229.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что пакеты docker и immich-go успешно скачаны и находятся в локальном кэше вашего менеджера пакетов.)&lt;/em&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;5. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445_\u043f\u0430\u043a\u0435\u0442\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:36,&amp;quot;secid&amp;quot;:23,&amp;quot;range&amp;quot;:&amp;quot;41170-47831&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit24&quot; id=&quot;обновление_баз_кэша_и_системы&quot;&gt;6. Обновление баз, кэша и системы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;6. \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u0430\u0437, \u043a\u044d\u0448\u0430 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435_\u0431\u0430\u0437_\u043a\u044d\u0448\u0430_\u0438_\u0441\u0438\u0441\u0442\u0435\u043c\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:38,&amp;quot;secid&amp;quot;:24,&amp;quot;range&amp;quot;:&amp;quot;47832-47902&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit25&quot; id=&quot;обновление_баз_и_загрузка_всех_зависимостей_в_кэш&quot;&gt;6.1. Обновление баз и загрузка всех зависимостей в кэш&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Эта команда берет список всех файлов из вашей папки /var/cache/pacman/pkg/, сверяет их с сервером и скачивает их новые версии в кэш (в систему ничего не ставится), а так же автоматически скачивает абсолютно все необходимые зависимости:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=38&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-Syww&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pacman -Qq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--neede&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Использование флагов -S (синхронизация), -y (обновление баз данных репозиториев) и -w (только скачивание))&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_230.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_230.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_230.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Вывод на скрине ниже означает, что команда отработала идеально и ваш кэш уже находится в максимально актуальном состоянии.)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_231.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_231.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_231.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;получение_общего_размера_кэша_на_диске&quot;&gt;6.1.1. Получение общего размера кэша на диске:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=39&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;du&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sh&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_232.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_232.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_232.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;6.1. \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u0430\u0437 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0432\u0441\u0435\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u043a\u044d\u0448&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435_\u0431\u0430\u0437_\u0438_\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430_\u0432\u0441\u0435\u0445_\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439_\u0432_\u043a\u044d\u0448&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:38,&amp;quot;secid&amp;quot;:25,&amp;quot;range&amp;quot;:&amp;quot;47903-49350&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit26&quot; id=&quot;обновление_установленных_пакетов_и_зависимостей_в_системе&quot;&gt;6.2. Обновление установленных пакетов и зависимостей в системе&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы обновить абсолютно все установленные пакеты в системе вместе с их зависимостями и при этом автоматически подтверждать все запросы (чтобы команда не останавливалась и не задавала вопросов), выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=40&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-Syu&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(&lt;strong&gt;-Syu&lt;/strong&gt; — синхронизирует базы данных репозиториев (&lt;strong&gt;-y&lt;/strong&gt;) и запускает полный апгрейд всех устаревших пакетов в системе (&lt;strong&gt;-u&lt;/strong&gt;) вместе с их зависимостями. &lt;strong&gt;–noconfirm&lt;/strong&gt; — главный флаг автоматизации. Он отключает все всплывающие вопросы вида «Хотите продолжить установку? [Y/n]» и автоматически выбирает вариант Да (Yes).)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_233.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_233.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_233.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что ваша система уже полностью обновлена, и устанавливать ничего не нужно.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;6.2. \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435_\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445_\u043f\u0430\u043a\u0435\u0442\u043e\u0432_\u0438_\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439_\u0432_\u0441\u0438\u0441\u0442\u0435\u043c\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:40,&amp;quot;secid&amp;quot;:26,&amp;quot;range&amp;quot;:&amp;quot;49351-50860&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit27&quot; id=&quot;статический_ip_адрес_хоста&quot;&gt;7. Статический IP адрес хоста&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Вместо автоматического DHCP мы жестко (статически) пропишем адрес к примеру 192.168.1.72 в файле конфигурации. Это гарантирует, что хост tom_1 больше никогда не сменит свой IP, а сетевой диск в Windows не отвалится.
&lt;br/&gt;

Чтобы настроить статический IP-адрес в Arch Linux через systemd-networkd, нам нужно создать или отредактировать имеющийся файл конфигурационный файл с расширением .network
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;7. \u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 IP \u0430\u0434\u0440\u0435\u0441 \u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439_ip_\u0430\u0434\u0440\u0435\u0441_\u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:41,&amp;quot;secid&amp;quot;:27,&amp;quot;range&amp;quot;:&amp;quot;50861-51578&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit28&quot; id=&quot;проверка_директории_etc_systemd_network&quot;&gt;7.1. Проверка директории /etc/systemd/network/&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=41&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_181.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_181.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_181.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Если в выводе будут только строки . и .., значит, папка полностью пуста.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;если_конфигурационного_файла_network_нет&quot;&gt;7.2. Если конфигурационного файла .network нет&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Создайте файл с расширением .network. Имя файла может быть любым, но оно должно начинаться с цифр (чтобы задать приоритет).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=42&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;tee&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Match&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=en&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; eth&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Network&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Address&lt;/span&gt;=192.168.1.150&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Gateway&lt;/span&gt;=192.168.1.1
&lt;span class=&quot;re2&quot;&gt;DNS&lt;/span&gt;=1.1.1.1
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_183.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_183.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_183.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;если_конфигурационный_файл_network_есть&quot;&gt;7.3. Если конфигурационный файл .network есть&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=43&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_184.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_184.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_184.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Имя файла определено: 20-wired.network.)&lt;/em&gt;
&lt;br/&gt;

Перед тем как вносить изменения, мы обязаны посмотреть его полную структуру, чтобы увидеть секцию [Match] (которая привязывает этот конфиг к конкретной сетевой карте eth0 или enx…).
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;структура_файла_20-wirednetwork&quot;&gt;7.3.1. Структура файла 20-wired.network&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=44&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_185.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_185.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_185.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Секция [Match] перехватывает все интерфейсы, начинающиеся на en* и eth*.)&lt;/em&gt;
&lt;br/&gt;
 Теперь мы готовы переписать этот файл, заменив красивый адрес 192.168.1.150 на ваш более статический 192.168.1.72. Остальные параметры (маску /24, шлюз и &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;) оставляем без изменений.
&lt;em&gt;(а адрес 192.168.1.150 мы оставим для нашей флешки с iso образом для обнаружения в сети)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;перезапись_файла_20-wirednetwork_на_ip_192168172&quot;&gt;7.3.2. Перезапись файла 20-wired.network на IP 192.168.1.72&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Мы используем монолитную команду cat « &amp;#039;&lt;abbr title=&quot;End of file&quot;&gt;EOF&lt;/abbr&gt;&amp;#039;, которая полностью затрёт старый конфиг и запишет новый чистый текст. Это исключает ошибки ручного ввода в редакторах.&lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=45&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;tee&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Match&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=en&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; eth&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Network&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Address&lt;/span&gt;=192.168.1.72&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Gateway&lt;/span&gt;=192.168.1.1
&lt;span class=&quot;re2&quot;&gt;DNS&lt;/span&gt;=1.1.1.1
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_132.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_132.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_132.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Перед тем как перезапустить сеть, мы обязаны сделать шаг контроля и убедиться, что файл перезаписался именно так, как нам нужно.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_измененного_файла_20-wirednetwork&quot;&gt;7.3.3. Проверка измененного файла 20-wired.network&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=46&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_133.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_133.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_133.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Внутри прописан наш целевой статический адрес 192.168.1.72.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;применение_настроек_сети&quot;&gt;7.3.4. Применение настроек сети&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Чтобы система сбросила старый адрес 192.168.1.150 и применила новый, нам необходимо полностью перезапустить сетевую службу systemd-networkd.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=47&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl restart systemd-networkd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Важно: Как только вы выполните эту команду, текущая SSH-сессия PuTTY сразу же прервётся (окно зависнет), так как IP-адрес машины мгновенно изменится на 192.168.1.72.  
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_134.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_134.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_134.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_нового_адреса&quot;&gt;7.3.5. Проверка нового адреса&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Откройте новое окно PuTTY и подключитесь к tom_1 по его новому постоянному адресу: 192.168.1.72
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=48&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ip&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-br&lt;/span&gt; address show scope global &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $3}&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cut&lt;/span&gt; -d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f1&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Система отобразила наш новый постоянный IP-адрес 192.168.1.72)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;7.1. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \/etc\/systemd\/network\/&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438_etc_systemd_network&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:41,&amp;quot;secid&amp;quot;:28,&amp;quot;range&amp;quot;:&amp;quot;51579-56632&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit29&quot; id=&quot;развертывание_и_настройка_копоненонтов_по_webui&quot;&gt;8. Развертывание и настройка копоненонтов по WebUI&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
На нашем будущем сервере будет постоянно запущен веб-сервер Nginx. Он предоставит пользователю возможность управлять системой через веб-приложение в окне браузера по временному порту 7000. Если пользователь захочет использовать собственный веб-сервер, в приложении ему будет доступен веб-сервер Apache2 с поддержкой PHP. Службы OpenSSH и Samba, автозапуск которых настраивается для создания веб-приложения, также будут по умолчанию отключены с возможностью их постоянного включения через панель управления.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;8. \u0420\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u043e\u043f\u043e\u043d\u0435\u043d\u043e\u043d\u0442\u043e\u0432 \u043f\u043e WebUI&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435_\u0438_\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u043a\u043e\u043f\u043e\u043d\u0435\u043d\u043e\u043d\u0442\u043e\u0432_\u043f\u043e_webui&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:49,&amp;quot;secid&amp;quot;:29,&amp;quot;range&amp;quot;:&amp;quot;56633-57644&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit30&quot; id=&quot;настройка_nginx_на_обработку_php&quot;&gt;8.1. Настройка Nginx на обработку PHP&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;файл_nginxconf&quot;&gt;8.1.1. Файл nginx.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Мы перепишем конфигурационный файл nginx.conf, добавив правильный блок location ~ \.php$, работающий через UNIX-сокет.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=49&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;tee&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx.conf &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null
worker_processes  &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;;
&amp;nbsp;
events &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    worker_connections  &lt;span class=&quot;nu0&quot;&gt;1024&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
http &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    include       mime.types;
    default_type  application&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;octet-stream;
    sendfile        on;
    keepalive_timeout  &lt;span class=&quot;nu0&quot;&gt;65&lt;/span&gt;;
&amp;nbsp;
    server &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        listen       &lt;span class=&quot;nu0&quot;&gt;7000&lt;/span&gt;;
        server_name  localhost;
        root         &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html;
        index        index.html index.htm index.php;
&amp;nbsp;
        location &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            try_files &lt;span class=&quot;re1&quot;&gt;$uri&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$uri&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; =&lt;span class=&quot;nu0&quot;&gt;404&lt;/span&gt;;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        location ~ \.php$ &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            include        fastcgi.conf;
            fastcgi_pass   unix:&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;php-fpm&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;php-fpm.sock;
            fastcgi_index  index.php;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_237.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_237.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_237.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;тестирование_синтаксиса_nginxconf&quot;&gt;8.1.2. Тестирование синтаксиса nginx.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Нам нужно протестировать синтаксис Nginx, чтобы убедиться, что все скобки закрыты и сокет прописан без ошибок.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=50&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; nginx &lt;span class=&quot;re5&quot;&gt;-t&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_150.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_150.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_150.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Тест пройден успешно (syntax is ok, test is successful). Предупреждение о types_hash — это стандартный информационный ворнинг, на работу он не влияет.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_содержимого_файла_nginxconf&quot;&gt;8.1.3. Проверка содержимого файла nginx.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=51&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-n&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_238.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_238.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_238.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;перезапуск_веб-сервера&quot;&gt;8.1.4. Перезапуск веб-сервера&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=52&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl restart nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_153.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_153.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_153.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_статуса_службы&quot;&gt;8.1.5. Проверка статуса службы&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=53&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl status nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_155.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_155.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_155.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверим_директорию&quot;&gt;8.1.6. Проверим директорию&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Чтобы не запутаться в структуре бэкенда и фронтенда, давайте сначала проверим, что сейчас вообще находится внутри корневой папки Nginx на tom_1.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=54&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_142.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_142.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_142.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Проверим запуск и работу веб-сервера на порту 7000 в браузере на странице &lt;a href=&quot;http://192.168.1.72:7000/&quot; class=&quot;urlextern&quot; title=&quot;http://192.168.1.72:7000/&quot; rel=&quot;ugc nofollow&quot;&gt;http://192.168.1.72:7000/&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_239.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_239.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_239.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;8.1. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Nginx \u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 PHP&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_nginx_\u043d\u0430_\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443_php&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:49,&amp;quot;secid&amp;quot;:30,&amp;quot;range&amp;quot;:&amp;quot;57645-60863&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit31&quot; id=&quot;проверяем_автозапуск_службы_php-fpm&quot;&gt;8.2. Проверяем автозапуск службы php-fpm&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Убедимся, что служба PHP-FPM активирована в автозапуске, чтобы при старте флешки в ОЗУ она запустилась сама вместе с Nginx.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=55&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_114.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_114.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_114.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Примечание: статус disabled - выключена)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;включаем_службу_php-fpm_в_автозапуск&quot;&gt;8.2.1. Включаем службу php-fpm в автозапуск&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Включим службу PHP-FPM в автозапуске, чтобы при старте флешки в ОЗУ она запустилась сама вместе с Nginx.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=56&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_115.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_115.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_115.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Примечание: созданы системные симлинки)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_статус_автозапуска_службы_php-fpm&quot;&gt;8.2.1.1. Проверяем статус автозапуска службы php-fpm&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что служба PHP-FPM активирована в автозапуске, чтобы при старте флешки в ОЗУ она запустилась сама вместе с Nginx. Убедимся, что система теперь рапортует правильный статус.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=57&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Примечание: статус enabled - включена)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;снятие_системной_изоляции_с_php&quot;&gt;8.2.2. Снятие системной изоляции с PHP&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В Arch Linux служба &lt;code&gt;php-fpm&lt;/code&gt; по умолчанию заперта (ProtectSystem=full). Из-за этого PHP видит системные файлы пользователей как Read-Only. Снимем это ограничение.
&lt;/p&gt;

&lt;p&gt;
Откройте переопределение настроек службы:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=58&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl edit php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Вставте свои строки строго между первой и второй строками комментариев (обычно там есть явная подсказка ### Lines below this comment will be discarded или аналогичная).:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=59&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;ini&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code text&quot;&gt;[Service]
ProtectSystem=false
ProtectHome=false&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_240.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_240.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_240.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Ctrl+O для сохранения, затем Enter и Ctrl+X для выхода)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_241.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_241.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_241.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Вывод означает правильно отредактированную конфигурацию, и systemd успешно создал конфигурационный файл (drop-in файл) с вашими настройками по пути /etc/systemd/system/php-fpm.service.d/override.conf)&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Перезапустите службу:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo systemctl restart php-fpm&lt;/pre&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_242.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_242.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_242.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;8.2. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a \u0441\u043b\u0443\u0436\u0431\u044b php-fpm&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c_\u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a_\u0441\u043b\u0443\u0436\u0431\u044b_php-fpm&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:55,&amp;quot;secid&amp;quot;:31,&amp;quot;range&amp;quot;:&amp;quot;60864-64184&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit32&quot; id=&quot;настройка_samba-сервера&quot;&gt;8.3. Настройка Samba-сервера&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверяем_состояние_samba-сервера_на_tom_1&quot;&gt;8.3.1. Проверяем состояние Samba-сервера на tom_1&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Нам нужно узнать, запущен ли демон Samba (smb), чтобы понять, сможем ли мы сразу подключить сетевой диск в Windows.&lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=61&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl status smb&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_243.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_243.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_243.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что служба установлена в системе, но её автозапуск отключен и в данный момент служба не запущена (остановлена))&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создание_конфигурационного_файла_smbconf&quot;&gt;8.3.2. Создание конфигурационного файла smb.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Создадим конфигурационный файл в редакторе nano. &lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=62&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;samba&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;smb.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Файл пустой и готов к заполнению. Вставьте в него следующий минимальный рабочий конфиг, чтобы открыть доступ к директории Nginx (/usr/share/nginx/html) с автоматическим наследованием безопасных прав доступа (775 для папок и 664 для файлов):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=63&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;ini&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;global&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    workgroup = WORKGROUP
    server string = Arch Linux Tom1
    security = user
    map to guest = Bad User
    log &lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;log&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;samba&lt;span class=&quot;sy0&quot;&gt;/%&lt;/span&gt;m.log
    max log &lt;span class=&quot;kw2&quot;&gt;size&lt;/span&gt; = &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;nginx_html&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    path = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html
    writable = &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
    guest ok = &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
    guest only = &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
    force user = http
    create mask = 0664
    directory mask = 0775&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_246.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_246.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_246.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Файл изменен. Нажмите последовательно:CTRL + O, затем клавишу Enter (для записи файла).CTRL + X (для выхода из редактора nano)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_синтаксиса&quot;&gt;8.3.2.1. Проверка синтаксиса&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
выполните встроенную команду Samba для проверки синтаксиса файла конфигурации:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=64&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;testparm &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_247.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_247.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_247.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Тест синтаксиса пройден успешно (Loaded services file OK). Ошибок в файле smb.conf нет. Сетевая папка nginx_html определена верно.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;запуск_и_автозагрузка&quot;&gt;8.3.2.2. Запуск и автозагрузка&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Следующий шаг — запуск и добавление службы Samba в автозагрузку.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=65&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--now&lt;/span&gt; smb&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_124.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_124.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_124.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Симлинк успешно создан, служба добавлена в автозапуск.)&lt;/em&gt;
&lt;br/&gt;
 Следующий шаг — обязательная проверка статуса запущенного демона Samba.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_статуса&quot;&gt;8.3.2.3.  Проверка статуса&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=66&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl status smb&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_125.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_125.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_125.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Служба smb работает в режиме active (running) и полностью готова принимать сетевые подключения.)&lt;/em&gt;
&lt;br/&gt;

Службы настроены. 
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;владение_корневым_каталогом_сайта&quot;&gt;8.3.3. Владение корневым каталогом сайта&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Передаем владение корневым каталогом сайта встроенному веб-пользователю http. Задаем права 775 для всех папок (чтобы Samba и Nginx могли создавать файлы) и 664 для файлов (только чтение и запись, без флагов исполнения):.&lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=67&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chown&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; http:http &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-type&lt;/span&gt; d &lt;span class=&quot;re5&quot;&gt;-exec&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;775&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; +
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-type&lt;/span&gt; f &lt;span class=&quot;re5&quot;&gt;-exec&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;664&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; +&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_248.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_248.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_248.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Права 777/664 назначены успешно.)&lt;/em&gt;
&lt;br/&gt;

Следующий обязательный шаг по нашему плану — проверка того, как система применила эти права к содержимому каталога.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=68&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_249.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_249.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_249.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Проверка прав прошла успешно. Строки drwxrwxr-x для текущей папки (.) и -rw-rw-r– для файлов index.html и 50x.html подтверждают, что доступ полностью открыт на чтение, запись для пользователей системы.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;подключение_сетевой_папки_в_windows&quot;&gt;8.3.3. Подключение сетевой папки в Windows&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h5 id=&quot;получим_точный_текущий_ip-адрес_сервера_tom_1&quot;&gt;8.3.3.1. Получим точный текущий IP-адрес сервера tom_1&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=69&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ip&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-br&lt;/span&gt; address show scope global &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $3}&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cut&lt;/span&gt; -d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f1&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Теперь папка готова к подключению в качестве сетевого диска в среде Windows, чтобы вы могли открыть её через Notepad++.
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте Проводник (Этот компьютер) на вашей Windows-машине.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В верхнем меню нажмите кнопку «Подключить сетевой диск» (или нажмите правой кнопкой мыши по «Этот компьютер» → «Подключить сетевой диск»).&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_137.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_137.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_137.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В поле «Папка» введите сетевой путь, используя IP-адрес вашего сервера tom_1 (из логов PuTTY: 192.168.1.72 или через кнопку обзор)&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_139.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_139.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_139.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Введите сетевые учетные данные
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_140.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_140.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_140.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Зайдите через проводник
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_141.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_141.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_141.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(В корне /usr/share/nginx/html/ только файлы 50x.html и index.html.)&lt;/em&gt;
&lt;br/&gt;

Разворачиваем структуру каталогов для нашего веб-интерфейса. Создадим стандартные папки для стилей, скриптов и серверной логики.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;8.3. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Samba-\u0441\u0435\u0440\u0432\u0435\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_samba-\u0441\u0435\u0440\u0432\u0435\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:61,&amp;quot;secid&amp;quot;:32,&amp;quot;range&amp;quot;:&amp;quot;64185-71498&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit33&quot; id=&quot;системный_пользователь_http&quot;&gt;8.4. Системный пользователь http&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Пользователь http в Arch Linux — это встроенный системный пользователь, от имени которого по умолчанию работают веб-серверы (например, Apache или Nginx) и сопутствующие им службы.
&lt;br/&gt;
 Он создается автоматически при установке этих программ для изоляции процессов и обеспечения безопасности.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;назначение&quot;&gt;Назначение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Безопасность: Веб-серверы не должны работать под правами суперпользователя (root). Если злоумышленник найдет уязвимость в вашем сайте, он получит доступ только к файлам с правами пользователя http, что убережет остальную систему от взлома.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Права на файлы: Этот пользователь владеет файлами и папками, к которым сервер имеет доступ (обычно они расположены в директории /srv/http/).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Группа http: Для удобства существует одноименная группа http, в которую могут входить другие пользователи, чтобы иметь возможность редактировать файлы сайта без изменения прав доступа к ним через sudo&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;применение&quot;&gt;Применение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Размещение сайтов: При настройке Nginx, Apache или PHP-FPM часто требуется указывать, что процесс должен запускаться от имени http.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Настройка разрешений (Permissions): Если сайт выдает ошибку доступа (например, 403 Forbidden), обычно это означает, что у пользователя http нет прав на чтение нужных файлов или папок.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Безопасность каталогов: Если скриптам на сайте нужно загружать файлы на сервер, папке загрузки необходимо выдать права (владельца) для пользователя http&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;вывод_строк_пользователей_системы&quot;&gt;Вывод строк пользователей системы&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выводим строки трех нами известных пользователей из базы данных.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=70&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;^(root|eva|http):&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;shadow&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_169.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_169.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_169.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;root:$y$j9T$…:20594:::::&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Второе поле — длинный хэш $y$…. Это зашифрованный пароль суперпользователя.Число 20594 — дата последнего изменения пароля (в днях от 1970 года).В конце строки — пустые поля. Это значит, что для root нет никаких ограничений.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;strong&gt;eva:$y$j9T$…:20594:0:99999:7:::&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Тоже видим хэш личного пароля.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Параметры 0:99999:7 означают стандартные правила пользователя: пароль можно менять сразу (0), он действует 99999 дней, а за 7 дней до истечения система начнет предупреждать. Восьмое поле пустое — аккаунт не блокируется.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;strong&gt;http:!*:20594::::::1:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Второе поле содержит !*. Это маркер того, что пароль заблокирован (вход по паролю невозможен, учетка техническая).Внимание в самый конец строки: ::::::1:&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На предпоследней позиции (8-е поле) стоит цифра 1. В системе Linux это означает, что учетная запись принудительно заблокирована подсистемой безопасности PAM через 1 день после начала эпохи Unix (то есть 2 января 1970 года). &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;изменяем_параметры_пользователя_http&quot;&gt;Изменяем параметры пользователя http&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Уберем эту единицу из конца строки, чтобы сделать учетную запись бессрочной.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=71&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; chage &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-1&lt;/span&gt; http&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_170.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_170.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_170.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_изменений_в_файле_etc_shadow&quot;&gt;Проверка изменений в файле /etc/shadow&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=72&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;^http:&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;shadow&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_171.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_171.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_171.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Строка завершается чистыми двоеточиями (::::::), что означает: блокировка PAM полностью снята, аккаунт http стал бессрочным)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;8.4. \u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c http&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c_http&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:70,&amp;quot;secid&amp;quot;:33,&amp;quot;range&amp;quot;:&amp;quot;71499-76773&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit34&quot; id=&quot;настройка_беспарольного_доступа_в_sudoers&quot;&gt;8.5. Настройка беспарольного доступа в sudoers&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы PHP-скрипты могли вызывать утилиты управления аккаунтами без ввода пароля и без наличия текстового экрана (TTY), настроим правила безопасности. Команды будут пробрасываться во внешнюю систему через утилиту &lt;code&gt;systemd-run&lt;/code&gt; для обхода ограничений безопасности PHP.
&lt;/p&gt;

&lt;p&gt;
Откройте конфигурационный файл строго через visudo:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=73&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;EDITOR&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; visudo&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_244.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_244.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_244.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
В самый конец файла добавьте следующие строки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=74&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;Defaults:http &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;requiretty
http &lt;span class=&quot;re2&quot;&gt;ALL&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ALL&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; NOPASSWD: &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd-run &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;, &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_253.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_253.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_253.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;обновление_контекста_php-fpm&quot;&gt;Обновление контекста PHP-FPM&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Так как PHP кэширует права сессий для вызова exec(), обязательно примените изменения через перезапуск служб, поочередно введя 3 команды:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=75&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl daemon-reload
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl restart php-fpm
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl restart nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_254.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_254.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_254.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;структура_web_приложения&quot;&gt;Структура web приложения&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Папка веб-сервера nginx_html находится по пути /usr/share/nginx/html/ и имеет следующую структуру файлов бэкенда (PHP) и фронтенда (JS/&lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;/usr/share/nginx/html/               # Корневая директория веб-сервера Nginx
├── index.html                       # Главный интерфейс панели (вкладки, таблицы, модальные окна)
├── css/
│   └── style.css                    # Стили оформления интерфейса панели управления
├── js/
│   └── app.js                       # Клиентская логика (асинхронные Fetch-запросы к API, фильтры)
└── api/
    ├── users.php                    # Серверный обработчик для системных пользователей (/etc/passwd)
    └── groups.php                   # Серверный обработчик для системных групп (/etc/group)&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создание_директорий&quot;&gt;Создание директорий&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Временно изменим права для работы в консоли
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=77&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chown&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; http:http &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-type&lt;/span&gt; d &lt;span class=&quot;re5&quot;&gt;-exec&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;775&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; +&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_250.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_250.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_250.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Выполните в терминале PuTTY одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=78&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;css,js,api,assets&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_143.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_143.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_143.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Папки созданы. Теперь обязательный шаг контроля: проверяем, какие права доступа и владельцы назначены для новых директорий, чтобы Windows-пользователь Samba и веб-сервер Nginx могли с ними работать.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;контроль_папок&quot;&gt;Контроль папок&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=79&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_144.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_144.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_144.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Папки создались под пользователем eva, но у них стоят ограниченные права drwxr-xr-x. Из-за этого Windows через Samba не сможет создавать или изменять файлы внутри этих подкаталогов.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;права_доступа_к_файлам&quot;&gt;Права доступа к файлам&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=80&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-type&lt;/span&gt; f &lt;span class=&quot;re5&quot;&gt;-exec&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;664&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; +&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_назначения_прав_пользователя&quot;&gt;Проверка назначения прав пользователя&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=81&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_251.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_251.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_251.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Права drwxrwxr-x (775) успешно применились ко всем новым директориям (api, assets, css, js) - подсвечены синим, и -rw-rw-r– к файлам они подсвечены белым. Теперь пользователи eva и системный пользователь http, и Samba имеют полный доступ.)&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Прверим создание папок в Проводнике виндовс и откроем его в редакторе notepad++
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_252.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_252.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_252.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;8.5. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0431\u0435\u0441\u043f\u0430\u0440\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0432 sudoers&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u0431\u0435\u0441\u043f\u0430\u0440\u043e\u043b\u044c\u043d\u043e\u0433\u043e_\u0434\u043e\u0441\u0442\u0443\u043f\u0430_\u0432_sudoers&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:73,&amp;quot;secid&amp;quot;:34,&amp;quot;range&amp;quot;:&amp;quot;76774-82184&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit35&quot; id=&quot;исходный_код_компонентов_webui-инсталлятора&quot;&gt;9. Исходный код компонентов WebUI-инсталлятора&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;9. \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 WebUI-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439_\u043a\u043e\u0434_\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432_webui-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:82,&amp;quot;secid&amp;quot;:35,&amp;quot;range&amp;quot;:&amp;quot;82185-82278&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit36&quot; id=&quot;главный_интерфейс_панели_indexhtml&quot;&gt;9.1.  Главный интерфейс панели (index.html)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Сейчас мы с вами создадим тестовое приложение для нашего сервера, которое подтвердить правильность наших действий по настройке беспарольного доступа в sudoers и отключение системной изоляции PHP-FPM, а так же настройки сервера и прав на папки и файлы.
&lt;br/&gt;

Сейчас мы не будем разбирать html, php и javascript тестового приложения, т.к. наша главная задача собрать iso - образ и при установке с флешки на сервер, убедиться в том, что все настройки сохранились и приложение взаимодействует с сервером, а написание всего web-приложения нас ждет позже,  после тестирования iso-образа.
&lt;br/&gt;

Отредактируйте файл index.html в редакторе. Целиком замените дефолтный код файла на приведенный ниже. Он формирует окно панели управления, вкладки переключения, таблицы и скрытые модальные формы:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=82&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_html&quot;&gt;index.html&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code html4strict&quot;&gt;&lt;span class=&quot;sc0&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ru&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/head.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;head&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/meta.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;meta&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;charset&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/meta.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;meta&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;viewport&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/title.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;title&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Control Panel&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/title.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;title&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/link.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;rel&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;css/style.css&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/head.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;head&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/body.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;body&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;window&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;header &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;window-header&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/span.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;span&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;title&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;Control Panel&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/span.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;span&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;window-controls&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;win-btn&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;?&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;win-btn&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;—&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;win-btn&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;⬜&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;win-btn close&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;×&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;header&amp;gt;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;window-body&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sc2&quot;&gt;&amp;lt;aside &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;sidebar&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;search-box&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/input.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;input&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text&amp;quot;&lt;/span&gt; placeholder&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;🔍 Search&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;nav &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu-group&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;^ File Sharing&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;#&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu-item&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;📁 Shared Folder&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;#&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu-item&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;⇆ File Services&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;#&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu-item active&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;👤 User &lt;span class=&quot;sc1&quot;&gt;&amp;amp; Group&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;menu-item&amp;quot;&amp;gt;🆔 Domain/LDAP&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;div class=&amp;quot;menu-group&amp;quot;&amp;gt;^ Connectivity&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;menu-item&amp;quot;&amp;gt;🌐 External Access&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;menu-item&amp;quot;&amp;gt;🏠 Network&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;menu-item&amp;quot;&amp;gt;🛡️ Security&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;menu-item&amp;quot;&amp;gt;🐚 Terminal &amp;amp; SNMP&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;/aside&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;main class=&amp;quot;main-content&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;tabs&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button class=&amp;quot;tab active&amp;quot; id=&amp;quot;tab-user&amp;quot;&amp;gt;User&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;					&amp;lt;button class=&amp;quot;tab&amp;quot; id=&amp;quot;tab-group&amp;quot;&amp;gt;Group&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button class=&amp;quot;tab&amp;quot;&amp;gt;Advanced&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;toolbar&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;div class=&amp;quot;actions&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;button class=&amp;quot;btn primary&amp;quot; id=&amp;quot;btn-create&amp;quot;&amp;gt;Create&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;button class=&amp;quot;btn&amp;quot; id=&amp;quot;btn-edit&amp;quot; disabled&amp;gt;Edit&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;button class=&amp;quot;btn&amp;quot; id=&amp;quot;btn-delete&amp;quot; disabled&amp;gt;Delete&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;button class=&amp;quot;btn&amp;quot;&amp;gt;Export ▾&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;button class=&amp;quot;btn&amp;quot;&amp;gt;Delegate ▾&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;div class=&amp;quot;filter&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;table-filter&amp;quot; placeholder=&amp;quot;∇ Filter&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;table-container&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;table id=&amp;quot;users-table&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;thead&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                            &amp;lt;tr&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;Name ▴&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;Email&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;2FA Status&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;Status&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                            &amp;lt;/tr&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;/thead&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;tbody&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                            &amp;lt;!-- Данные загружаются через JS --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;/tbody&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;/table&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;footer class=&amp;quot;table-footer&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;span id=&amp;quot;items-count&amp;quot;&amp;gt;0 items&amp;lt;/span&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button id=&amp;quot;refresh-btn&amp;quot; class=&amp;quot;btn&amp;quot;&amp;gt;↻&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/footer&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;/main&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;        &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;!-- Модальное окно Создания / Редактирования --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;div class=&amp;quot;modal&amp;quot; id=&amp;quot;user-modal&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;        &amp;lt;div class=&amp;quot;modal-content&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;h3 id=&amp;quot;modal-title&amp;quot;&amp;gt;Create User&amp;lt;/h3&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;form id=&amp;quot;user-form&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;form-action&amp;quot; value=&amp;quot;create&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;old-username&amp;quot;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;form-group&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;label for=&amp;quot;username&amp;quot;&amp;gt;Имя пользователя:&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;username&amp;quot; required pattern=&amp;quot;^[a-z_][a-z0-9_-]*$&amp;quot; title=&amp;quot;Маленькие латинские буквы и цифры&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;form-group&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;label for=&amp;quot;description&amp;quot;&amp;gt;Описание (GECOS):&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;description&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;form-group&amp;quot; id=&amp;quot;password-group&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;label for=&amp;quot;password&amp;quot;&amp;gt;Пароль:&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;input type=&amp;quot;password&amp;quot; id=&amp;quot;password&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;form-buttons&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button type=&amp;quot;button&amp;quot; class=&amp;quot;btn&amp;quot; id=&amp;quot;btn-modal-cancel&amp;quot;&amp;gt;Cancel&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button type=&amp;quot;submit&amp;quot; class=&amp;quot;btn primary&amp;quot;&amp;gt;Save&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;        &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;	&amp;lt;!-- Модальное окно Групп --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;	&amp;lt;div class=&amp;quot;modal&amp;quot; id=&amp;quot;group-modal&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;		&amp;lt;div class=&amp;quot;modal-content&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;			&amp;lt;h3&amp;gt;Create Group&amp;lt;/h3&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;			&amp;lt;form id=&amp;quot;group-form&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;				&amp;lt;div class=&amp;quot;form-group&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;					&amp;lt;label for=&amp;quot;group-name&amp;quot;&amp;gt;Имя группы:&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;					&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;group-name&amp;quot; required pattern=&amp;quot;^[a-z_][a-z0-9_-]*$&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;				&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;				&amp;lt;div class=&amp;quot;form-buttons&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;					&amp;lt;button type=&amp;quot;button&amp;quot; class=&amp;quot;btn&amp;quot; id=&amp;quot;btn-group-cancel&amp;quot;&amp;gt;Cancel&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;					&amp;lt;button type=&amp;quot;submit&amp;quot; class=&amp;quot;btn primary&amp;quot;&amp;gt;Save&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;				&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;			&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;		&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;	&amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;script src=&amp;quot;js/app.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;9.1.  \u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u0430\u043d\u0435\u043b\u0438 (index.html)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0433\u043b\u0430\u0432\u043d\u044b\u0439_\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441_\u043f\u0430\u043d\u0435\u043b\u0438_indexhtml&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:82,&amp;quot;secid&amp;quot;:36,&amp;quot;range&amp;quot;:&amp;quot;82279-89282&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit37&quot; id=&quot;стили_оформления_интерфейса_css_stylecss&quot;&gt;9.2. Стили оформления интерфейса (css/style.css)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создайте файл css/style.css в подпапке css/. Код задает внешний вид окна приложения, таблиц данных, кнопок управления и всплывающих модальных окон:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=83&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_css&quot;&gt;style.css&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code css&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;box-sizing&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;border-box&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-family&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; -apple-system&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; BlinkMacSystemFont&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Segoe UI&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; Roboto&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sans-serif&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
body &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f0f2f5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100vh&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.window&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1000px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;550px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;box-shadow&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;5px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;25px&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;rgba&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;flex-direction&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;overflow&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;hidden&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#dcdcdc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.window-header&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; space-between&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.window-header&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;.title&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;14px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#2d3748&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.window-controls&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;.win-btn&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;8px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#718096&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.window-body&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;flex&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;overflow&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;hidden&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;coMULTI&quot;&gt;/* Навигация */&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.sidebar&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;230px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-right&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.search-box&lt;/span&gt; input &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cbd5e0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.menu-group&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;11px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;text-transform&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;uppercase&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#a0aec0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.menu-item&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;block&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;8px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#4a5568&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;text-decoration&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.menu-item&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.active&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#ebf8ff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#2b6cb0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;coMULTI&quot;&gt;/* Основная рабочая область */&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.main-content&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;flex&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;flex-direction&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;20px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.tabs&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin-top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.tab&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;20px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;14px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#718096&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.tab&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.active&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#3182ce&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;2px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#3182ce&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.toolbar&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; space-between&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.btn&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;14px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cbd5e0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#4a5568&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.btn&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#a0aec0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; not-allowed&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.btn&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;hover&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;not&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;disabled&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.btn&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.primary&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#3182ce&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#3182ce&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.btn&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.primary&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;hover&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#2b6cb0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.filter&lt;/span&gt; input &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cbd5e0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;coMULTI&quot;&gt;/* Таблица */&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.table-container&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;flex&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;overflow-y&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;auto&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;table&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-collapse&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;collapse&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
th&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; td &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;text-align&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#edf2f7&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    user-select&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
th &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#4a5568&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
tbody tr &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
tbody tr&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;hover&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
tr&lt;span class=&quot;re1&quot;&gt;.selected-user&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e8f0fe&lt;/span&gt; !important&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.status-deactivated&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e53e3e&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.status-normal&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#38a169&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.table-footer&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex-end&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    gap&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#718096&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;coMULTI&quot;&gt;/* Модальные окна */&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.modal&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;fixed&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;rgba&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;z-index&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.modal&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.open&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.modal-content&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;20px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;400px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;box-shadow&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;rgba&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.modal-content&lt;/span&gt; h3 &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#2d3748&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.form-group&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.form-group&lt;/span&gt; label &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;block&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#4a5568&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.form-group&lt;/span&gt; input &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;8px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cbd5e0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.form-buttons&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex-end&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    gap&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin-top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;18px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;9.2. \u0421\u0442\u0438\u043b\u0438 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 (css\/style.css)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0442\u0438\u043b\u0438_\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f_\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430_css_stylecss&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:83,&amp;quot;secid&amp;quot;:37,&amp;quot;range&amp;quot;:&amp;quot;89283-94165&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit38&quot; id=&quot;серверный_обработчик_пользователей_api_usersphp&quot;&gt;9.3. Серверный обработчик пользователей (api/users.php)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создайте файл &lt;code&gt;api/users.php&lt;/code&gt; в подпапке &lt;code&gt;api/&lt;/code&gt;. Скрипт обрабатывает GET-запросы для вывода учетных записей (исключая технического &lt;code&gt;nobody&lt;/code&gt;) и POST-запросы для выполнения атомарных операций через &lt;code&gt;systemd-run&lt;/code&gt; в обход изоляции:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=84&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;users.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;a href=&quot;http://www.php.net/header&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;header&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;Content-Type: application/json; charset=utf-8&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// Обработка получения списка (GET)&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_SERVER&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;REQUEST_METHOD&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;GET&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$usersList&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/is_readable&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;is_readable&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/etc/passwd&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$lines&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/file&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/etc/passwd&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FILE_IGNORE_NEW_LINES &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; FILE_SKIP_EMPTY_LINES&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$lines&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/explode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;explode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;:&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/count&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;count&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$uid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;int&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$description&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;co1&quot;&gt;// Выводим root (UID 0), системных и обычных пользователей (UID &amp;gt;= 1000)&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$uid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$uid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;nobody&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;guest&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;admin&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
                    &lt;span class=&quot;co1&quot;&gt;// Сопоставление статуса активности учетной записи&lt;/span&gt;
                    &lt;span class=&quot;re0&quot;&gt;$status&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Normal&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;guest&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                        &lt;span class=&quot;re0&quot;&gt;$status&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Deactivated&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
                    &lt;span class=&quot;re0&quot;&gt;$usersList&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;
                        &lt;span class=&quot;st_h&quot;&gt;&#039;name&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;st_h&quot;&gt;&#039;email&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;st_h&quot;&gt;&#039;desc&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$description&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;st_h&quot;&gt;&#039;tfa&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Disabled&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;st_h&quot;&gt;&#039;status&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$status&lt;/span&gt;
                    &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$usersList&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; JSON_UNESCAPED_UNICODE&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// Обработка действий создания/изменения/удаления (POST)&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_SERVER&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;REQUEST_METHOD&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;POST&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_decode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_decode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/file_get_contents&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file_get_contents&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;php://input&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;a href=&quot;http://www.php.net/isset&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;isset&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Отсутствует действие&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;re0&quot;&gt;$action&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/preg_replace&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;preg_replace&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/[^a-z0-9_-]/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$description&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/escapeshellarg&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;escapeshellarg&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;description&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$password&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;password&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Некорректное имя пользователя&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;switch&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$action&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;create&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Некорректное имя пользователя&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Генерируем хэш пароля&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$salt&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;$1$&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/substr&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;substr&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/md5&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;md5&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/uniqid&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;uniqid&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/rand&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;rand&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;$&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$hashed_password&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/crypt&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;crypt&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$password&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$salt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$uid_gid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/rand&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;rand&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1100&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1900&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
&amp;nbsp;
            &lt;span class=&quot;re0&quot;&gt;$passwd_line&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:x:&lt;span class=&quot;es4&quot;&gt;{$uid_gid}&lt;/span&gt;:&lt;span class=&quot;es4&quot;&gt;{$uid_gid}&lt;/span&gt;:&lt;span class=&quot;es4&quot;&gt;{$description}&lt;/span&gt;:/home/&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:/bin/bash&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$shadow_line&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:&lt;span class=&quot;es4&quot;&gt;{$hashed_password}&lt;/span&gt;:19500:0:99999:7:::&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$group_line&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:x:&lt;span class=&quot;es4&quot;&gt;{$uid_gid}&lt;/span&gt;:&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Собираем все команды в одну строку для запуска через bash&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$system_cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;echo &#039;&lt;span class=&quot;es4&quot;&gt;{$passwd_line}&lt;/span&gt;&#039; &amp;gt;&amp;gt; /etc/passwd &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;echo &#039;&lt;span class=&quot;es4&quot;&gt;{$shadow_line}&lt;/span&gt;&#039; &amp;gt;&amp;gt; /etc/shadow &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;echo &#039;&lt;span class=&quot;es4&quot;&gt;{$group_line}&lt;/span&gt;&#039; &amp;gt;&amp;gt; /etc/group &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;mkdir -p /home/&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt; &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;chown -R &lt;span class=&quot;es4&quot;&gt;{$uid_gid}&lt;/span&gt;:&lt;span class=&quot;es4&quot;&gt;{$uid_gid}&lt;/span&gt; /home/&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Вызываем встроенную службу systemd-run. Флаг -G заставляет её отработать от root наружу.&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/escapeshellarg&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;escapeshellarg&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$system_cmd&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;a href=&quot;http://www.php.net/exec&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$err&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/implode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;implode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039; &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ошибка запуска: &lt;span class=&quot;es4&quot;&gt;{$err}&lt;/span&gt; (Код: &lt;span class=&quot;es4&quot;&gt;{$return_var}&lt;/span&gt;)&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;update&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;// Читаем параметры из JSON-запроса от браузера&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$old_username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/preg_replace&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;preg_replace&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/[^a-z0-9_-]/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;old_username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$new_description&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;description&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$new_password&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;password&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$old_username&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Не указан пользователь для редактирования&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Экранируем описание, чтобы оно не сломало синтаксис команды sed&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$clean_desc&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/str_replace&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;str_replace&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;\/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$new_description&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// 1. Команда для обновления описания (GECOS) в /etc/passwd&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$update_cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sed -i -E &#039;s/^(&lt;span class=&quot;es4&quot;&gt;{$old_username}&lt;/span&gt;:[^:]*:[^:]*:[^:]*):[^:]*(:.*)/&lt;span class=&quot;es1&quot;&gt;\\&lt;/span&gt;1:&lt;span class=&quot;es4&quot;&gt;{$clean_desc}&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\\&lt;/span&gt;2/&#039; /etc/passwd&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// 2. Если в форму ввели новый пароль — добавляем команду обновления хэша в /etc/shadow&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$new_password&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$salt&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;$1$&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/substr&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;substr&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/md5&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;md5&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/uniqid&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;uniqid&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/rand&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;rand&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;$&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$hashed_password&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/crypt&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;crypt&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$new_password&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$salt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$clean_hash&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/str_replace&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;str_replace&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;\/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$hashed_password&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;re0&quot;&gt;$update_cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;amp;&amp;amp; sed -i -E &#039;s/^(&lt;span class=&quot;es4&quot;&gt;{$old_username}&lt;/span&gt;:)[^:]*(:.*)/&lt;span class=&quot;es1&quot;&gt;\\&lt;/span&gt;1&lt;span class=&quot;es4&quot;&gt;{$clean_hash}&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\\&lt;/span&gt;2/&#039; /etc/shadow&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Вызываем итоговую команду через systemd-run наружу от root&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/escapeshellarg&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;escapeshellarg&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$update_cmd&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;a href=&quot;http://www.php.net/exec&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$err&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/implode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;implode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039; &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ошибка обновления: &lt;span class=&quot;es4&quot;&gt;{$err}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;delete&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;root&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Удаление root запрещено&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Формируем команды для полной очистки записей из passwd, shadow, group и удаления папки&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$delete_cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sed -i &#039;/^&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:/d&#039; /etc/passwd &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;sed -i &#039;/^&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:/d&#039; /etc/shadow &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;sed -i &#039;/^&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:/d&#039; /etc/group &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;rm -rf /home/&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Вызываем команду через systemd-run наружу от имени root&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/escapeshellarg&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;escapeshellarg&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$delete_cmd&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;a href=&quot;http://www.php.net/exec&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$err&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/implode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;implode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039; &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ошибка удаления: &lt;span class=&quot;es4&quot;&gt;{$err}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Неизвестная операция&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;9.3. \u0421\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 (api\/users.php)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439_\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439_api_usersphp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:84,&amp;quot;secid&amp;quot;:38,&amp;quot;range&amp;quot;:&amp;quot;94166-102304&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit39&quot; id=&quot;серверный_обработчик_групп_api_groupsphp&quot;&gt;9.4. Серверный обработчик групп (api/groups.php)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создайте файл &lt;code&gt;api/groups.php&lt;/code&gt; в подпапке &lt;code&gt;api/&lt;/code&gt;. Скрипт парсит системный файл &lt;code&gt;/etc/group&lt;/code&gt;, выстраивает связи участников и нативно создаёт/удаляет группы в ОС через &lt;code&gt;systemd-run&lt;/code&gt;:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=85&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;groups.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;a href=&quot;http://www.php.net/header&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;header&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;Content-Type: application/json; charset=utf-8&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_decode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_decode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/file_get_contents&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file_get_contents&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;php://input&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$action&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;re0&quot;&gt;$_SERVER&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;REQUEST_METHOD&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// --- ОБРАБОТКА ПОЛУЧЕНИЯ СПИСКА ГРУПП (GET) ---&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$action&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;GET&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$groupsList&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/is_readable&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;is_readable&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/etc/group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$lines&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/file&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/etc/group&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FILE_IGNORE_NEW_LINES &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; FILE_SKIP_EMPTY_LINES&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$lines&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;// Формат /etc/group: имя_группы:пароль:GID:список_пользователей&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/explode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;explode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;:&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/count&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;count&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$gid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;int&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$users&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Пользователи через запятую&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;co1&quot;&gt;// Фильтруем системные группы, оставляем root (GID 0), wheel и кастомные (GID &amp;gt;= 1000)&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$gid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$gid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;998&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$gid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    &lt;span class=&quot;co1&quot;&gt;// Исключаем технического nobody&lt;/span&gt;
                    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;nobody&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                        &lt;span class=&quot;re0&quot;&gt;$groupsList&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;
                            &lt;span class=&quot;st_h&quot;&gt;&#039;name&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                            &lt;span class=&quot;st_h&quot;&gt;&#039;gid&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$gid&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                            &lt;span class=&quot;st_h&quot;&gt;&#039;users&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$users&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; ? &lt;span class=&quot;st_h&quot;&gt;&#039;—&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;a href=&quot;http://www.php.net/str_replace&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;str_replace&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;,&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;, &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$users&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                            &lt;span class=&quot;st_h&quot;&gt;&#039;status&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Normal&#039;&lt;/span&gt;
                        &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$groupsList&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; JSON_UNESCAPED_UNICODE&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// --- ОБРАБОТКА ИЗМЕНЕНИЙ (POST) ---&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_SERVER&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;REQUEST_METHOD&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;POST&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/preg_replace&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;preg_replace&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/[^a-z0-9_-]/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;group_name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Некорректное имя группы&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;switch&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;create&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;// Создание группы через systemd-run наружу от root&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/escapeshellarg&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;escapeshellarg&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;groupadd &lt;span class=&quot;es4&quot;&gt;{$group_name}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;a href=&quot;http://www.php.net/exec&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$err&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/implode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;implode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039; &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ошибка создания группы: &lt;span class=&quot;es4&quot;&gt;{$err}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;delete&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;root&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;wheel&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Удаление системных групп запрещено&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;// Удаление группы&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/escapeshellarg&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;escapeshellarg&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;groupdel &lt;span class=&quot;es4&quot;&gt;{$group_name}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;a href=&quot;http://www.php.net/exec&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$err&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/implode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;implode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039; &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ошибка удаления группы: &lt;span class=&quot;es4&quot;&gt;{$err}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Неизвестная операция&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;9.4. \u0421\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0433\u0440\u0443\u043f\u043f (api\/groups.php)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439_\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a_\u0433\u0440\u0443\u043f\u043f_api_groupsphp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:85,&amp;quot;secid&amp;quot;:39,&amp;quot;range&amp;quot;:&amp;quot;102305-106284&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit40&quot; id=&quot;клиентские_скрипты_логики_js_appjs&quot;&gt;9.5. Клиентские скрипты логики (js/app.js)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создайте файл &lt;code&gt;js/app.js&lt;/code&gt; в подпапке &lt;code&gt;js/&lt;/code&gt;. Скрипт управляет асинхронным обновлением таблиц (fetch), переключением контекста вкладок, фильтрацией на лету и валидацией полей ввода:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=86&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;app.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code javascript&quot;&gt;document.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;DOMContentLoaded&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; tableBody &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;querySelector&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;#users-table tbody&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; itemsCount &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;items-count&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; refreshBtn &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;refresh-btn&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; filterInput &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;table-filter&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Кнопки управления&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; btnCreate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-create&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; btnEdit &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-edit&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; btnDelete &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-delete&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Элементы модального окна&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; userModal &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;user-modal&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; userForm &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;user-form&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; modalTitle &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;modal-title&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; btnModalCancel &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-modal-cancel&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    let selectedUsername &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    let selectedUserRow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Загрузка данных&lt;/span&gt;
    async &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; response &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await fetch&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;api/users.php&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;response.&lt;span class=&quot;me1&quot;&gt;ok&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;throw&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;new&lt;/span&gt; Error&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка сервера&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await response.&lt;span class=&quot;me1&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            renderTable&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Не удалось обновить список пользователей&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; renderTable&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;users&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        tableBody.&lt;span class=&quot;me1&quot;&gt;innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        users.&lt;span class=&quot;me1&quot;&gt;forEach&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; tr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;createElement&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tr&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tr.&lt;span class=&quot;me1&quot;&gt;dataset&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; user.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tr.&lt;span class=&quot;me1&quot;&gt;dataset&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;desc&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; user.&lt;span class=&quot;me1&quot;&gt;desc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; statusClass &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; user.&lt;span class=&quot;me1&quot;&gt;status&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Normal&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;status-normal&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;status-deactivated&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            tr.&lt;span class=&quot;me1&quot;&gt;innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;b&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;b&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user.&lt;span class=&quot;me1&quot;&gt;email&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user.&lt;span class=&quot;me1&quot;&gt;desc&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user.&lt;span class=&quot;me1&quot;&gt;tfa&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td &lt;span class=&quot;kw5&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;${statusClass}&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user.&lt;span class=&quot;me1&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            `&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Логика выбора строки кликом&lt;/span&gt;
            tr.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;selectedUserRow&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; selectedUserRow.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;selected-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;selectedUsername &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; user.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    selectedUsername &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; user.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    selectedUserRow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tr&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    tr.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;selected-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    btnEdit.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    &lt;span class=&quot;co1&quot;&gt;// Запрещаем удалять root-пользователя напрямую из UI ради безопасности&lt;/span&gt;
                    btnDelete.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;root&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            tableBody.&lt;span class=&quot;me1&quot;&gt;appendChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        itemsCount.&lt;span class=&quot;me1&quot;&gt;textContent&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;users.&lt;span class=&quot;me1&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; items`&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        selectedUsername &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        selectedUserRow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        btnEdit.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        btnDelete.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Фильтрация таблицы&lt;/span&gt;
    filterInput.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;input&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; value &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; e.&lt;span class=&quot;me1&quot;&gt;target&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;toLowerCase&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw4&quot;&gt;Array&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tableBody.&lt;span class=&quot;me1&quot;&gt;querySelectorAll&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tr&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;forEach&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tr &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; match &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tr.&lt;span class=&quot;me1&quot;&gt;textContent&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;toLowerCase&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;includes&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;value&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tr.&lt;span class=&quot;me1&quot;&gt;style&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;display&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; match &lt;span class=&quot;sy0&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;none&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Открытие модального окна создания&lt;/span&gt;
    btnCreate.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        userForm.&lt;span class=&quot;me1&quot;&gt;reset&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;form-action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;create&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;password-group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;style&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;display&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;block&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        modalTitle.&lt;span class=&quot;me1&quot;&gt;textContent&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Create User&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        userModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Открытие модального окна редактирования&lt;/span&gt;
    btnEdit.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;selectedUsername&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        userForm.&lt;span class=&quot;me1&quot;&gt;reset&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;form-action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;update&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;old-username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; selectedUsername&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; usernameInput &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        usernameInput.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; selectedUsername&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        usernameInput.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Имя пользователя в Linux менять через useradd напрямую нельзя&lt;/span&gt;
&amp;nbsp;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;description&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; selectedUserRow.&lt;span class=&quot;me1&quot;&gt;dataset&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;desc&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;password-group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;style&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;display&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;block&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Пароль заполнять по желанию&lt;/span&gt;
&amp;nbsp;
        modalTitle.&lt;span class=&quot;me1&quot;&gt;textContent&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Edit User&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        userModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Обработка кнопки удаления&lt;/span&gt;
    btnDelete.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; async &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;selectedUsername&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;confirm&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;`Вы уверены&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; что хотите удалить пользователя $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;selectedUsername&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; вместе с домашней директорией&lt;span class=&quot;sy0&quot;&gt;?&lt;/span&gt;`&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            await sendAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; action&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;delete&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; username&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; selectedUsername &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Закрытие модального окна&lt;/span&gt;
    btnModalCancel.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; userModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Отправка формы (Создание / Изменение)&lt;/span&gt;
    userForm.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;submit&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; async &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        e.&lt;span class=&quot;me1&quot;&gt;preventDefault&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; action &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;form-action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; payload &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            action&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; action&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            username&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            description&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;description&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            password&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;password&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            old_username&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;old-username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        await sendAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;payload&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        userModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    async &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; sendAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; response &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await fetch&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;api/users.php&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                method&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;POST&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                headers&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Content-Type&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;application/json&#039;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                body&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; JSON.&lt;span class=&quot;me1&quot;&gt;stringify&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await response.&lt;span class=&quot;me1&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result.&lt;span class=&quot;me1&quot;&gt;success&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка: &#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; result.&lt;span class=&quot;me1&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка сети при отправке запроса&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; text.&lt;span class=&quot;me1&quot;&gt;toString&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;/&amp;amp;/g&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;amp;amp;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;/&amp;lt;/g&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;amp;lt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;/&amp;gt;/g&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;amp;gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    refreshBtn.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// --- ЛОГИКА ВКЛАДКИ GROUP ---&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; tabUser &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tab-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; tabGroup &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tab-group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; tableHeader &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;querySelector&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;#users-table thead tr&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; groupModal &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;group-modal&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; groupForm &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;group-form&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; btnGroupCancel &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-group-cancel&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    let currentTab &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;user&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Храним активную вкладку (&#039;user&#039; или &#039;group&#039;)&lt;/span&gt;
    let selectedGroupName &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Переключение на вкладку User&lt;/span&gt;
    tabUser.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        tabGroup.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        tabUser.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        currentTab &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;user&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        tableHeader.&lt;span class=&quot;me1&quot;&gt;innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Name ▴&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Email&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Description&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;2FA Status&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Status&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        `&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Вызываем старую функцию загрузки пользователей&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Переключение на вкладку Group&lt;/span&gt;
    tabGroup.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        tabUser.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        tabGroup.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        currentTab &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;group&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        tableHeader.&lt;span class=&quot;me1&quot;&gt;innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Group Name ▴&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;GID&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Members &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Users&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Status&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        `&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        loadGroups&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Загрузка групп с бэкенда&lt;/span&gt;
    async &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; loadGroups&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; response &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await fetch&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;api/groups.php&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; groups &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await response.&lt;span class=&quot;me1&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            renderGroupsTable&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;groups&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка загрузки групп&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; renderGroupsTable&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;groups&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        tableBody.&lt;span class=&quot;me1&quot;&gt;innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        groups.&lt;span class=&quot;me1&quot;&gt;forEach&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;group &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; tr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;createElement&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tr&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tr.&lt;span class=&quot;me1&quot;&gt;innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;b&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;group.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;b&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;group.&lt;span class=&quot;me1&quot;&gt;gid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;group.&lt;span class=&quot;me1&quot;&gt;users&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td &lt;span class=&quot;kw5&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;status-normal&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;group.&lt;span class=&quot;me1&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            `&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            tr.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;selectedUserRow&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; selectedUserRow.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;selected-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;selectedGroupName &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; group.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    selectedGroupName &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    selectedUserRow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    btnDelete.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    selectedGroupName &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; group.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    selectedUserRow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tr&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    tr.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;selected-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    btnEdit.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Для групп редактирование отключим&lt;/span&gt;
                    btnDelete.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;group.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;root&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; group.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;wheel&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tableBody.&lt;span class=&quot;me1&quot;&gt;appendChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        itemsCount.&lt;span class=&quot;me1&quot;&gt;textContent&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;groups.&lt;span class=&quot;me1&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; items`&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Модифицируем общие кнопки под контекст активной вкладки&lt;/span&gt;
    btnCreate.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;currentTab &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            e.&lt;span class=&quot;me1&quot;&gt;stopPropagation&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Останавливаем открытие модалки пользователей&lt;/span&gt;
            groupForm.&lt;span class=&quot;me1&quot;&gt;reset&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            groupModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    btnDelete.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; async &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;currentTab &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;group&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; selectedGroupName&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;confirm&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;`Удалить группу $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;selectedGroupName&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;?&lt;/span&gt;`&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                await sendGroupAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; action&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;delete&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; group_name&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; selectedGroupName &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    btnGroupCancel.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; groupModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    groupForm.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;submit&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; async &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        e.&lt;span class=&quot;me1&quot;&gt;preventDefault&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        await sendGroupAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            action&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;create&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            group_name&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;group-name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        groupModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    async &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; sendGroupAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; response &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await fetch&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;api/groups.php&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                method&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;POST&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                headers&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Content-Type&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;application/json&#039;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                body&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; JSON.&lt;span class=&quot;me1&quot;&gt;stringify&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await response.&lt;span class=&quot;me1&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result.&lt;span class=&quot;me1&quot;&gt;success&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                loadGroups&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка: &#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; result.&lt;span class=&quot;me1&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка сети при обработке группы&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Модифицируем круглую кнопку обновления (↻)&lt;/span&gt;
    refreshBtn.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;currentTab &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; loadGroups&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Сохраним файлы и проверим в окне браузера, перейдя по ссылке &lt;a href=&quot;http://192.168.1.72:7000/&quot; class=&quot;urlextern&quot; title=&quot;http://192.168.1.72:7000/&quot; rel=&quot;ugc nofollow&quot;&gt;http://192.168.1.72:7000/&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_255.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_255.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_255.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
мы видим вывод в таблице наших пользователей root и eva, проверим работу web-страницы на предмет добавления пользователя irina с описанием new user и alisa / admin
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_256.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_256.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_256.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Проверим новых пользователей в консоли 
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=87&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;^root|^eva|^irina|^alisa|:[0-9]{4}:&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;passwd&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_257.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_257.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_257.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Внимание! Пользователей root и eva не удаляем, иначе консоль отключиться и мы с вами больше не попадем в управление сервером, а без пользователей с правами суперпользователей система нас просто не пустит. &lt;br/&gt;

Удалим строго только новых пользователей в веб-приложении.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_258.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_258.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_258.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
И снова проверим консоль
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=88&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;^root|^eva|^irina|^alisa|:[0-9]{4}:&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;passwd&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_259.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_259.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_259.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:nginx_html.rar&quot; class=&quot;media mediafile mf_rar&quot; title=&quot;software:linux_server:arch_linux:nginx_html.rar (10 KB)&quot;&gt; Скачать файлы тестового web-приложения&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;9.5. \u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u043b\u043e\u0433\u0438\u043a\u0438 (js\/app.js)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435_\u0441\u043a\u0440\u0438\u043f\u0442\u044b_\u043b\u043e\u0433\u0438\u043a\u0438_js_appjs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:86,&amp;quot;secid&amp;quot;:40,&amp;quot;range&amp;quot;:&amp;quot;106285-120611&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit41&quot; id=&quot;пункт_в_разработке&quot;&gt;!!!!!!!!!!!! Пункт в Разработке !!!!!!!!!!!!&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;!!!!!!!!!!!! \u041f\u0443\u043d\u043a\u0442 \u0432 \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 !!!!!!!!!!!!&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0443\u043d\u043a\u0442_\u0432_\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:89,&amp;quot;secid&amp;quot;:41,&amp;quot;range&amp;quot;:&amp;quot;120612-120686&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit42&quot; id=&quot;создание_директорий1&quot;&gt;Создание директорий&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u04391&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:89,&amp;quot;secid&amp;quot;:42,&amp;quot;range&amp;quot;:&amp;quot;120687-120736&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit43&quot; id=&quot;не_забыть_диск_recovery&quot;&gt;Не забыть диск Recovery !!!!!!!!!!!!!&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0435 \u0437\u0430\u0431\u044b\u0442\u044c \u0434\u0438\u0441\u043a Recovery !!!!!!!!!!!!!&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0435_\u0437\u0430\u0431\u044b\u0442\u044c_\u0434\u0438\u0441\u043a_recovery&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:89,&amp;quot;secid&amp;quot;:43,&amp;quot;range&amp;quot;:&amp;quot;120737-120798&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit44&quot; id=&quot;создание_arch_linux_recovery&quot;&gt;0. Создание Arch Linux Recovery&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Для создания изолированного раздела восстановления в Arch Linux проще всего использовать связку из отдельного раздела на диске, образа Arch Linux ISO и загрузчика GRUB. Это позволит загружаться в полноценную среду восстановления прямо с диска, даже если основная система перестала работать.Ниже приведена пошаговая инструкция для реализации этого решения.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;0. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Arch Linux Recovery&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_arch_linux_recovery&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:89,&amp;quot;secid&amp;quot;:44,&amp;quot;range&amp;quot;:&amp;quot;120799-121486&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit45&quot; id=&quot;подготовка_раздела&quot;&gt;0.1. Подготовка раздела&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;откройте_терминал_и_запустите_утилиту_для_разметки_диска_fdisk_указав_нужный_диск&quot;&gt;0.1.1.Откройте терминал и запустите утилиту для разметки диска fdisk , указав нужный диск:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=89&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;fdisk&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nvme0n1 &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;или &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sda&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создайте_новый_раздел_размером_от_15_до_3_гб_достаточный_для_размещения_iso-образа&quot;&gt;0.1.2. Создайте новый раздел размером от 1.5 до 3 ГБ (достаточный для размещения ISO-образа).&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;измените_его_тип_код_на_стандартный_раздел_данных_linux&quot;&gt;0.1.3. Измените его тип (код) на стандартный раздел данных Linux.&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;отформатируйте_раздел_в_файловую_систему_ext4&quot;&gt;0.1.4. Отформатируйте раздел в файловую систему ext4:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=90&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mkfs.ext4 &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nvme0n1pX &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;укажите номер вашего раздела&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;0.1. \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_\u0440\u0430\u0437\u0434\u0435\u043b\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:89,&amp;quot;secid&amp;quot;:45,&amp;quot;range&amp;quot;:&amp;quot;121487-122266&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit46&quot; id=&quot;загрузка_и_перенос_iso-образа&quot;&gt;0.2. Загрузка и перенос ISO-образа&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;смонтируйте_созданный_раздел&quot;&gt;0.2.1. Смонтируйте созданный раздел:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=91&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nvme0n1pX &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
=== 0.2.2. Перейдите на Arch Linux Downloads и скопируйте прямую ссылку на актуальный archlinux-x86_64.iso (или используйте wget). 
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;скачайте_образ_прямо_в_корень_смонтированного_раздела&quot;&gt;0.2.3. Скачайте образ прямо в корень смонтированного раздела:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=92&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;wget&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-O&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch-recovery.iso ССЫЛКА_НА_ОФИЦИАЛЬНЫЙ_ISO&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;0.2. \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441 ISO-\u043e\u0431\u0440\u0430\u0437\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430_\u0438_\u043f\u0435\u0440\u0435\u043d\u043e\u0441_iso-\u043e\u0431\u0440\u0430\u0437\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:91,&amp;quot;secid&amp;quot;:46,&amp;quot;range&amp;quot;:&amp;quot;122267-122882&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit47&quot; id=&quot;настройка_загрузчика_grub&quot;&gt;0.3. Настройка загрузчика (GRUB)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Для того чтобы GRUB видел образ и мог в него загрузиться, нужно добавить специальный пункт в конфигурацию.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установите_пакет_grub-imageboot_если_он_есть_в_репозитории_или_добавьте_параметры_вручную&quot;&gt;0.3.1. Установите пакет grub-imageboot, если он есть в репозитории (или добавьте параметры вручную).&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;отредактируйте_файл_etc_grubd_40_custom&quot;&gt;0.3.2. Отредактируйте файл /etc/grub.d/40_custom:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=93&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;grub.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;40&lt;/span&gt;_custom&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;добавьте_следующий_блок_конфигурации_в_конец_файла_замените_uuid_на_uuid_вашего_раздела_с_iso-образом_узнать_его_можно_командой_lsblk_-f&quot;&gt;0.3.3. Добавьте следующий блок конфигурации в конец файла (замените UUID на UUID вашего раздела с ISO-образом, узнать его можно командой lsblk -f):&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=94&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;menuentry &lt;span class=&quot;st0&quot;&gt;&amp;quot;Arch Linux Recovery&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
insmod ext2
insmod loopback
insmod iso9660
&lt;span class=&quot;co0&quot;&gt;# Указываем UUID раздела восстановления&lt;/span&gt;
search &lt;span class=&quot;re5&quot;&gt;--no-floppy&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--fs-uuid&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--set&lt;/span&gt;=root ВАШ_UUID_РАЗДЕЛА
loopback loop &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch-recovery.iso
linux &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;loop&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux &lt;span class=&quot;re2&quot;&gt;img_dev&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;disk&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;by-uuid&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
ВАШ_UUID_РАЗДЕЛА &lt;span class=&quot;re2&quot;&gt;img_loop&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch-recovery.iso 
&lt;span class=&quot;re2&quot;&gt;archisobasedir&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;cow_space_size&lt;/span&gt;=256M &lt;span class=&quot;re2&quot;&gt;earlymodules&lt;/span&gt;=loop
initrd &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;loop&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;initramfs-linux.img
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;0.3. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 (GRUB)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430_grub&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:93,&amp;quot;secid&amp;quot;:47,&amp;quot;range&amp;quot;:&amp;quot;122883-124211&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit48&quot; id=&quot;обновите_конфигурацию_grub_чтобы_изменения_вступили_в_силу&quot;&gt;0.4. Обновите конфигурацию GRUB, чтобы изменения вступили в силу:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
sudo grub-mkconfig -o /boot/grub/grub.cfg
&amp;lt;/code&amp;gt;
Теперь при перезагрузке компьютера вы сможете выбрать пункт «Arch Linux Recovery» в меню GRUB, который запустит Live-окружение для восстановления основной системы.
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;0.4. \u041e\u0431\u043d\u043e\u0432\u0438\u0442\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e GRUB, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0442\u0443\u043f\u0438\u043b\u0438 \u0432 \u0441\u0438\u043b\u0443:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0431\u043d\u043e\u0432\u0438\u0442\u0435_\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e_grub_\u0447\u0442\u043e\u0431\u044b_\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f_\u0432\u0441\u0442\u0443\u043f\u0438\u043b\u0438_\u0432_\u0441\u0438\u043b\u0443&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:95,&amp;quot;secid&amp;quot;:48,&amp;quot;range&amp;quot;:&amp;quot;124212-124747&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit49&quot; id=&quot;пункт_в_разработке1&quot;&gt;Пункт в разработке !!!!!!&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0443\u043d\u043a\u0442 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 !!!!!!&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0443\u043d\u043a\u0442_\u0432_\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u04351&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:95,&amp;quot;secid&amp;quot;:49,&amp;quot;range&amp;quot;:&amp;quot;124748-124803&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit50&quot; id=&quot;сокращение_времени_выбора_загрузки&quot;&gt;20. Сокращение времени выбора загрузки&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;20. \u0421\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u0431\u043e\u0440\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435_\u0432\u0440\u0435\u043c\u0435\u043d\u0438_\u0432\u044b\u0431\u043e\u0440\u0430_\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:95,&amp;quot;secid&amp;quot;:50,&amp;quot;range&amp;quot;:&amp;quot;124804-124885&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit51&quot; id=&quot;сокращение_времени_выбора_systemd-boot&quot;&gt;20.1 Сокращение времени выбора systemd-boot&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы сократить время выбора операционной системы и ускорить загрузку в systemd-boot, вам нужно изменить параметр timeout в главном конфигурационном файле загрузчика.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;редактирование_файла_timeout&quot;&gt;20.1.2. Редактирование файла timeout&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Откройте файл конфигурации загрузчика в текстовом редакторе (например, nano) с правами суперпользователя:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=95&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efi&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;если_у_вас_раздел_efi_примонтирован_по_стандартному_пути_boot_используйте&quot;&gt;20.1.1. Если у вас раздел EFI примонтирован по стандартному пути /boot, используйте&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=96&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_времени_загрузки&quot;&gt;20.1.2. Установка времени загрузки&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Найдите строку с параметром timeout и установите желаемое время в секундах. Например, чтобы установить задержку всего в 1 секунду, укажите: 
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=97&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;timeout &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
(Если вы хотите скрыть меню загрузчика и сразу загружать ОС по умолчанию, установите timeout 0).
&lt;br/&gt;

Сохраните изменения (в nano нажмите Ctrl+O, затем Enter) и закройте файл (Ctrl+X).
&lt;br/&gt;

Если вам понадобится зайти в меню загрузчика во время загрузки системы, просто удерживайте нажатой или периодически нажимайте клавишу &lt;strong&gt;Пробел (Space)&lt;/strong&gt; сразу после включения компьютера.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;20.1 \u0421\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u0431\u043e\u0440\u0430 systemd-boot&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435_\u0432\u0440\u0435\u043c\u0435\u043d\u0438_\u0432\u044b\u0431\u043e\u0440\u0430_systemd-boot&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:95,&amp;quot;secid&amp;quot;:51,&amp;quot;range&amp;quot;:&amp;quot;124886-126777&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit52&quot; id=&quot;сокращение_времени_выбора_grub&quot;&gt;20.2. Сокращение времени выбора grub&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы сократить время ожидания меню GRUB в Arch Linux, измените значение тайм-аута в основном файле конфигурации и обновите загрузчик.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;редактирование_файла_timeout1&quot;&gt;20.2.1. Редактирование файла timeout&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Откройте файл конфигурации в текстовом редакторе (например, nano):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=98&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;default&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;grub&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_времени&quot;&gt;20.2.2. Установка времени&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Найдите параметр GRUB_TIMEOUT и задайте желаемое время в секундах (например, 2):  
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=99&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;GRUB_TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;сохранение_изменений&quot;&gt;20.2.2.1. Сохранение изменений&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Сохраните изменения и обновите файл конфигурации GRUB:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=100&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; grub-mkconfig &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;grub&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;grub.cfg&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;пропуск_показа_меню&quot;&gt;20.2.3. Пропуск показа меню&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Дополнительно можно включить пропуск показа меню при единственной ОС:
&lt;/p&gt;

&lt;p&gt;
Раскомментируйте или добавьте строку:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=101&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;GRUB_HIDDEN_TIMEOUT_QUIET&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Снова выполните команду обновления:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=102&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; grub-mkconfig &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;grub&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;grub.cfg&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;пропуск_задержки&quot;&gt;20.2.3. Пропуск задержки&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Если вы хотите полностью убрать задержку, установите 
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=103&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;GRUB_TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;. &lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
В таком случае, чтобы открыть меню GRUB при следующей загрузке, зажмите и удерживайте клавишу &lt;strong&gt;Shift (в режиме BIOS)&lt;/strong&gt; или &lt;strong&gt;Esc (в режиме UEFI)&lt;/strong&gt; сразу после включения компьютера
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;20.2. \u0421\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u0431\u043e\u0440\u0430 grub&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435_\u0432\u0440\u0435\u043c\u0435\u043d\u0438_\u0432\u044b\u0431\u043e\u0440\u0430_grub&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:98,&amp;quot;secid&amp;quot;:52,&amp;quot;range&amp;quot;:&amp;quot;126778-128815&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit53&quot; id=&quot;отключение_службы_сетевого_времени&quot;&gt;30. Отключение службы сетевого времени&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
При установке без интернета в среде archiso (установочной флешке) службы синхронизации времени могут выдавать предупреждения. Чтобы полностью отключить автоматическое обновление времени и предотвратить попытки системы подключиться к сети:
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;30. \u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u043b\u0443\u0436\u0431\u044b \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435_\u0441\u043b\u0443\u0436\u0431\u044b_\u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e_\u0432\u0440\u0435\u043c\u0435\u043d\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:104,&amp;quot;secid&amp;quot;:53,&amp;quot;range&amp;quot;:&amp;quot;128816-129337&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit54&quot; id=&quot;отключение_ntp&quot;&gt;30.1. Отключение NTP&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Отключите службы сетевого времени, выполнив команду &lt;a href=&quot;https://man.archlinux.org/man/timedatectl.1.en&quot; class=&quot;urlextern&quot; title=&quot;https://man.archlinux.org/man/timedatectl.1.en&quot; rel=&quot;ugc nofollow&quot;&gt;timedatectl&lt;/a&gt;:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=104&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;timedatectl set-ntp &lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;ручная_установка&quot;&gt;30.2. Ручная установка&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Установите нужный часовой пояс вручную. Напрямую настройте время, чтобы избежать «скачков» &lt;a href=&quot;https://wiki.archlinux.org/title/System_time_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/System_time_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; rel=&quot;ugc nofollow&quot;&gt;System time&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;отключение_службы_systemd-timesyncd&quot;&gt;30.3. Отключение службы systemd-timesyncd&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Если вы на этапе после pacstrap и уже вошли в систему через arch-chroot, дополнительно отключите службу &lt;a href=&quot;https://wiki.archlinux.org/title/Systemd-timesyncd&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Systemd-timesyncd&quot; rel=&quot;ugc nofollow&quot;&gt;systemd-timesyncd&lt;/a&gt;:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=105&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl disable systemd-timesyncd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
создание Headless Arch ISO через squashfs-tools zram-generator xorriso с отключением NTP без интернета
&lt;/p&gt;

&lt;p&gt;
!!!!!!!!!!!  РЕДАКТИРОВАТЬ В ЭТОТ ПУНК !!!!!!!!!!!!!!!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;30.1. \u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 NTP&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435_ntp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:104,&amp;quot;secid&amp;quot;:54,&amp;quot;range&amp;quot;:&amp;quot;129338-130706&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit55&quot; id=&quot;пункт_в_работе&quot;&gt;Пункт в работе&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Для создания собственного Headless Arch ISO (без графического интерфейса, для серверов или восстановления) с использованием squashfs-tools, zram-generator (для оптимизации работы в ОЗУ) и xorriso (для сборки образа), вам нужно выполнить пять основных шагов. В качестве базовой основы проще всего модифицировать официальный Arch ISO.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0443\u043d\u043a\u0442 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0443\u043d\u043a\u0442_\u0432_\u0440\u0430\u0431\u043e\u0442\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:106,&amp;quot;secid&amp;quot;:55,&amp;quot;range&amp;quot;:&amp;quot;130707-131302&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit56&quot; id=&quot;подготовка_и_распаковка&quot;&gt;1. Подготовка и распаковка&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создайте рабочую директорию и структуру будущего ISO:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=106&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;iso_root,arch_root&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Установите необходимые инструменты на хост-системе:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=107&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; squashfs-tools xorriso arch-install-scripts&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Скачайте актуальный образ с официального сайта и подготовьте директории:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=108&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso
&lt;span class=&quot;co0&quot;&gt;# Монтируем оригинальный ISO&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; loop archlinux-xxxx.xx.xx-x86_64.iso &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso
&lt;span class=&quot;co0&quot;&gt;# Копируем содержимое (кроме squashfs, который находится в папке arch)&lt;/span&gt;
rsync &lt;span class=&quot;re5&quot;&gt;-a&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--exclude&lt;/span&gt;=airootfs.sfs &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1. \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_\u0438_\u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:106,&amp;quot;secid&amp;quot;:56,&amp;quot;range&amp;quot;:&amp;quot;131303-132183&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit57&quot; id=&quot;настройка_squashfs_образа&quot;&gt;2. Настройка SquashFS образа&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Распакуйте оригинальный файловый архив в отдельную временную папку, чтобы добавить zram-generator и убрать лишнее:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=109&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;official_iso
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; loop archlinux-XXXX.XX.XX-x86_64.iso &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;official_iso
unsquashfs &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_root &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;official_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;umount&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;official_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Используйте код с осторожностью.Переключитесь в окружение (chroot) для установки нужных пакетов и настройки zram-generator:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=110&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-t&lt;/span&gt; proc &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;squashfs&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc
&lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--rbind&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;squashfs&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys
&lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--rbind&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;squashfs&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev
&lt;span class=&quot;kw2&quot;&gt;chroot&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;squashfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 SquashFS \u043e\u0431\u0440\u0430\u0437\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_squashfs_\u043e\u0431\u0440\u0430\u0437\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:109,&amp;quot;secid&amp;quot;:57,&amp;quot;range&amp;quot;:&amp;quot;132184-133042&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit58&quot; id=&quot;настройка_zram-generator_и_отключение_ntp&quot;&gt;3. Настройка zram-generator и отключение NTP&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;вход_в_окружение_chroot&quot;&gt;3.1 Вход в окружение (Chroot):&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=111&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; arch-chroot ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_root&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;установите_пакет&quot;&gt;3.1.1. установите пакет:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=112&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создайте_конфигурационный_файл_для_автоматического_создания_сжатого_раздела_подкачки_в_оперативной_памяти&quot;&gt;3.1.2. Создайте конфигурационный файл для автоматического создания сжатого раздела подкачки в оперативной памяти:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=113&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;EOF &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;zram-generator.conf
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;zram0&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
zram-size = ram &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
compression-algorithm = zstd
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;включите_службу&quot;&gt;3.1.3. Включите службу:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=114&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; systemd-zram-setup&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;zram0&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;настройте_headless_безголовый_доступ&quot;&gt;3.1.4. Настройте Headless (безголовый) доступ:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h5 id=&quot;настройте_сеть_например_через_systemd-networkd_и_sshd&quot;&gt;3.1.4.1. настройте сеть (например, через systemd-networkd и sshd).&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;/div&gt;

&lt;h5 id=&quot;включите_автозапуск_ssh&quot;&gt;3.1.4.2. Включите автозапуск SSH:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=115&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; sshd.
&lt;span class=&quot;co0&quot;&gt;# Разрешите вход root по SSH (опционально, для теста)&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;PermitRootLogin yes&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ssh&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sshd_config&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;отключение_ntp1&quot;&gt;3.2. Отключение NTP:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Для полной независимости от сети отключите службу синхронизации времени.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=116&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl disable systemd-timesyncd.service
timedatectl set-ntp &lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;выйдите_из_окружения&quot;&gt;3.3. Выйдите из окружения:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=117&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;exit.&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 zram-generator \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 NTP&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_zram-generator_\u0438_\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435_ntp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:111,&amp;quot;secid&amp;quot;:58,&amp;quot;range&amp;quot;:&amp;quot;133043-134597&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit59&quot; id=&quot;упаковка_squashfs&quot;&gt;4. Упаковка SquashFS&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Упакуйте измененную систему обратно в сжатый образ squashfs. Использование многопоточности ускорит процесс.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=118&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_root&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mksquashfs ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_root ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_root&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs &lt;span class=&quot;re5&quot;&gt;-comp&lt;/span&gt; zstd &lt;span class=&quot;re5&quot;&gt;-b&lt;/span&gt; 1M&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4. \u0423\u043f\u0430\u043a\u043e\u0432\u043a\u0430 SquashFS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0430_squashfs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:118,&amp;quot;secid&amp;quot;:59,&amp;quot;range&amp;quot;:&amp;quot;134598-135005&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit60&quot; id=&quot;сборка_iso_через_xorriso&quot;&gt;5. Сборка ISO через xorriso&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Скопируйте загрузочные файлы (ядро, initramfs, syslinux/grub конфигурацию) из оригинального ISO в ~/custom_iso/iso_root/. После этого соберите гибридный ISO-образ, готовый к записи на флешку:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=119&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;xorriso &lt;span class=&quot;re5&quot;&gt;-as&lt;/span&gt; mkisofs \
  &lt;span class=&quot;re5&quot;&gt;-iso-level&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-full-iso9660-filenames&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-volid&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ARCH_CUSTOM&amp;quot;&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-eltorito-boot&lt;/span&gt; isolinux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;isolinux.bin \
  &lt;span class=&quot;re5&quot;&gt;-eltorito-catalog&lt;/span&gt; isolinux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot.cat \
  &lt;span class=&quot;re5&quot;&gt;-no-emul-boot&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-boot-load-size&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-boot-info-table&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-isohybrid-mbr&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_root&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;isolinux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;isohdpfx.bin \
  &lt;span class=&quot;re5&quot;&gt;-eltorito-alt-boot&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; efi&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archiso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efiboot.img \
  &lt;span class=&quot;re5&quot;&gt;-no-emul-boot&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-isohybrid-gpt-basdat&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-output&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-headless.iso \
  ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_root&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;5. \u0421\u0431\u043e\u0440\u043a\u0430 ISO \u0447\u0435\u0440\u0435\u0437 xorriso&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0431\u043e\u0440\u043a\u0430_iso_\u0447\u0435\u0440\u0435\u0437_xorriso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:119,&amp;quot;secid&amp;quot;:60,&amp;quot;range&amp;quot;:&amp;quot;135006-135842&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit61&quot; id=&quot;выгрузка_iso_в_виндовс&quot;&gt;6 Выгрузка iso в виндовс&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;6 \u0412\u044b\u0433\u0440\u0443\u0437\u043a\u0430 iso \u0432 \u0432\u0438\u043d\u0434\u043e\u0432\u0441&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0430_iso_\u0432_\u0432\u0438\u043d\u0434\u043e\u0432\u0441&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:120,&amp;quot;secid&amp;quot;:61,&amp;quot;range&amp;quot;:&amp;quot;135843-135896&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit62&quot; id=&quot;монтаж_в_hyper-v&quot;&gt;7 Монтаж в hyper-V&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;7 \u041c\u043e\u043d\u0442\u0430\u0436 \u0432 hyper-V&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043c\u043e\u043d\u0442\u0430\u0436_\u0432_hyper-v&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:120,&amp;quot;secid&amp;quot;:62,&amp;quot;range&amp;quot;:&amp;quot;135897-136037&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit63&quot; id=&quot;консервация_операционной_системы_в_squashfs&quot;&gt;10. Консервация операционной системы в SquashFS&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10. \u041a\u043e\u043d\u0441\u0435\u0440\u0432\u0430\u0446\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432 SquashFS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0441\u0435\u0440\u0432\u0430\u0446\u0438\u044f_\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439_\u0441\u0438\u0441\u0442\u0435\u043c\u044b_\u0432_squashfs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:120,&amp;quot;secid&amp;quot;:63,&amp;quot;range&amp;quot;:&amp;quot;136038-136128&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit64&quot; id=&quot;изоляция_дисковой_разметки_хоста&quot;&gt;10.1. Изоляция дисковой разметки хоста&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
 создание бэкапа и полное обнуление файла /etc/fstab во избежание конфликта UUID при live-загрузке.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.1. \u0418\u0437\u043e\u043b\u044f\u0446\u0438\u044f \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044f_\u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0439_\u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438_\u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:120,&amp;quot;secid&amp;quot;:64,&amp;quot;range&amp;quot;:&amp;quot;136129-136373&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit65&quot; id=&quot;проверка_перед&quot;&gt;10.2. Проверка перед&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0435\u0440\u0435\u0434&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u043f\u0435\u0440\u0435\u0434&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:120,&amp;quot;secid&amp;quot;:65,&amp;quot;range&amp;quot;:&amp;quot;136374-136417&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit66&quot; id=&quot;проветить_тайм_зону&quot;&gt;10.2.1. Проветить тайм зону&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Проверить таймзону (часовой пояс) в Arch Linux можно за пару секунд. Самый быстрый и современный способ — использовать утилиту timedatectl, которая сразу покажет текущее время и настройки
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;быстрая_проверка&quot;&gt;10.2.1.1. Быстрая проверка&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Откройте терминал и выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=120&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;timedatectl&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
В выводе найдите строки:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Time zone: — ваш текущий часовой пояс (например, Europe/Moscow).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; NTC service: — статус автоматической синхронизации времени&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;быстрая_проверка1&quot;&gt;10.2.1.2. Быстрая проверка&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=121&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;date&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Она выведет текущую дату, время и аббревиатуру часового пояса (например, MSK).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.1. \u041f\u0440\u043e\u0432\u0435\u0442\u0438\u0442\u044c \u0442\u0430\u0439\u043c \u0437\u043e\u043d\u0443&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0442\u0438\u0442\u044c_\u0442\u0430\u0439\u043c_\u0437\u043e\u043d\u0443&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:120,&amp;quot;secid&amp;quot;:66,&amp;quot;range&amp;quot;:&amp;quot;136418-137417&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit67&quot; id=&quot;изменить_таймзону&quot;&gt;10.2.1.3. Изменить таймзону&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Посмотрите список доступных часовых поясов:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=122&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;timedatectl list-timezones&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.1.3. \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u0430\u0439\u043c\u0437\u043e\u043d\u0443&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c_\u0442\u0430\u0439\u043c\u0437\u043e\u043d\u0443&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:122,&amp;quot;secid&amp;quot;:67,&amp;quot;range&amp;quot;:&amp;quot;137418-137608&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit68&quot; id=&quot;установите_нужный_пояс&quot;&gt;10.2.1.4. Установите нужный пояс&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
(замените Europe/Moscow на ваш регион)
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=123&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; timedatectl set-timezone Europe&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Moscow&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Проверить версии linux&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Драйверы сетевой карты реального сервера&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;драйверы_сетевой_карты_реального_сервера&quot;&gt;Драйверы сетевой карты реального сервера&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В виртуальной машине Hyper-V используется виртуальный сетевой адаптер (обычно dec21140 или синтетический от Microsoft). На реальном сервере будет стоять физический чип (Intel, Realtek или Broadcom и т.д.).
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;что_проверить&quot;&gt;Что проверить:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
 Убедитесь, что в вашей системе tom_1 установлен пакет linux-firmware.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;команда_для_проверки&quot;&gt;Команда для проверки&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=124&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Q&lt;/span&gt; linux-firmware&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Если его нет, обязательно установите (sudo pacman -S linux-firmware), иначе реальный сервер после загрузки с ISO просто не увидит свою физическую сетевую карту.&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_106.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_106.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_106.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Данные для проверки по железу серверов (1 Supermicro, 1 старый HP и два ноунейм-самосбора разных поколений), а значит универсальность сетевого конфига становится задачей номер один. На таком железа дефолтные предсказуемые имена интерфейсов от systemd гарантированно разъедутся в разные стороны:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На Supermicro это, скорее всего, будут имена вида eno1 (onboard) или пути вроде enp3s0f0.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На старом HP интерфейсы могут обозваться как eno49, ens1 или упасть в классический eth0.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На ноунеймах (самосборах) всё зависит от логики материнской платы (чисто по PCI-пути — например, enp2s0).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Поэтому зашивать маску Name=en* eth* в конфиг systemd-networkd — это единственное спасение, чтобы один и тот же ISO-образ молча поднял сеть на любой из этих плат.
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Изменить временно на 192.168.1.150&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.1.4. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043d\u0443\u0436\u043d\u044b\u0439 \u043f\u043e\u044f\u0441&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435_\u043d\u0443\u0436\u043d\u044b\u0439_\u043f\u043e\u044f\u0441&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:123,&amp;quot;secid&amp;quot;:68,&amp;quot;range&amp;quot;:&amp;quot;137609-140709&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit69&quot; id=&quot;создаем_конфигурациюсети_сети_будущего_сервера&quot;&gt;Создаем конфигурациюсети сети будущего сервера&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Чтобы не гадать, как система назовет сетевую карту на разном железе (eno1, enp3s0, eth0), мы заставим systemd-networkd применять настройки к любому проводному интерфейсу.&lt;br/&gt;

Выполните команду на tom_1 для создания конфигурационного файла:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=125&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Вставьте в него следующие строки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=126&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;ini&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Match&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=en&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; eth&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Network&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Address&lt;/span&gt;=192.168.1.150&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Gateway&lt;/span&gt;=192.168.1.1
&lt;span class=&quot;re2&quot;&gt;DNS&lt;/span&gt;=1.1.1.1&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Примечание: Если в вашей локальной Windows-сети используется другой поддиапазон (например, 192.168.0.X), измените IP-адрес Address и шлюз Gateway под свою рабочую сеть.&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_2.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_2.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_2.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;разбор_конфига_на_скриншоте&quot;&gt;Разбор конфига на скриншоте&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Всё в точности, как надо:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Name=en* eth* — заматчит любую сетевуху.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Address=192.168.1.150/24 — статический IP, который мы будем пинговать на новом сервере.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Gateway=192.168.1.1 — шлюз.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;=1.1.1.1 — &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-сервер.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
В правом верхнем углу горит надпись Modified. Это значит, что изменения внесены, но файл еще не сохранен на диск.
&lt;em&gt; Примечание: CTRL+O для записи файла Enter для подтверждения имени файла CTRL+X для выхода из редактора nano&lt;/em&gt;
Как только выйдете из редактора, нам нужно убедиться, что systemd-networkd вообще включен и подхватит этот конфиг при старте образа.&lt;br/&gt;

Выполните команду в консоли:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=127&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled systemd-networkd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_3.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_3.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_3.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Примечание: в нашем случае служба systemd-networkd отключена (disabled)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e\u0441\u0435\u0442\u0438 \u0441\u0435\u0442\u0438 \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u0435\u043c_\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e\u0441\u0435\u0442\u0438_\u0441\u0435\u0442\u0438_\u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e_\u0441\u0435\u0440\u0432\u0435\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:125,&amp;quot;secid&amp;quot;:69,&amp;quot;range&amp;quot;:&amp;quot;140710-143163&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit70&quot; id=&quot;включаем_сетевую_службу&quot;&gt;Включаем сетевую службу&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выполните команду, чтобы активировать автозапуск сети:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=128&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; systemd-networkd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_4.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_4.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_4.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте чётко видно, что система создала все необходимые привязки для systemd-networkd.&lt;br/&gt;

Теперь переходим к проверке &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-резолвера и удаленного доступа по SSH. Без этого сервер не сможет преобразовывать имена сайтов, а мы не сможем зайти на него удаленно.
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Проверить автозыпуск ssh&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u0441\u043b\u0443\u0436\u0431\u0443&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c_\u0441\u0435\u0442\u0435\u0432\u0443\u044e_\u0441\u043b\u0443\u0436\u0431\u0443&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:128,&amp;quot;secid&amp;quot;:70,&amp;quot;range&amp;quot;:&amp;quot;143164-144165&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit71&quot; id=&quot;проверяем_включен_ли_автозапуск_службы_ssh&quot;&gt;Проверяем, включен ли автозапуск службы SSH:&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=129&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled sshd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_6.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_6.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_6.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; включен, SSH в статусе enabled. Это значит, что доступ к консоли по сети у нас будет сразу после старта «вслепую».&lt;br/&gt;

Теперь проверяем последний критически важный сервис — веб-сервер Nginx, ради которого всё и затевается. Нам нужно убедиться, что он тоже поднимется сам.
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Проверить автозапуск nginx&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u043b\u0438 \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a \u0441\u043b\u0443\u0436\u0431\u044b SSH:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c_\u0432\u043a\u043b\u044e\u0447\u0435\u043d_\u043b\u0438_\u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a_\u0441\u043b\u0443\u0436\u0431\u044b_ssh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:129,&amp;quot;secid&amp;quot;:71,&amp;quot;range&amp;quot;:&amp;quot;144166-145111&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit72&quot; id=&quot;проверяем_nginx&quot;&gt;Проверяем Nginx&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выполните команду в терминале:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=130&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_8.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_8.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_8.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_слушает_ли_nginx_порт_7000&quot;&gt;Проверяем, слушает ли Nginx порт 7000&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что в конфигах нет синтаксических ошибок и порт 5000 реально прописан. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Выполните команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=131&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; nginx &lt;span class=&quot;re5&quot;&gt;-t&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;7000&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_9.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_9.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_9.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Nginx проверен, тут полный порядок! Тест конфигурации успешный (syntax is ok, test is successful), и порт 5000 чётко прописан в основном файле /etc/nginx/nginx.conf. Варнинг про types_hash — это стандартная безобидная ругань Nginx на мелкий дефолтный размер хэш-таблицы типов файлов в Arch, на работу веб-сервера он никак не повлияет.&lt;br/&gt;

Теперь проверяем вторую половину вашей задумки — пароли пользователей. Это критически важно, так как без паролей SSH-сервер нас просто отошьёт.
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Проверить автозапуск PHP-FPM&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_статус_автозапуска_службы_php-fpm1&quot;&gt;8.2.1.1. Проверяем статус автозапуска службы php-fpm&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что служба PHP-FPM активирована в автозапуске, чтобы при старте флешки в ОЗУ она запустилась сама вместе с Nginx. Убедимся, что система теперь рапортует правильный статус.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=132&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Примечание: статус enabled - включена)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Выводим хэши паролей root и eva&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c Nginx&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c_nginx&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:130,&amp;quot;secid&amp;quot;:72,&amp;quot;range&amp;quot;:&amp;quot;145112-147670&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit73&quot; id=&quot;выводим_хэши_паролей_root_и_eva&quot;&gt;Выводим хэши паролей root и eva&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выводим хэши паролей root и eva
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=133&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;getent&lt;/span&gt; shadow root eva &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cut&lt;/span&gt; -d: -f1,&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_10.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_10.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_10.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте мы видим современные, надежные хэши паролей yescrypt (начинаются с $y$) как для root, так и для пользователя eva. Пароли заданы железно, а значит, SSH-сервер без проблем пустит вас в консоль на реальной машине. Полноценный аудит пройден, все критические точки проверены.Время переходить к финальной фазе сборки нашего автономного ISO. Погнали по шагам, аккуратно работаем с таблицей разделов.
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Проверка zram-generator&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0445\u044d\u0448\u0438 \u043f\u0430\u0440\u043e\u043b\u0435\u0439 root \u0438 eva&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u044b\u0432\u043e\u0434\u0438\u043c_\u0445\u044d\u0448\u0438_\u043f\u0430\u0440\u043e\u043b\u0435\u0439_root_\u0438_eva&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:133,&amp;quot;secid&amp;quot;:73,&amp;quot;range&amp;quot;:&amp;quot;147671-148879&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit74&quot; id=&quot;проверяем_наличие_zram&quot;&gt;Проверяем наличие ZRAM&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;strong&gt;ZRAM&lt;/strong&gt; в Arch Linux (и других дистрибутивах) — это модуль ядра Linux, который создает виртуальный диск в оперативной памяти и сжимает данные на лету.
Давайте посмотрим, активен ли этот модуль ядра на вашей чистой, только что обновленной системе tom_1.&lt;br/&gt;

Выполните в консоли tom_1 две диагностические команды:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=134&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# 1. Проверяем, загружен ли сам модуль ядра в память прямо сейчас&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;lsmod&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; zram&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_100.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_100.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_100.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_параметров_активных_дисков_zram&quot;&gt;Проверка параметров активных дисков ZRAM&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале tom_1 ровно одну команду, чтобы увидеть физический размер и алгоритм сжатия созданного диска подкачки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=135&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# 1. Проверяем, загружен ли сам модуль ядра в память прямо сейчас&lt;/span&gt;
zramctl&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_101.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_101.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_101.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 ZRAM&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c_\u043d\u0430\u043b\u0438\u0447\u0438\u0435_zram&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:134,&amp;quot;secid&amp;quot;:74,&amp;quot;range&amp;quot;:&amp;quot;148880-150276&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit75&quot; id=&quot;установка_генератора_zram&quot;&gt;Установка генератора ZRAM&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;ставим_инструменты_zram-generator&quot;&gt;Ставим инструменты zram-generator&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
zram-generator в Arch Linux — это утилита, которая автоматически создает и настраивает диски zram (сжатая оперативная память) для использования в качестве очень быстрого раздела подкачки (swap).&lt;br/&gt;

Установим пакет squashfs-tools, в который и входит нужная команда. &lt;br/&gt;

Выполняйте:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=136&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Флаги -S (Синхронизация / Установка) и –noconfirm (Без подтверждения)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_110.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_110.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_110.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_установки_пакетов&quot;&gt;Проверка установки пакетов&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=137&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Q&lt;/span&gt; zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_111.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_111.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_111.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
(&lt;em&gt;Если пакеты установлены, терминал выведет их версии, иначе, вы получите ошибку (например, error: package &amp;#039;squashfs-tools&amp;#039; was not found).&lt;/em&gt;)
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; бекап sfid&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 ZRAM&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430_zram&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:136,&amp;quot;secid&amp;quot;:75,&amp;quot;range&amp;quot;:&amp;quot;150277-151765&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit76&quot; id=&quot;временное_обнуление_fstab&quot;&gt;Временное обнуление fstab&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;о_файле&quot;&gt;О файле&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Файл /etc/&lt;strong&gt;fstab&lt;/strong&gt; (от File Systems Table) — это конфигурационный файл, который хранит информацию о разделах диска, флешках и сетевых хранилищах, и указывает системе, как именно и куда их нужно монтировать при запуске.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;предназначение&quot;&gt;Предназначение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Автозагрузка: Без него операционная система не поймет, где искать корневой раздел / и другие важные системные диски, и просто не сможет загрузиться.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Параметры монтирования: Он определяет права доступа (например, можно ли запускать исполняемые файлы с конкретного диска) и режим работы (чтение или чтение и запись).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Организация: Позволяет привязать жесткие диски, SSD или разделы для файлов подкачки (swap) к нужным папкам.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
В других дистрибутивах Linux этот файл создается автоматически при установке. В Arch Linux процесс установки выполняется вручную, поэтому там его чаще всего генерируют с помощью специальной команды: genfstab -U /mnt » /mnt/etc/fstab.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;структура_файла&quot;&gt;Структура файла&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Файл состоит из строк, разделенных пробелами или табуляцией. Каждая строка описывает одно устройство и состоит из 6 колонок:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Устройство (Block device): Обычно здесь указывается уникальный идентификатор диска (UUID), чтобы система не запуталась, если вы поменяете порты подключения (например, UUID=1234-abcd).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Точка монтирования (Mount point): Папка в системе, куда «подключается» диск (например, /, /home или /mnt/games).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файловая система (FSType): Тип файловой системы (например, ext4, btrfs, xfs или vfat).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Параметры (Mount options): Инструкции по работе с диском (например, defaults, noatime, ro — только для чтения).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Резервная копия (Dump): Флаг для утилиты резервного копирования (обычно 0).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Проверка диска (Pass): Очередность проверки диска утилитой fsck при загрузке (корень — 1, остальные диски — 2, отключено — 0).&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Подробное руководство по редактированию и настройке параметров можно изучить на официальной &lt;a href=&quot;https://wiki.archlinux.org/title/Fstab_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Fstab_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; rel=&quot;ugc nofollow&quot;&gt;ArchWiki: fstab.&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u043e\u0431\u043d\u0443\u043b\u0435\u043d\u0438\u0435 fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435_\u043e\u0431\u043d\u0443\u043b\u0435\u043d\u0438\u0435_fstab&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:138,&amp;quot;secid&amp;quot;:76,&amp;quot;range&amp;quot;:&amp;quot;151766-155119&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit77&quot; id=&quot;безопасность_операции_с_fstab&quot;&gt;Безопасность операции с fstab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Сначала сделаем бэкап, проверим его и fstab на tom_1, чтобы живой образ загружался целиком в оперативную память и не пытался монтировать несуществующие диски.&lt;br/&gt;

Выполните по очереди эти три команды:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=138&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_11.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_11.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_11.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c_\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438_\u0441_fstab&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:138,&amp;quot;secid&amp;quot;:77,&amp;quot;range&amp;quot;:&amp;quot;155120-155690&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit78&quot; id=&quot;проверяем_наличие_резервной_копии_fstab&quot;&gt;Проверяем наличие резервной копии fstab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=139&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_108.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_108.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_108.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Стереть sfid&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c_\u043d\u0430\u043b\u0438\u0447\u0438\u0435_\u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439_\u043a\u043e\u043f\u0438\u0438_fstab&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:139,&amp;quot;secid&amp;quot;:78,&amp;quot;range&amp;quot;:&amp;quot;155691-156128&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit79&quot; id=&quot;очищаем_оригинальный_файл_fstab&quot;&gt;Очищаем оригинальный файл fstab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt;Внимание:  после использования утилиты сжатая файловой система SquashFS и копирования слепка, не забываем  вернуть конфигурационный файл fstab из бекапа &lt;/strong&gt;
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=140&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; truncate &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_12.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_12.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_12.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;контрольная_проверка_очищения_fstab&quot;&gt;Контрольная проверка очищения fstab&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Фиксируем, что вывод чтения оригинального файла пуст
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=141&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_13.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_13.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_13.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Контроль: Команда cat должна вернуть абсолютно пустую строку.&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0447\u0438\u0449\u0430\u0435\u043c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0447\u0438\u0449\u0430\u0435\u043c_\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439_\u0444\u0430\u0439\u043b_fstab&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:140,&amp;quot;secid&amp;quot;:79,&amp;quot;range&amp;quot;:&amp;quot;156129-157127&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit80&quot; id=&quot;генерация_монолитного_squashfs-слепка&quot;&gt;10.3. Генерация монолитного SquashFS-слепка&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
запаковка корневой системы утилитой mksquashfs с исключениями виртуальных директорий.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.3. \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u043e\u0433\u043e SquashFS-\u0441\u043b\u0435\u043f\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f_\u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u043e\u0433\u043e_squashfs-\u0441\u043b\u0435\u043f\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:142,&amp;quot;secid&amp;quot;:80,&amp;quot;range&amp;quot;:&amp;quot;157128-157360&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit81&quot; id=&quot;создание_airootfssfs&quot;&gt;Создание airootfs.sfs&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 airootfs.sfs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_airootfssfs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:142,&amp;quot;secid&amp;quot;:81,&amp;quot;range&amp;quot;:&amp;quot;157361-157401&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit82&quot; id=&quot;утилита_mksquashfs&quot;&gt;Утилита mksquashfs&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
mksquashfs — это консольная утилита в Arch Linux, предназначенная для создания сжатых файловых систем SquashFS, которые работают только для чтения. Она является частью пакета squashfs-tools и чаще всего используется для создания Live USB, архивации системы и упаковки портативного софта
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;применение1&quot;&gt;Применение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Резервные копии: Позволяет упаковать всю систему или отдельные директории в один компактный образ без изменения прав доступа и символических ссылок.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создание Live-образов: С помощью mksquashfs создаются загрузочные модули (например, для archiso или сборок на его базе), которые можно распаковывать и запускать в ОЗУ.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Портативные приложения (AppImage): Формат AppImage по своей сути является упакованным образом SquashFS&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;преимущества&quot;&gt;Преимущества&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Высокая степень сжатия: Поддерживает современные алгоритмы, включая xz, gzip, lz4 и zstd (по умолчанию).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Прямой доступ: ОС может монтировать этот файл как диск и читать данные на лету без предварительной полной распаковки всего архива.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;запаковываем_систему_в_squashfs&quot;&gt;Запаковываем систему в SquashFS&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Теперь запускаем самую ресурсоемкую команду, которая заморозит систему со всеми нашими универсальными сетевыми конфигами, паролями и Nginx. Она проигнорирует саму себя, бэкапы и виртуальный мусор.&lt;br/&gt;

Скопируйте и вставьте в терминал:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=142&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mksquashfs &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs \
&lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lost+found ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-x86_64.iso ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso \
&lt;span class=&quot;re5&quot;&gt;-comp&lt;/span&gt; zstd &lt;span class=&quot;re5&quot;&gt;-b&lt;/span&gt; 1M&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_20.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_20.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_20.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Процесс займет несколько минут. Пока он идёт, терминал будет занят. &lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_21.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_21.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_21.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Ждём полного завершения, пока не появится строка [eva@tom1 ~]$).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0442\u0438\u043b\u0438\u0442\u0430 mksquashfs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0442\u0438\u043b\u0438\u0442\u0430_mksquashfs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:142,&amp;quot;secid&amp;quot;:82,&amp;quot;range&amp;quot;:&amp;quot;157402-160261&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit83&quot; id=&quot;немедленное_восстановление_хоста&quot;&gt;10.4. Немедленное восстановление хоста&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;немедленно_возвращаем_fstab_на_место&quot;&gt;Немедленно возвращаем fstab на место&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Как только команда mksquashfs полностью отработает и вернет вам управление, немедленно и без пауз выполните команду восстановления оригинальной таблицы разделов:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=143&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_22.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_22.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_22.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;контрольная_проверка_fstab&quot;&gt;Контрольная проверка fstab&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что файл вернулся и внутри него снова прописаны диски текущей виртуалки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=144&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Вы должны увидеть строчки с монтированием ваших UUID или разделов для /, /boot и т.д. Если текст появился — tom_1 в полной безопасности, можно выдохнуть).&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_23.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_23.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_23.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте чётко видно, что все btrfs-субтома (/@, /@home, /@pkg, /@log) и UEFI-раздел /boot вернулись на свои места. Теперь система гарантированно перезагрузится без сбоев.&lt;br/&gt;

Смена владельца файла слепка мы тоже сделали (sudo chown eva:eva …).
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;===== Изменить постоянно на 192.168.1.72=====&lt;/pre&gt;

&lt;/div&gt;

&lt;h5 id=&quot;перезапись_файла_20-wirednetwork_на_ip_1921681721&quot;&gt;7.3.2. Перезапись файла 20-wired.network на IP 192.168.1.72&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Мы используем монолитную команду cat « &amp;#039;&lt;abbr title=&quot;End of file&quot;&gt;EOF&lt;/abbr&gt;&amp;#039;, которая полностью затрёт старый конфиг и запишет новый чистый текст. Это исключает ошибки ручного ввода в редакторах.&lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=145&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;tee&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Match&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=en&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; eth&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Network&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Address&lt;/span&gt;=192.168.1.72&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Gateway&lt;/span&gt;=192.168.1.1
&lt;span class=&quot;re2&quot;&gt;DNS&lt;/span&gt;=1.1.1.1
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_132.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_132.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_132.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Перед тем как перезапустить сеть, мы обязаны сделать шаг контроля и убедиться, что файл перезаписался именно так, как нам нужно.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_измененного_файла_20-wirednetwork1&quot;&gt;7.3.3. Проверка измененного файла 20-wired.network&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=146&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_133.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_133.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_133.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Внутри прописан наш целевой статический адрес 192.168.1.72.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;применение_настроек_сети1&quot;&gt;7.3.4. Применение настроек сети&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Чтобы система сбросила старый адрес 192.168.1.150 и применила новый, нам необходимо полностью перезапустить сетевую службу systemd-networkd.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=147&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl restart systemd-networkd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Важно: Как только вы выполните эту команду, текущая SSH-сессия PuTTY сразу же прервётся (окно зависнет), так как IP-адрес машины мгновенно изменится на 192.168.1.72.  
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_134.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_134.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_134.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_нового_адреса1&quot;&gt;7.3.5. Проверка нового адреса&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Откройте новое окно PuTTY и подключитесь к tom_1 по его новому постоянному адресу: 192.168.1.72
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=148&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ip&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-br&lt;/span&gt; address show scope global &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $3}&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cut&lt;/span&gt; -d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f1&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Система отобразила наш новый постоянный IP-адрес 192.168.1.72)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.4. \u041d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0435_\u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435_\u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:143,&amp;quot;secid&amp;quot;:83,&amp;quot;range&amp;quot;:&amp;quot;160262-164509&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit84&quot; id=&quot;формирование_структуры_iso_и_uefi-загрузчика&quot;&gt;11. Формирование структуры ISO и UEFI-загрузчика&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;11. \u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b ISO \u0438 UEFI-\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b_iso_\u0438_uefi-\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:149,&amp;quot;secid&amp;quot;:84,&amp;quot;range&amp;quot;:&amp;quot;164510-164602&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit85&quot; id=&quot;создание_дерева_каталогов_загрузчика&quot;&gt;11.1. Создание дерева каталогов загрузчика&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
развертывание путей EFI внутри директории конструктора.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;11.1. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0434\u0435\u0440\u0435\u0432\u0430_\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432_\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:149,&amp;quot;secid&amp;quot;:85,&amp;quot;range&amp;quot;:&amp;quot;164603-164791&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit86&quot; id=&quot;импорт_оригинальных_файлов_загрузки&quot;&gt;11.2. Импорт оригинальных файлов загрузки&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
 перенос бинарника BOOTX64.EFI, ядра и initramfs из хост-системы.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;11.2. \u0418\u043c\u043f\u043e\u0440\u0442 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u043c\u043f\u043e\u0440\u0442_\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0445_\u0444\u0430\u0439\u043b\u043e\u0432_\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:149,&amp;quot;secid&amp;quot;:86,&amp;quot;range&amp;quot;:&amp;quot;164792-164975&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit87&quot; id=&quot;конфигурация_загрузчика_systemd-boot&quot;&gt;11.3. Конфигурация загрузчика systemd-boot&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
 привязка загрузки к глобальной метке archisolabel=ARCH_202605, активация вывода в COM-порт и отключение прерываний Hyper-V.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;11.3. \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 systemd-boot&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f_\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430_systemd-boot&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:149,&amp;quot;secid&amp;quot;:87,&amp;quot;range&amp;quot;:&amp;quot;164976-165248&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit88&quot; id=&quot;финальная_сборка_перенос_и_тестирование_образа&quot;&gt;12. Финальная сборка, перенос и тестирование образа&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;12. \u0424\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0431\u043e\u0440\u043a\u0430, \u043f\u0435\u0440\u0435\u043d\u043e\u0441 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f_\u0441\u0431\u043e\u0440\u043a\u0430_\u043f\u0435\u0440\u0435\u043d\u043e\u0441_\u0438_\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u043e\u0431\u0440\u0430\u0437\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:149,&amp;quot;secid&amp;quot;:88,&amp;quot;range&amp;quot;:&amp;quot;165249-165353&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit89&quot; id=&quot;компиляция_универсального_iso&quot;&gt;12.1. Компиляция универсального ISO&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
 упаковка папки конструктора через xorriso с флагами гибридной разметки и жестким указанием -volid.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;12.1. \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0433\u043e ISO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f_\u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0433\u043e_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:149,&amp;quot;secid&amp;quot;:89,&amp;quot;range&amp;quot;:&amp;quot;165354-165595&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit90&quot; id=&quot;экспорт_iso-образа_в_windows&quot;&gt;12.2. Экспорт ISO-образа в Windows&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
 скачивание готового файла на рабочую станцию средствами PowerShell-команды scp.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;12.2. \u042d\u043a\u0441\u043f\u043e\u0440\u0442 ISO-\u043e\u0431\u0440\u0430\u0437\u0430 \u0432 Windows&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u044d\u043a\u0441\u043f\u043e\u0440\u0442_iso-\u043e\u0431\u0440\u0430\u0437\u0430_\u0432_windows&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:149,&amp;quot;secid&amp;quot;:90,&amp;quot;range&amp;quot;:&amp;quot;165596-165791&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit91&quot; id=&quot;запись_на_физический_носитель_и_развертывание_в_hyper-v&quot;&gt;12.3. Запись на физический носитель и развертывание в Hyper-V&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
 инструкция по прожигу флешки в Rufus (GPT/UEFI) и запуску на изолированной виртуальной машине tom_2.  
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;12.3. \u0417\u0430\u043f\u0438\u0441\u044c \u043d\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c \u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0432 Hyper-V&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u043f\u0438\u0441\u044c_\u043d\u0430_\u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439_\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c_\u0438_\u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435_\u0432_hyper-v&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:149,&amp;quot;secid&amp;quot;:91,&amp;quot;range&amp;quot;:&amp;quot;165792-166074&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit92&quot; id=&quot;переходим_к_iso&quot;&gt;!!!!!!!!!!!! переходим к iso !!!!!!!!!!!!&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;!!!!!!!!!!!! \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a iso !!!!!!!!!!!!&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c_\u043a_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:149,&amp;quot;secid&amp;quot;:92,&amp;quot;range&amp;quot;:&amp;quot;166075-166241&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit93&quot; id=&quot;убрать_перед_сборкой_iso&quot;&gt;!!!!!! Убрать перед сборкой iso !!!!!!!!&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;драйверы_сетевой_карты_реального_сервера1&quot;&gt;Драйверы сетевой карты реального сервера&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В виртуальной машине Hyper-V используется виртуальный сетевой адаптер (обычно dec21140 или синтетический от Microsoft). На реальном сервере будет стоять физический чип (Intel, Realtek или Broadcom и т.д.).
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;что_проверить1&quot;&gt;Что проверить:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
 Убедитесь, что в вашей системе tom_1 установлен пакет linux-firmware.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;команда_для_проверки1&quot;&gt;Команда для проверки&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=149&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Q&lt;/span&gt; linux-firmware&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Если его нет, обязательно установите (sudo pacman -S linux-firmware), иначе реальный сервер после загрузки с ISO просто не увидит свою физическую сетевую карту.&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_106.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_106.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_106.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Данные для проверки по железу серверов (1 Supermicro, 1 старый HP и два ноунейм-самосбора разных поколений), а значит универсальность сетевого конфига становится задачей номер один. На таком железа дефолтные предсказуемые имена интерфейсов от systemd гарантированно разъедутся в разные стороны:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На Supermicro это, скорее всего, будут имена вида eno1 (onboard) или пути вроде enp3s0f0.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На старом HP интерфейсы могут обозваться как eno49, ens1 или упасть в классический eth0.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На ноунеймах (самосборах) всё зависит от логики материнской платы (чисто по PCI-пути — например, enp2s0).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Поэтому зашивать маску Name=en* eth* в конфиг systemd-networkd — это единственное спасение, чтобы один и тот же ISO-образ молча поднял сеть на любой из этих плат.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;!!!!!! \u0423\u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0441\u0431\u043e\u0440\u043a\u043e\u0439 iso !!!!!!!!&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0431\u0440\u0430\u0442\u044c_\u043f\u0435\u0440\u0435\u0434_\u0441\u0431\u043e\u0440\u043a\u043e\u0439_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:149,&amp;quot;secid&amp;quot;:93,&amp;quot;range&amp;quot;:&amp;quot;166242-168601&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit94&quot; id=&quot;создаем_конфигурациюсети_сети_будущего_сервера1&quot;&gt;Создаем конфигурациюсети сети будущего сервера&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Чтобы не гадать, как система назовет сетевую карту на разном железе (eno1, enp3s0, eth0), мы заставим systemd-networkd применять настройки к любому проводному интерфейсу.&lt;br/&gt;

Выполните команду на tom_1 для создания конфигурационного файла:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=150&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Вставьте в него следующие строки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=151&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;ini&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Match&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=en&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; eth&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Network&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Address&lt;/span&gt;=192.168.1.150&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Gateway&lt;/span&gt;=192.168.1.1
&lt;span class=&quot;re2&quot;&gt;DNS&lt;/span&gt;=1.1.1.1&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Примечание: Если в вашей локальной Windows-сети используется другой поддиапазон (например, 192.168.0.X), измените IP-адрес Address и шлюз Gateway под свою рабочую сеть.&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_2.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_2.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_2.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;разбор_конфига_на_скриншоте1&quot;&gt;Разбор конфига на скриншоте&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Всё в точности, как надо:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Name=en* eth* — заматчит любую сетевуху.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Address=192.168.1.150/24 — статический IP, который мы будем пинговать на новом сервере.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Gateway=192.168.1.1 — шлюз.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;=1.1.1.1 — &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-сервер.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
В правом верхнем углу горит надпись Modified. Это значит, что изменения внесены, но файл еще не сохранен на диск.
&lt;em&gt; Примечание: CTRL+O для записи файла Enter для подтверждения имени файла CTRL+X для выхода из редактора nano&lt;/em&gt;
Как только выйдете из редактора, нам нужно убедиться, что systemd-networkd вообще включен и подхватит этот конфиг при старте образа.&lt;br/&gt;

Выполните команду в консоли:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=152&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled systemd-networkd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_3.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_3.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_3.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Примечание: в нашем случае служба systemd-networkd отключена (disabled)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;включаем_сетевую_службу1&quot;&gt;Включаем сетевую службу&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните команду, чтобы активировать автозапуск сети:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=153&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; systemd-networkd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_4.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_4.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_4.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте чётко видно, что система создала все необходимые привязки для systemd-networkd.&lt;br/&gt;

Теперь переходим к проверке &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-резолвера и удаленного доступа по SSH. Без этого сервер не сможет преобразовывать имена сайтов, а мы не сможем зайти на него удаленно.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;включаем_dns_и_проверяем_ssh&quot;&gt;Включаем DNS и проверяем SSH&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале по очереди следующие две команды:
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;включаем_службу_резолвинга_имён_dns&quot;&gt;Включаем службу резолвинга имён (DNS):&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=154&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; systemd-resolved&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_5.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_5.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_5.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_включен_ли_автозапуск_службы_ssh1&quot;&gt;Проверяем, включен ли автозапуск службы SSH:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=155&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled sshd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_6.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_6.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_6.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; включен, SSH в статусе enabled. Это значит, что доступ к консоли по сети у нас будет сразу после старта «вслепую».&lt;br/&gt;

Теперь проверяем последний критически важный сервис — веб-сервер Nginx, ради которого всё и затевается. Нам нужно убедиться, что он тоже поднимется сам.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверяем_nginx1&quot;&gt;Проверяем Nginx&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните команду в терминале:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=156&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_8.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_8.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_8.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_слушает_ли_nginx_порт_70001&quot;&gt;Проверяем, слушает ли Nginx порт 7000&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что в конфигах нет синтаксических ошибок и порт 5000 реально прописан. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Выполните команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=157&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; nginx &lt;span class=&quot;re5&quot;&gt;-t&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;7000&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_9.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_9.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_9.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Nginx проверен, тут полный порядок! Тест конфигурации успешный (syntax is ok, test is successful), и порт 5000 чётко прописан в основном файле /etc/nginx/nginx.conf. Варнинг про types_hash — это стандартная безобидная ругань Nginx на мелкий дефолтный размер хэш-таблицы типов файлов в Arch, на работу веб-сервера он никак не повлияет.&lt;br/&gt;

Теперь проверяем вторую половину вашей задумки — пароли пользователей. Это критически важно, так как без паролей SSH-сервер нас просто отошьёт.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;выводим_хэши_паролей_root_и_eva1&quot;&gt;Выводим хэши паролей root и eva&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выводим хэши паролей root и eva
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=158&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;getent&lt;/span&gt; shadow root eva &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cut&lt;/span&gt; -d: -f1,&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_10.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_10.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_10.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте мы видим современные, надежные хэши паролей yescrypt (начинаются с $y$) как для root, так и для пользователя eva. Пароли заданы железно, а значит, SSH-сервер без проблем пустит вас в консоль на реальной машине. Полноценный аудит пройден, все критические точки проверены.Время переходить к финальной фазе сборки нашего автономного ISO. Погнали по шагам, аккуратно работаем с таблицей разделов.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e\u0441\u0435\u0442\u0438 \u0441\u0435\u0442\u0438 \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u0435\u043c_\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e\u0441\u0435\u0442\u0438_\u0441\u0435\u0442\u0438_\u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e_\u0441\u0435\u0440\u0432\u0435\u0440\u04301&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:150,&amp;quot;secid&amp;quot;:94,&amp;quot;range&amp;quot;:&amp;quot;168602-175375&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit95&quot; id=&quot;ошибка_в_загрузку_флешки&quot;&gt;Ошибка в загрузку флешки&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_107.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_107.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_107.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0444\u043b\u0435\u0448\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0448\u0438\u0431\u043a\u0430_\u0432_\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443_\u0444\u043b\u0435\u0448\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:159,&amp;quot;secid&amp;quot;:95,&amp;quot;range&amp;quot;:&amp;quot;175376-175528&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit96&quot; id=&quot;проверяем_наличие_zram1&quot;&gt;Проверяем наличие ZRAM&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt;ZRAM&lt;/strong&gt; в Arch Linux (и других дистрибутивах) — это модуль ядра Linux, который создает виртуальный диск в оперативной памяти и сжимает данные на лету.
Давайте посмотрим, активен ли этот модуль ядра на вашей чистой, только что обновленной системе tom_1.&lt;br/&gt;

Выполните в консоли tom_1 две диагностические команды:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=159&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# 1. Проверяем, загружен ли сам модуль ядра в память прямо сейчас&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;lsmod&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; zram&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_100.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_100.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_100.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_параметров_активных_дисков_zram1&quot;&gt;Проверка параметров активных дисков ZRAM&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале tom_1 ровно одну команду, чтобы увидеть физический размер и алгоритм сжатия созданного диска подкачки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=160&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# 1. Проверяем, загружен ли сам модуль ядра в память прямо сейчас&lt;/span&gt;
zramctl&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_101.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_101.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_101.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 ZRAM&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c_\u043d\u0430\u043b\u0438\u0447\u0438\u0435_zram1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:159,&amp;quot;secid&amp;quot;:96,&amp;quot;range&amp;quot;:&amp;quot;175529-176924&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit97&quot; id=&quot;установка_инструментов_сжатия_и_генератора_zram&quot;&gt;Установка инструментов сжатия и генератора ZRAM&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;ставим_инструменты_squashfs&quot;&gt;Ставим инструменты SquashFS&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Пакет &lt;strong&gt;squashfs-tools&lt;/strong&gt; в Arch Linux — это набор консольных утилит для создания, распаковки и модификации сжатых файловых систем SquashFS.&lt;br/&gt;

Установим пакет squashfs-tools, в который и входит нужная команда. &lt;br/&gt;

Выполняйте:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=161&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; squashfs-tools&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Флаги -S (Синхронизация / Установка) и –noconfirm (Без подтверждения)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_109.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_109.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_109.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;ставим_инструменты_zram-generator1&quot;&gt;Ставим инструменты zram-generator&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
zram-generator в Arch Linux — это утилита, которая автоматически создает и настраивает диски zram (сжатая оперативная память) для использования в качестве очень быстрого раздела подкачки (swap).&lt;br/&gt;

Установим пакет squashfs-tools, в который и входит нужная команда. &lt;br/&gt;

Выполняйте:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=162&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Флаги -S (Синхронизация / Установка) и –noconfirm (Без подтверждения)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_110.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_110.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_110.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_установки_пакетов1&quot;&gt;Проверка установки пакетов&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=163&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Q&lt;/span&gt; squashfs-tools zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_111.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_111.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_111.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
(&lt;em&gt;Если пакеты установлены, терминал выведет их версии, иначе, вы получите ошибку (например, error: package &amp;#039;squashfs-tools&amp;#039; was not found).&lt;/em&gt;)
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u0436\u0430\u0442\u0438\u044f \u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 ZRAM&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432_\u0441\u0436\u0430\u0442\u0438\u044f_\u0438_\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430_zram&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:161,&amp;quot;secid&amp;quot;:97,&amp;quot;range&amp;quot;:&amp;quot;176925-178970&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit98&quot; id=&quot;создание_структуры_каталогов_для_конструктора_iso&quot;&gt;Создание структуры каталогов для конструктора ISO&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Перед тем как запустить утилиту сжатия, нам необходимо подготовить чистое рабочее дерево папок в домашней директории пользователя eva, куда мы позже разложим ядро и файлы загрузчика&lt;br/&gt;

Выполните в терминале:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=164&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_117.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_117.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_117.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Флаг -p заставит систему создать всю цепочку папок за один раз).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_созданной_структуры&quot;&gt;Проверка созданной структуры&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале команду, которая покажет полный путь и содержимое созданной папки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=165&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_118.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_118.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_118.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;&lt;pre class=&quot;code&quot;&gt;* //Система должна показать, что внутри custom_iso есть папка arch, а внутри неё — папка x86_64.//
* //Все они должны быть пустыми (внутри только точки . и ..), готовыми принять наш живой корень.//&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0434\u043b\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 ISO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b_\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432_\u0434\u043b\u044f_\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:164,&amp;quot;secid&amp;quot;:98,&amp;quot;range&amp;quot;:&amp;quot;178971-180430&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit99&quot; id=&quot;мы_тут&quot;&gt;!!!!!!!!!!!!МЫ ТУТ!!!!!!!!!!!!!!!!!&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Следующим пуктом  Сменить статический IP адрес на 192.168.1.150 на время записи слепка, а после назад!!!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;!!!!!!!!!!!!\u041c\u042b \u0422\u0423\u0422!!!!!!!!!!!!!!!!!&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043c\u044b_\u0442\u0443\u0442&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:166,&amp;quot;secid&amp;quot;:99,&amp;quot;range&amp;quot;:&amp;quot;180431-180667&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit100&quot; id=&quot;временное_обнуление_fstab1&quot;&gt;Временное обнуление fstab&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;о_файле1&quot;&gt;О файле&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Файл /etc/&lt;strong&gt;fstab&lt;/strong&gt; (от File Systems Table) — это конфигурационный файл, который хранит информацию о разделах диска, флешках и сетевых хранилищах, и указывает системе, как именно и куда их нужно монтировать при запуске.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;предназначение1&quot;&gt;Предназначение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Автозагрузка: Без него операционная система не поймет, где искать корневой раздел / и другие важные системные диски, и просто не сможет загрузиться.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Параметры монтирования: Он определяет права доступа (например, можно ли запускать исполняемые файлы с конкретного диска) и режим работы (чтение или чтение и запись).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Организация: Позволяет привязать жесткие диски, SSD или разделы для файлов подкачки (swap) к нужным папкам.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
В других дистрибутивах Linux этот файл создается автоматически при установке. В Arch Linux процесс установки выполняется вручную, поэтому там его чаще всего генерируют с помощью специальной команды: genfstab -U /mnt » /mnt/etc/fstab.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;структура_файла1&quot;&gt;Структура файла&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Файл состоит из строк, разделенных пробелами или табуляцией. Каждая строка описывает одно устройство и состоит из 6 колонок:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Устройство (Block device): Обычно здесь указывается уникальный идентификатор диска (UUID), чтобы система не запуталась, если вы поменяете порты подключения (например, UUID=1234-abcd).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Точка монтирования (Mount point): Папка в системе, куда «подключается» диск (например, /, /home или /mnt/games).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файловая система (FSType): Тип файловой системы (например, ext4, btrfs, xfs или vfat).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Параметры (Mount options): Инструкции по работе с диском (например, defaults, noatime, ro — только для чтения).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Резервная копия (Dump): Флаг для утилиты резервного копирования (обычно 0).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Проверка диска (Pass): Очередность проверки диска утилитой fsck при загрузке (корень — 1, остальные диски — 2, отключено — 0).&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Подробное руководство по редактированию и настройке параметров можно изучить на официальной &lt;a href=&quot;https://wiki.archlinux.org/title/Fstab_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Fstab_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; rel=&quot;ugc nofollow&quot;&gt;ArchWiki: fstab.&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u043e\u0431\u043d\u0443\u043b\u0435\u043d\u0438\u0435 fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435_\u043e\u0431\u043d\u0443\u043b\u0435\u043d\u0438\u0435_fstab1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:166,&amp;quot;secid&amp;quot;:100,&amp;quot;range&amp;quot;:&amp;quot;180668-184021&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit101&quot; id=&quot;безопасность_операции_с_fstab1&quot;&gt;Безопасность операции с fstab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Сначала сделаем бэкап, проверим его и fstab на tom_1, чтобы живой образ загружался целиком в оперативную память и не пытался монтировать несуществующие диски.&lt;br/&gt;

Выполните по очереди эти три команды:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=166&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_11.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_11.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_11.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c_\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438_\u0441_fstab1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:166,&amp;quot;secid&amp;quot;:101,&amp;quot;range&amp;quot;:&amp;quot;184022-184592&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit102&quot; id=&quot;проверяем_наличие_резервной_копии_fstab1&quot;&gt;Проверяем наличие резервной копии fstab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=167&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_108.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_108.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_108.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c_\u043d\u0430\u043b\u0438\u0447\u0438\u0435_\u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439_\u043a\u043e\u043f\u0438\u0438_fstab1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:167,&amp;quot;secid&amp;quot;:102,&amp;quot;range&amp;quot;:&amp;quot;184593-184827&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit103&quot; id=&quot;очищаем_оригинальный_файл_fstab1&quot;&gt;Очищаем оригинальный файл fstab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt;Внимание:  после использования утилиты сжатая файловой система SquashFS и копирования слепка, не забываем  вернуть конфигурационный файл fstab из бекапа &lt;/strong&gt;
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=168&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; truncate &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_12.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_12.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_12.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;контрольная_проверка_очищения_fstab1&quot;&gt;Контрольная проверка очищения fstab&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Фиксируем, что вывод чтения оригинального файла пуст
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=169&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_13.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_13.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_13.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Контроль: Команда cat должна вернуть абсолютно пустую строку.&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0447\u0438\u0449\u0430\u0435\u043c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0447\u0438\u0449\u0430\u0435\u043c_\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439_\u0444\u0430\u0439\u043b_fstab1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:168,&amp;quot;secid&amp;quot;:103,&amp;quot;range&amp;quot;:&amp;quot;184828-185740&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit104&quot; id=&quot;создание_airootfssfs1&quot;&gt;Создание airootfs.sfs&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 airootfs.sfs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_airootfssfs1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:170,&amp;quot;secid&amp;quot;:104,&amp;quot;range&amp;quot;:&amp;quot;185741-185781&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit105&quot; id=&quot;утилита_mksquashfs1&quot;&gt;Утилита mksquashfs&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
mksquashfs — это консольная утилита в Arch Linux, предназначенная для создания сжатых файловых систем SquashFS, которые работают только для чтения. Она является частью пакета squashfs-tools и чаще всего используется для создания Live USB, архивации системы и упаковки портативного софта
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;применение2&quot;&gt;Применение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Резервные копии: Позволяет упаковать всю систему или отдельные директории в один компактный образ без изменения прав доступа и символических ссылок.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создание Live-образов: С помощью mksquashfs создаются загрузочные модули (например, для archiso или сборок на его базе), которые можно распаковывать и запускать в ОЗУ.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Портативные приложения (AppImage): Формат AppImage по своей сути является упакованным образом SquashFS&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;преимущества1&quot;&gt;Преимущества&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Высокая степень сжатия: Поддерживает современные алгоритмы, включая xz, gzip, lz4 и zstd (по умолчанию).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Прямой доступ: ОС может монтировать этот файл как диск и читать данные на лету без предварительной полной распаковки всего архива.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;запаковываем_систему_в_squashfs1&quot;&gt;Запаковываем систему в SquashFS&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Теперь запускаем самую ресурсоемкую команду, которая заморозит систему со всеми нашими универсальными сетевыми конфигами, паролями и Nginx. Она проигнорирует саму себя, бэкапы и виртуальный мусор.&lt;br/&gt;

Скопируйте и вставьте в терминал:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=170&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mksquashfs &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs \
&lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lost+found ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-x86_64.iso ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso \
&lt;span class=&quot;re5&quot;&gt;-comp&lt;/span&gt; zstd &lt;span class=&quot;re5&quot;&gt;-b&lt;/span&gt; 1M&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_20.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_20.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_20.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Процесс займет несколько минут. Пока он идёт, терминал будет занят. &lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_21.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_21.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_21.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Ждём полного завершения, пока не появится строка [eva@tom1 ~]$).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;немедленно_возвращаем_fstab_на_место1&quot;&gt;Немедленно возвращаем fstab на место&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Как только команда mksquashfs полностью отработает и вернет вам управление, немедленно и без пауз выполните команду восстановления оригинальной таблицы разделов:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=171&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_22.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_22.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_22.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;контрольная_проверка_fstab1&quot;&gt;Контрольная проверка fstab&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что файл вернулся и внутри него снова прописаны диски текущей виртуалки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=172&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Вы должны увидеть строчки с монтированием ваших UUID или разделов для /, /boot и т.д. Если текст появился — tom_1 в полной безопасности, можно выдохнуть).&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_23.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_23.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_23.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте чётко видно, что все btrfs-субтома (/@, /@home, /@pkg, /@log) и UEFI-раздел /boot вернулись на свои места. Теперь система гарантированно перезагрузится без сбоев.&lt;br/&gt;

Смена владельца файла слепка мы тоже сделали (sudo chown eva:eva …).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🔥_следующая_проблемаскелет_загрузчика_uefi&quot;&gt;🔥 Следующая проблема: Скелет загрузчика UEFI&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Переходим к самой важной части «слепого» взлёта — подготовке загрузчика. Чтобы материнские платы Supermicro, HP и ноунеймы поняли, как запускать наш кастомный образ, внутри папки ~/custom_iso/ должна лежать строгая структура файлов UEFI-загрузчика systemd-boot.&lt;br/&gt;

Сейчас у нас в ~/custom_iso/ есть только папка arch/x86_64/airootfs.sfs. Если запустить сборку ISO прямо сейчас, образ получится пустым и не загрузится ни на одном сервере.&lt;br/&gt;

Нам нужно скопировать бинарники загрузчика и конфиги из живой системы tom_1 прямо в наш конструктор.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;создаем_структуру_папок_для_uefi_и_конфигурации&quot;&gt;Создаем структуру папок для UEFI и конфигурации&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните команду одной строкой:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=173&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_24.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_24.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_24.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_структуры_uefi&quot;&gt;Проверка структуры UEFI&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=174&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_25.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_25.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_25.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;на_что_смотрим_в_выводе&quot;&gt;На что смотрим в выводе:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Система должна показать пустую папку ~/custom_iso/EFI/BOOT&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; И пустую папку ~/custom_iso/loader/entries&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Структура каталогов EFI/BOOT и loader/entries создана без единой ошибки, права на месте. Скелет готов принимать файлы.&lt;br/&gt;

Теперь переходим к заполнению этих папок «жизненно важными органами» системы: загрузчиком UEFI, ядром Linux и виртуальным диском.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;копируем_файлы_загрузки&quot;&gt;Копируем файлы загрузки&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале строго по очереди следующие три команды:
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;копируем_сам_загрузчик_uefi&quot;&gt;Копируем сам загрузчик UEFI:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=175&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOTX64.EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOTX64.EFI&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_26.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_26.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_26.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;копируем_ядро_linux&quot;&gt;Копируем ядро Linux:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=176&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_27.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_27.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_27.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_содержимое_каталога_boot&quot;&gt;Проверяем содержимое каталога /boot&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=177&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_29.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_29.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_29.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;что-то_проебали_и_остановились_тут&quot;&gt;Что-то проебали и Остановились тут&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0442\u0438\u043b\u0438\u0442\u0430 mksquashfs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0442\u0438\u043b\u0438\u0442\u0430_mksquashfs1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:170,&amp;quot;secid&amp;quot;:105,&amp;quot;range&amp;quot;:&amp;quot;185782-193348&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit106&quot; id=&quot;скачиваем_чистый_iso&quot;&gt;Скачиваем чистый ISO&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Поскольку сеть на tom_1 у нас работает, первым делом вытягиваем актуальную ссылку на зеркало Яндекса и скачиваем официальный образ Arch Linux. Из него мы и заберём правильные файлы загрузчика&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;скачиваем_чистый_iso_arch_linux&quot;&gt;Скачиваем чистый ISO Arch Linux&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните эти две команды, чтобы вытащить актуальную ссылку на зеркало Яндекса и скачать чистый Arch Linux:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=178&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;MIRROR_URL&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-m&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;mirror.yandex.ru&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $3}&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;s/\$repo\/os\/\$arch//&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
curl &lt;span class=&quot;re5&quot;&gt;-L&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-O&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es3&quot;&gt;${MIRROR_URL}&lt;/span&gt;iso/latest/archlinux-x86_64.iso&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_30.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_30.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_30.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(В консоли побегут проценты скачивания файла размером около 1.1–1.5 ГБ).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;контрольная_проверка_скачанного_файла&quot;&gt;Контрольная проверка скачанного файла&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Как только закачка полностью завершится, мы обязаны убедиться, что файл лёг в корень домашней директории и не является «нулевым»
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;выполните_команду_проверки&quot;&gt;Выполните команду проверки&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=179&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; archlinux-x86_64.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_31.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_31.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_31.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Нам нужно смонтировать этот ISO во временную директорию и вытащить оттуда оригинальные папки EFI и loader. Папку arch копировать НЕ будем, чтобы случайно не затереть наш кастомный airootfs.sfs, который мы так долго собирали.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;монтирование_и_копирование_загрузчика&quot;&gt;Монтирование и копирование загрузчика&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале по очереди эти три команды:
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;создаем_точку_монтирования&quot;&gt;Создаем точку монтирования&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=180&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_32.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_32.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_32.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;убеждаемся_что_папка_создана&quot;&gt;Убеждаемся, что папка создана&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу же проверяем, что каталог физически появился в системе и готов к работе. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=181&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-ld&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_33.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_33.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_33.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте чётко видно: каталог /tmp/iso_mount успешно создан, владелец eva, права drwxr-xr-x. Фундамент заложен без ошибок.&lt;br/&gt;

Переходим к следующему микрошагу — монтированию скачанного официального диска в эту папку.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;монтируем_чистый_iso&quot;&gt;Монтируем чистый ISO&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале ровно одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=182&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; loop ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-x86_64.iso &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_34.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_34.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_34.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Примечание: Система обязана написать на английском, что диск смонтирован в режиме только для чтения (mount: /tmp/iso_mount: WARNING: source write-protected, mounted read-only.).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_что_внутри_диска&quot;&gt;Проверяем, что внутри диска&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу же после выполнения монтирования смотрим, появились ли там файлы оригинального диска.&lt;br/&gt;
  Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=183&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_35.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_35.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_35.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте видна эталонная структура официального образа Arch Linux: каталоги arch, boot, EFI, loader и файл оболочки shellx64.efi&lt;br/&gt;

Теперь переходим к этапу копирования нужных нам каталогов загрузчика в наш конструктор ~/custom_iso/. Начнем строго с каталога EFI
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;копируем_каталог_efi&quot;&gt;Копируем каталог EFI&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале только одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=184&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_36.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_36.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_36.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;убеждаемся_что_efi_скопировался_правильно&quot;&gt;Убеждаемся, что EFI скопировался правильно&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Проверяем, что каталог скопировался со всем его содержимым в нашу рабочую папку. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=185&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_37.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_37.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_37.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте видно, что в папке EFI/BOOT теперь лежат три файла: BOOTIA32.EFI, BOOTx64.EFI и старый подсвеченный зеленым BOOTX64.EFI (который мы копировали ранее из живой системы). Они не конфликтуют, официальные загрузчики встали ровно.&lt;br/&gt;

Переходим к копированию второго важнейшего каталога — loader, в котором хранятся настройки пунктов загрузки
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;копируем_каталог_loader&quot;&gt;Копируем каталог loader&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале ровно одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=186&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_38.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_38.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_38.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;смотрим_что_скопировалось&quot;&gt;Смотрим, что скопировалось&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу же проверяем структуру и файлы внутри скопированного каталога loader. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=187&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_39.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_39.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_39.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте видна вся заводская структура официального образа: глобальный конфиг loader.conf и три дефолтных пункта меню загрузки в папке entries.&lt;br/&gt;

Теперь нам нужно скопировать оригинальные файлы ядра и виртуального диска (initramfs) из смонтированного чистого образа, чтобы не зависеть от специфики локального ядра вашей виртуалки. Они лежат в папке /tmp/iso_mount/boot/
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;копируем_ядро_и_initramfs_из_донорского_iso&quot;&gt;Копируем ядро и initramfs из донорского ISO&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В официальном ISO-образе Arch Linux пути к ядру могут слегка отличаться в зависимости от версии. Чтобы не гадать по памяти и не плодить ошибки, давайте прямо сейчас заглянем внутрь смонтированного диска в папку boot и посмотрим, где конкретно авторы релиза спрятали ядро и initramfs
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;ищем_ядро_внутри_донорского_iso&quot;&gt;Ищем ядро внутри донорского ISO&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале только одну команду, чтобы вывести структуру папки boot смонтированного образа
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=188&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_40.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_40.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_40.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
и окончание вывода
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_41.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_41.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_41.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Ищем мы два главных файла — само ядро Linux и виртуальный диск. На официальном ISO-образе Arch Linux они обычно называются vmlinuz-linux и initramfs-linux.img&lt;br/&gt;

На нашем скриншоте видно, что в папке /tmp/iso_mount/boot лежат только каталоги старых загрузчиков (grub, syslinux), утилита теста памяти (memtest86+) и файл-метка с датой релиза. Ядра здесь нет.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_наличие_ядра_в_корневом_каталоге_arch&quot;&gt;Проверяем наличие ядра в корневом каталоге arch&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале только одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=189&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_42.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_42.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_42.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Здесь лежит только оригинальный airootfs.sfs и его подписи. Ядра и виртуального диска тут тоже нет.&lt;br/&gt;

Разработчики Arch Linux переработали структуру официального ISO. Давайте найдем, где лежат vmlinuz-linux и initramfs-linux.img на этом диске, чтобы забрать их.&lt;br/&gt;

Поскольку на первом скриншоте вывода ls -laR /tmp/iso_mount/boot мы видели каталог /tmp/iso_mount/boot/grub, проверим оставшуюся часть папки /tmp/iso_mount/boot.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;поиск_ядра_в_корне_каталога_boot&quot;&gt;Поиск ядра в корне каталога boot&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выведем список файлов в самой папке boot без ухода в подкаталоги, чтобы увидеть скрытые файлы.&lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=190&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_43.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_43.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_43.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
и тут не нашли&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Выполните в терминале ровно одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=191&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_44.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_44.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_44.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка&quot;&gt;Проверка&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу убедимся, что путь создался успешно и параллельно нашему слепку. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=192&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_45.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_45.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_45.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
В выводе мы должны увидеть две папки: старую x86_64 (где лежит слепок) и новую boot (куда мы сейчас положим ядро).&lt;br/&gt;

Папки boot и x86_64 легли рядышком, права принадлежат пользователю eva, магия сработала. Теперь у нас полностью изолированы друг от друга и готовый настроенный слепок системы, и будущее донорское ядро.&lt;br/&gt;

Переходим к следующему микрошагу — забираем ядро и виртуальный диск напрямую из правильного каталога смонтированного донорского образа.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;копируем_ядро_и_initramfs_из_донора&quot;&gt;Копируем ядро и initramfs из донора&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале ровно одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=193&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;initramfs-linux.img ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_46.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_46.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_46.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_наличие_скопированных_файлов&quot;&gt;Проверяем наличие скопированных файлов&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу же после выполнения смотрим, долетели ли файлы и какой у них размер. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=194&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
vmlinuz-linux весит законные 16 МБ, а виртуальный диск initramfs-linux.img — полноценные 228 МБ. Владелец — пользователь eva. Теперь загрузчик на реальном сервере гарантированно увидит эти файлы по прописанным путям.&lt;br/&gt;

Поскольку донорский диск нам больше не нужен, параноидально зачистим за собой временные ресурсы, чтобы они не болтались в оперативной памяти виртуалки tom_1.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;размонтируем_официальный_iso&quot;&gt;Размонтируем официальный ISO&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=195&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;umount&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_48.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_48.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_48.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;убеждаемся_что_папка_опустела&quot;&gt;Убеждаемся, что папка опустела&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Проверим, что точка монтирования теперь полностью пуста:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=196&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Если там остались только стандартные точки . и .., значит диск успешно отмонтирован.&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_49.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_49.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_49.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Теперь переходим к шагу, ради которого вся эта схема и затевалась — записи кастомного загрузочного конфига.&lt;br/&gt;

Нам нужно заставить systemd-boot искать наш носитель по жестко прописанной глобальной метке ARCH_202605, а также (помня про отсутствие монитора) — сразу активировать вывод консоли в последовательный COM-порт для аварийного подключения.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;даем_права_на_запись_01-archiso-linuxconf&quot;&gt;Даем права на запись 01-archiso-linux.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=197&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +&lt;span class=&quot;kw2&quot;&gt;w&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_52.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_52.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_52.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_прав_на_файл_конфига&quot;&gt;Проверка прав на файл конфига&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале строго одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=198&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_53.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_53.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_53.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;на_что_смотрим_в_выводе1&quot;&gt;На что смотрим в выводе:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Владелец и группа: Должно быть написано eva eva.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Флаги прав (самое начало строки): Если там написано -r–r–r–, то файл заблокирован на запись (read-only). Если после нашей команды sudo chmod +w там появилось -rw-r–r–, значит, флаг записи (w) успешно пробился, и пользователь eva может его менять.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;перезаписываем_конфигурацию_загрузчика&quot;&gt;Перезаписываем конфигурацию загрузчика&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Скопируйте этот блок текста целиком и вставьте в терминал tom_1:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=199&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf
title Arch Linux &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; medium &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x86_64, UEFI&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
linux &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux
initrd &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;initramfs-linux.img
options &lt;span class=&quot;re2&quot;&gt;archisobasedir&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;archisolabel&lt;/span&gt;=ARCH_202605 &lt;span class=&quot;re2&quot;&gt;console&lt;/span&gt;=tty0 &lt;span class=&quot;re2&quot;&gt;console&lt;/span&gt;=ttyS0,&lt;span class=&quot;nu0&quot;&gt;115200&lt;/span&gt;
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_54.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_54.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_54.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_результат_записи&quot;&gt;Проверяем результат записи&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся параноидально, что старые параметры с UUID стёрлись, а новые сели ровно. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=200&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_55.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_55.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_55.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Все параметры на месте: пути ведут к ядру и initramfs внутри arch/boot/x86_64/, жесткий UUID стерт, зашита метка тома archisolabel=ARCH_202605 и активирован вывод в COM-порт console=ttyS0,115200 &lt;br/&gt;

Вся структура нашего конструктора ~/custom_iso полностью готова к финальной упаковке. Нам остался последний рывок — запустить утилиту xorriso, чтобы собрать всё это добро в готовый файл arch_custom.iso&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;устанавливаем_xorriso&quot;&gt;Устанавливаем xorriso&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале строго одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=201&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; xorriso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_56.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_56.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_56.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Система запросит подтверждение установки, нажмите Y и Enter).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;убеждаемся_что_пакет_встал&quot;&gt;Убеждаемся, что пакет встал&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу после установки проверяем версию заново
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=202&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;xorriso &lt;span class=&quot;re5&quot;&gt;--version&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_57.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_57.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_57.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Теперь у системы есть всё необходимое, чтобы сшить папки, ядро и наш настроенный слепок в один готовый ISO-файл&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Выходим на финишную прямую сборки диска. Команда большая, в ней мы жёстко привязываем имя тома к нашей метке ARCH_202605 (чтобы загрузчик на реальном сервере не потерял флешку), а также прописываем UEFI-загрузчик
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0447\u0438\u0441\u0442\u044b\u0439 ISO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c_\u0447\u0438\u0441\u0442\u044b\u0439_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:178,&amp;quot;secid&amp;quot;:106,&amp;quot;range&amp;quot;:&amp;quot;193349-211681&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit107&quot; id=&quot;💣_как_взрывается_мина_1_при_установке&quot;&gt;💣 Как взрывается Мина №1 при установке?&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;запуск_финальной_сборки_iso&quot;&gt;Запуск финальной сборки ISO&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Скопируйте этот блок полностью и запустите в терминале от пользователя eva
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=203&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;xorriso &lt;span class=&quot;re5&quot;&gt;-as&lt;/span&gt; mkisofs \
&lt;span class=&quot;re5&quot;&gt;-iso-level&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-full-iso9660-filenames&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-volid&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ARCH_202605&amp;quot;&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-eltorito-alt-boot&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;EFI/BOOT/BOOTx64.EFI&amp;quot;&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-no-emul-boot&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-isohybrid-gpt-basdat&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-output&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso \
~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_58.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_58.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_58.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;контрольная_проверка_созданного_файла&quot;&gt;Контрольная проверка созданного файла&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Как только утилита отработает и вернет приглашение командной строки, параноидально проверяем, что файл лег на диск и имеет правильный вес (в районе 1.6–1.8 ГБ). &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=204&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_59.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_59.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_59.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Файл arch_custom.iso весит честные 1.7 ГБ, права принадлежат пользователю eva, дата и время свежие.
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;определяем_ip-адрес_tom_1&quot;&gt;Определяем IP-адрес tom_1&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Перед тем как лезть в PowerShell на хостовой Windows, нам нужно точно знать текущий сетевой адрес вашей рабочей виртуалки, чтобы указать его в команде скачивания.&lt;br/&gt;

Выполните в терминале tom_1 одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=205&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ip route&lt;/span&gt; get 1.1.1.1 &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $7}&#039;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_60.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_60.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_60.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Она выведет ровно один ваш актуальный IP, например 192.168.1.72 или аналогичный).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;забираем_iso_через_powershell&quot;&gt;Забираем ISO через PowerShell&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Открывайте PowerShell на вашей Windows-машине и вставляйте следующую команду (в неё нужно зашить ваш реальный IP):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=206&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;powershell&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;scp&lt;/span&gt; eva&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;192.168.1.72:~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso &lt;span class=&quot;re1&quot;&gt;$home&lt;/span&gt;\Downloads\arch_custom.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;PowerShell выдаст предупреждение о неизвестном хосте (The authenticity of host… can&amp;#039;t be established). Напишите yes и нажмите Enter.&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;После этого система потребует пароль пользователя eva (тот самый, хэш которого мы параноидально проверяли). Вводите его (символы при вводе отображаться не будут) и жмите Enter.&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_62.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_62.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_62.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Образ arch_custom.iso весом 1700 МБ успешно скачался в вашу папку «Загрузки» хостовой Windows всего за одну минуту на скорости 28.5 МБ/с. Связь между виндой и tom_1 отработала как часы.&lt;br/&gt;

Теперь переходим к следующему ответственному этапу — подготовке виртуальной флешки arch-flash-3 через Rufus. Делаем строго по нашей параноидальной схеме.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;подключаем_виртуальный_диск&quot;&gt;Подключаем виртуальный диск&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h5 id=&quot;присоединяем_vhd_vhdx&quot;&gt;Присоединяем VHD/VHDX:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Откройте в Windows «Управление дисками» (Win + X → Управление дисками). Сверху нажмите Действие → Присоединить виртуальный жесткий диск 
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_63.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_63.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_63.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
и выберите файл вашей виртуальной флешки arch-flash-3. 
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_64.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_64.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_64.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Убедитесь, что диск появился в списке снизу.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_65.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_65.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_65.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;запишем_наш_образ_через_rufus&quot;&gt;Запишем наш образ через Rufus&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_66.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_66.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_66.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Схема раздела — GPT, Целевая система — UEFI (не-CSM), а метка тома встала строго как ARCH_202605&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🔥_шаг_1_правильное_отвязывание_диска_от_windows&quot;&gt;🔥 Шаг 1. Правильное отвязывание диска от Windows&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Действуем строго через системную утилиту, которую видно у вас на заднем плане:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Вернитесь в окно «Управление дисками» (Disk Management).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Найдите снизу в списке Диск 2 (это наша флешка ARCH_202605 (G:) весом 14.00 ГБ).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Нажмите правой кнопкой мыши строго по серому квадрату с надписью «Диск 2 / Базовый / 14,00 ГБ / В сети» (нажимать нужно именно на левую серую плашку, а не на сам синий раздел диска G:).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В появившемся контекстном меню выберите пункт «Взаимодействие» → «Отсоединить виртуальный жесткий диск» (Detach VHD).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Система выдаст окошко с подтверждением пути к файлу, нажмите ОК.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_68.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_68.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_68.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(После этого строка Диск 2 должна полностью исчезнуть из нижнего списка, а диск G: — пропасть из «Проводника»).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;монтируем_флешку_в_настройки_tom_2&quot;&gt;Монтируем флешку в настройки tom_2&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте Диспетчер Hyper-V.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Нажмите правой кнопкой мыши по виртуалке tom_2 → Параметры (Settings).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Перейдите в раздел SCSI-контроллер → выберите Жесткий диск → нажмите Добавить.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В появившемся окне нажмите кнопку Обзор и укажите путь к файлу нашей виртуальной флешки arch-flash-3.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Перейдите во вкладку Встроенное ПО (Firmware) в самом верху настроек. Убедитесь, что этот новый жесткий диск (наша флешка) стоит на первом месте в списке загрузки (выше основного пустого диска).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Перейдите во вкладку Безопасность (Security) и железно проверьте, что галочка «Включить безопасную загрузку» (Secure Boot) снята.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_69.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_69.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_69.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udca3 \u041a\u0430\u043a \u0432\u0437\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u041c\u0438\u043d\u0430 \u21161 \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udca3_\u043a\u0430\u043a_\u0432\u0437\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f_\u043c\u0438\u043d\u0430_1_\u043f\u0440\u0438_\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:203,&amp;quot;secid&amp;quot;:107,&amp;quot;range&amp;quot;:&amp;quot;211682-218997&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit108&quot; id=&quot;🕵️_♂️_разбор_проёбаоткуда_взялся_zram-generator&quot;&gt;🕵️‍♂️ Разбор проёба: откуда взялся zram-generator?&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_71.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_71.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_71.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_72.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_72.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_72.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;br/&gt;

Ошибка zram-generator означает, что подсистема инициализации systemd пытается создать сжатый подкачивающий диск (swap) в оперативной памяти, но падает с ошибкой. На чистом официальном ISO Arch Linux этот генератор работает без проблем.&lt;br/&gt;

Но почему он упал у нас?
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файловая система airootfs.sfs — это слепок вашей виртуалки tom_1. На tom_1 в ядре настроена полноценная работа с дисками (btrfs, файлы подкачки и т.д.).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; А вот ядро (vmlinuz-linux) и виртуальный диск (initramfs-linux.img) мы ювелирно скопировали из чистого официального ISO (донора), чтобы обойти проблему путей.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Произошел жесткий конфликт версий и модулей (Mismatch): Донором для ядра стал чистый официальный образ Arch. Но на живой машине tom_1 система уже обновлялась (linux-firmware от мая 2026 года, обновленные пакеты systemd).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Когда официальное донорское ядро пытается подгрузить модули и генераторы из нашего слепка airootfs.sfs, версии systemd и модулей ядра банально не совпадают. zram-generator падает, и systemd намертво блокирует дальнейшую загрузку служб, включая сеть и консоль.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
По старому руководству вы брали ядро и initramfs от той же самой системы tom_1 (хоть мы и запутались в путях), поэтому там версии совпадали, и ядро проходило дальше, пока не упиралось в UUID дисков.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🛠️_что_делаем_дальше_у_нас_есть_два_пути&quot;&gt;🛠️ Что делаем дальше? У нас есть два пути:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Поскольку мы договорились проверять всё пошагово и возвращаться к зафиксированным точкам, у нас два варианта:
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;путь_1_вернуться_на_tom_1_и_взять_его_родные_ядро_и_initramfs&quot;&gt;Путь 1. Вернуться на tom_1 и взять ЕГО родные ядро и initramfs&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Мы теперь точно знаем, что ядро и initramfs загрузчик ищет строго по пути arch/boot/x86_64/.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Мы можем зайти на tom_1, сгенерировать там чистый, родной initramfs-linux.img с помощью утилиты mkinitcpio (чтобы он точно содержал в себе модули для btrfs/ext4 и сетевых карт).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Скопировать их в ~/custom_iso/arch/boot/x86_64/, затерев донорские файлы.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Пересобрать ISO через xorriso. Версии совпадут, система продвинется дальше и упрется в UUID, как в старой доке, и мы сможем продолжить чистый эксперимент.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h5 id=&quot;путь_2_попробовать_дождаться_вдруг_отпустит&quot;&gt;Путь 2. Попробовать дождаться (вдруг отпустит?)&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Иногда при падении генераторов systemd ждет таймаут (около 90 секунд) и пробует продолжить загрузку остальных служб в аварийном режиме. &lt;br/&gt;

Если подождать пару минут, экран меняется или висит намертво на этой строчке?Если висит наглухо — переходим к Пути 1, чтобы выровнять версии ядра и слепка системы.
&lt;br/&gt;

В Linux-системах у systemd на запуск каждого генератора или службы по умолчанию заложен жесткий лимит времени (обычно 90 секунд). Если за это время капризный zram-generator не оклемается, ядро должно плюнуть на него, выдать статус [DEPEND] (ошибка зависимости) и попробовать запустить критически важные для нас вещи — текстовую консоль и службы логина.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=arhiv_29.05.2026_08.28&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_73.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_73.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_73.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udd75\ufe0f\u200d\u2642\ufe0f \u0420\u0430\u0437\u0431\u043e\u0440 \u043f\u0440\u043e\u0451\u0431\u0430: \u043e\u0442\u043a\u0443\u0434\u0430 \u0432\u0437\u044f\u043b\u0441\u044f zram-generator?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udd75\ufe0f_\u2642\ufe0f_\u0440\u0430\u0437\u0431\u043e\u0440_\u043f\u0440\u043e\u0451\u0431\u0430\u043e\u0442\u043a\u0443\u0434\u0430_\u0432\u0437\u044f\u043b\u0441\u044f_zram-generator&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:207,&amp;quot;secid&amp;quot;:108,&amp;quot;range&amp;quot;:&amp;quot;218998-223956&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit109&quot; id=&quot;📋_итоговый_чек-листхроники_ручной_сборки_headless_arch_iso&quot;&gt;📋 Итоговый чек-лист: Хроники ручной сборки Headless Arch ISO&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udccb \u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0447\u0435\u043a-\u043b\u0438\u0441\u0442: \u0425\u0440\u043e\u043d\u0438\u043a\u0438 \u0440\u0443\u0447\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 Headless Arch ISO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udccb_\u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439_\u0447\u0435\u043a-\u043b\u0438\u0441\u0442\u0445\u0440\u043e\u043d\u0438\u043a\u0438_\u0440\u0443\u0447\u043d\u043e\u0439_\u0441\u0431\u043e\u0440\u043a\u0438_headless_arch_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:207,&amp;quot;secid&amp;quot;:109,&amp;quot;range&amp;quot;:&amp;quot;223957-224066&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit110&quot; id=&quot;🕵️_♂️_часть_1_хроника_аудита_подопытной_флешки_вм_tom_2&quot;&gt;🕵️‍♂️ ЧАСТЬ 1. ХРОНИКА АУДИТА ПОДОПЫТНОЙ ФЛЕШКИ (ВМ tom_2)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Сессия началась с препарирования «вживую» запущенной в ОЗУ флешки №101 на изолированной машине tom_2. Нам требовалось понять причины двух проблем: почему ядро сыплет аппаратными ошибками прерываний (NMI) и почему система не записывается на пустой диск sda.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udd75\ufe0f\u200d\u2642\ufe0f \u0427\u0410\u0421\u0422\u042c 1. \u0425\u0420\u041e\u041d\u0418\u041a\u0410 \u0410\u0423\u0414\u0418\u0422\u0410 \u041f\u041e\u0414\u041e\u041f\u042b\u0422\u041d\u041e\u0419 \u0424\u041b\u0415\u0428\u041a\u0418 (\u0412\u041c tom_2)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udd75\ufe0f_\u2642\ufe0f_\u0447\u0430\u0441\u0442\u044c_1_\u0445\u0440\u043e\u043d\u0438\u043a\u0430_\u0430\u0443\u0434\u0438\u0442\u0430_\u043f\u043e\u0434\u043e\u043f\u044b\u0442\u043d\u043e\u0439_\u0444\u043b\u0435\u0448\u043a\u0438_\u0432\u043c_tom_2&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:207,&amp;quot;secid&amp;quot;:110,&amp;quot;range&amp;quot;:&amp;quot;224067-224643&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit111&quot; id=&quot;🔍_ключевые_улики_и_факты_добытые_по_ssh&quot;&gt;🔍 Ключевые улики и факты, добытые по SSH:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Сетевой стек и VLAN ID (Решено в один клик):Изначально Windows хост выдавал «Заданный узел недоступен» при пинге 192.168.1.150. Аудит свойств виртуального коммутатора Hyper-V Lan_without_internet показал активную галочку VLAN ID = 2. Хостовая Windows тегировала трафик, а Live-сессия Arch на eth0 ждала нетегированный (Native) поток. После сброса галочки VLAN ID сетевой мост мгновенно ожил, пошел чистый пинг, открылся SSH по PuTTY и отобразилась веб-страница.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Триумф SquashFS-слепка:Опровергнута теория о «затирании» кастомного корня донорскими файлами. Наличие активного статического IP 192.168.1.150, успешная авторизация под созданным пользователем eva, валидные Yescrypt-хэши ($y$) паролей в /etc/shadow и работающий Nginx на порту 5000 железно доказали: слепок airootfs.sfs жив, цел и развернулся в ОЗУ в штатном режиме. На скриншоте отобразилась дефолтная страница «Welcome to nginx!», так как контент инсталлятора в папку /usr/share/nginx/html/ еще не внедрялся.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Загадка и разгадка ZRAM (Причина сбоя на 2-й секунде):&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; На 2-й секунде загрузки флешки ядро выплевывало ошибку zram-generator failed with exit status 1.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Аудит в ОЗУ флешки (zramctl и lsmod | grep zram) выдал абсолютную тишину — модуль не загружен, устройства подкачки в памяти нет.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Поиск блокировок в /etc/modprobe.d/ вернул пустоту.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Глубинная причина: Локальный pacman -Q linux внутри слепка показал версию пакета модулей 7.0.9, а утилита uname -r запущенного ядра выдала донорскую версию 7.0.3. Произошел жесткий «мисматч» версий (Франкенштейн). Донорское ядро 7.0.3 из скачанного ISO не нашло своих модулей в слепке (там всё под 7.0.9), из-за чего отвалились драйверы, упал zram-generator, а виртуальный процессор Hyper-V начал засыпать консоль аппаратными ошибками прерываний NMI received for unknown reason 00.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Почему система не записалась на диск:Команда lsblk показала пустой жесткий диск sda (12G) без разделов. Аудит каталогов автозапуска systemd (/etc/systemd/system/multi-user.target.wants/), shell-профилей (.bash_profile, .bashrc) у eva и у root (у которого профиля вообще не было ввиду пустоты /etc/skel при базовой установке) доказал: в системе физически отсутствовали инструкции и скрипты для работы с дисками. Флешка вела себя как честный, чистый Live-CD.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udd0d \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0443\u043b\u0438\u043a\u0438 \u0438 \u0444\u0430\u043a\u0442\u044b, \u0434\u043e\u0431\u044b\u0442\u044b\u0435 \u043f\u043e SSH:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udd0d_\u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435_\u0443\u043b\u0438\u043a\u0438_\u0438_\u0444\u0430\u043a\u0442\u044b_\u0434\u043e\u0431\u044b\u0442\u044b\u0435_\u043f\u043e_ssh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:207,&amp;quot;secid&amp;quot;:111,&amp;quot;range&amp;quot;:&amp;quot;224644-228397&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit112&quot; id=&quot;часть_2_внесенные_изменения_в_руководство_на_сайте&quot;&gt;ЧАСТЬ 2. ВНЕСЕННЫЕ ИЗМЕНЕНИЯ В РУКОВОДСТВО НА САЙТЕ&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Осознав ценность 11-дневного труда, мы отказались от идеи «костылить» флешку на лету. Мы вернулись на tom_1 и начали пересобирать проект абсолютно с нуля. По ходу выполнения мы открыли ваше оригинальное руководство на сайте и сразу внесли в него фундаментальные архитектурные правки:
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0427\u0410\u0421\u0422\u042c 2. \u0412\u041d\u0415\u0421\u0415\u041d\u041d\u042b\u0415 \u0418\u0417\u041c\u0415\u041d\u0415\u041d\u0418\u042f \u0412 \u0420\u0423\u041a\u041e\u0412\u041e\u0414\u0421\u0422\u0412\u041e \u041d\u0410 \u0421\u0410\u0419\u0422\u0415&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0447\u0430\u0441\u0442\u044c_2_\u0432\u043d\u0435\u0441\u0435\u043d\u043d\u044b\u0435_\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f_\u0432_\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e_\u043d\u0430_\u0441\u0430\u0439\u0442\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:207,&amp;quot;secid&amp;quot;:112,&amp;quot;range&amp;quot;:&amp;quot;228398-229016&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit113&quot; id=&quot;🛠_этап_0_выравнивание_и_контроль_версий&quot;&gt;🛠 Этап 0. Выравнивание и контроль версий&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;как_было&quot;&gt;Как было:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В середине процесса скачивался донорский ISO, и файлы vmlinuz-linux и initramfs-linux.img механически забирались из него.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0.1. Актуализация пакетов на tom_1: Запустить полное обновление системы (pacman -Syu), чтобы зафиксировать стабильный срез ядра и утилит на хосте.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0.2. Смена источника ядра: Полностью отказаться от копирования файлов vmlinuz-linux и initramfs-linux.img из скачанных донорских ISO-образов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0.3. Прямая подстановка: Копировать файлы ядра и initramfs в структуру ISO (~/custom_iso/arch/boot/x86_64/) строго из родной папки /boot/ обновленной системы tom_1.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0.4. Сквозная проверка (Запрет сборки): Перед запуском упаковщика программно или визуально сверять версии:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Пакет: pacman -Q linux&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файл на хосте: file /boot/vmlinuz-linux&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файл в ISO: file ~/custom_iso/arch/boot/x86_64/vmlinuz-linuxВерсии должны совпадать символ в символ (например, строго 7.0.9-arch1-1).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;️_корректировка_1выравнивание_ядер_этап_0&quot;&gt;✏️ Корректировка №1: Выравнивание ядер (Этап 0)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;как_стало&quot;&gt;Как стало:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
 Мы ввели «Правило Нулевого Шага». Перед любой консервацией система tom_1 принудительно обновляется из зеркал (pacman -Syu), фиксируя эталонное свежее ядро (в нашем кейсе — 7.0.9-arch2-1). Копирование файлов ядра и initramfs в структуру конструктора теперь производится строго из родного каталога /boot/ самой обновленной tom_1. Это гарантирует 100% совпадение версий со слепком и навсегда убирает ошибку NMI и панику ZRAM.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;️_корректировка_2идеальное_место_для_интеграции_zram&quot;&gt;✏️ Корректировка №2: Идеальное место для интеграции ZRAM&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;как_было1&quot;&gt;Как было:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Текстовый конфиг zram-generator.conf лежал в системе, но утилита падала, так как бинарника не было в ОЗУ.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;как_стало1&quot;&gt;Как стало:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
 Мы нашли ювелирную точку на сайте. В подразделе «Установка инструментов сжатия и генератора ZRAM», строго после безопасной очистки fstab через truncate и перед непосредственным запуском команды mksquashfs, мы прописали совместную установку пакетов:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=207&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;bashsudo pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; squashfs-tools zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Это гарантирует, что бинарник и службы ZRAM попадут внутрь слепка за секунду до упаковки, а на этапе ранней эксплуатации tom_1 система не будет замусорена.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0 \u042d\u0442\u0430\u043f 0. \u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0432\u0435\u0440\u0441\u0438\u0439&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0_\u044d\u0442\u0430\u043f_0_\u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435_\u0438_\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c_\u0432\u0435\u0440\u0441\u0438\u0439&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:207,&amp;quot;secid&amp;quot;:113,&amp;quot;range&amp;quot;:&amp;quot;229017-232505&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit114&quot; id=&quot;🛠_часть_3_подготовка_файловой_системы_слепка&quot;&gt;🛠 ЧАСТЬ 3. Подготовка файловой системы слепка&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0 \u0427\u0410\u0421\u0422\u042c 3. \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441\u043b\u0435\u043f\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0_\u0447\u0430\u0441\u0442\u044c_3_\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_\u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439_\u0441\u0438\u0441\u0442\u0435\u043c\u044b_\u0441\u043b\u0435\u043f\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:208,&amp;quot;secid&amp;quot;:114,&amp;quot;range&amp;quot;:&amp;quot;232506-232600&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit115&quot; id=&quot;🧹_этап_1_статус_выполненных_шагов_на_свежей_вм_tom_1&quot;&gt;🧹 Этап 1. СТАТУС ВЫПОЛНЕННЫХ ШАГОВ НА СВЕЖЕЙ ВМ tom_1&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Продвигаясь мелкими шажками, строго по одной изолированной команде с мгновенным скриншот-контролем, мы успешно реализовали стартовый блок нового руководства на чистой tom_1:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.1. Запустили полное обновление системы (sudo pacman -Syu –noconfirm).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.2. Отправили ВМ в чистый ребут (sudo reboot), зашли обратно и зафиксировали в памяти ОЗУ эталонное родное ядро 7.0.9-arch2-1.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.3. Проверили пакет физического микрокода (pacman -Q linux-firmware) — версия 20260519-1 на месте, реальные сетевухи Intel/Broadcom заведутся.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.4. Ювелирно создали и сохранили на диск универсальный сетевой конфиг /etc/systemd/network/20-wired.network с маской Name=en* eth* и статикой 192.168.1.150/24.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.5. Перевели сетевую службу в автозапуск: sudo systemctl enable systemd-networkd (симлинки созданы).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.6. Включили &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-резолвер: sudo systemctl enable systemd-resolved.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.7. Убедились, что удаленный доступ активен: systemctl is-enabled sshd рапортует enabled.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.8. Проверили автозапуск веб-сервера: systemctl is-enabled nginx выдает enabled.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.9. Прогнали синтаксический тест Nginx (sudo nginx -t) — успешно, порт 5000 жестко привязан в nginx.conf.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.10. Проверили хэши безопасности пользователей (sudo getent shadow root eva) — современный Yescrypt ($y$) на месте, учетки активны. Прямой вход под root через su - root проверен и защищен вашим личным паролем.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.11. Вывели параметры ZRAM на хосте (lsmod и zramctl) — модуль в ядре активен, swap на 4 ГБ функционирует штатно.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.12. Сделали резервную копию рабочей таблицы разделов: sudo cp /etc/fstab /etc/fstab.bak [1.9].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.13. Обнулили оригинал: sudo truncate -s 0 /etc/fstab [1.9]. Контрольный cat /etc/fstab вернул идеальную пустую строку (оригинальная Btrfs-структура субтомов хоста надежно заперта в бэкапе .bak весом 837 байт) [1.4, 1.9].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.14. Отработали нашу новую эдит-запись: одной чистой командой доставили инструменты сжатия и генератор ZRAM (sudo pacman -S –noconfirm squashfs-tools zram-generator) [1.4]. Раздельная проверка подтвердила их наличие в системе [1.4].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.15. Доставили программную основу нашего будущего веб-инсталлятора: sudo pacman -S –noconfirm php-fpm [1.4].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.16–0.18. Поймали «выключенный» статус PHP-FPM через is-enabled и принудительно перевели его в автозапуск (sudo systemctl enable php-fpm), добившись жесткого статуса enabled [1.4].&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83e\uddf9 \u042d\u0442\u0430\u043f 1. \u0421\u0422\u0410\u0422\u0423\u0421 \u0412\u042b\u041f\u041e\u041b\u041d\u0415\u041d\u041d\u042b\u0425 \u0428\u0410\u0413\u041e\u0412 \u041d\u0410 \u0421\u0412\u0415\u0416\u0415\u0419 \u0412\u041c tom_1&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83e\uddf9_\u044d\u0442\u0430\u043f_1_\u0441\u0442\u0430\u0442\u0443\u0441_\u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0445_\u0448\u0430\u0433\u043e\u0432_\u043d\u0430_\u0441\u0432\u0435\u0436\u0435\u0439_\u0432\u043c_tom_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:208,&amp;quot;secid&amp;quot;:115,&amp;quot;range&amp;quot;:&amp;quot;232601-236405&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit116&quot; id=&quot;🚀_часть_4_что_предстоит_сделать_веб-инсталлятор&quot;&gt;🚀 ЧАСТЬ 4. ЧТО ПРЕДСТОИТ СДЕЛАТЬ (ВЕБ-ИНСТАЛЛЯТОР)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Мы остановились ровно перед разделом «Создание структуры каталогов для конструктора ISO». Мы полностью утвердили новую изящную концепцию: наша флешка будет не просто Live-CD, а полноценным WebUI-автономным сервером установки. Окно SSH нам нужно только для контроля, а сама установка на tom_2 будет происходить по клику кнопки из браузера на веб-странице 192.168.1.150:5000!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\ude80 \u0427\u0410\u0421\u0422\u042c 4. \u0427\u0422\u041e \u041f\u0420\u0415\u0414\u0421\u0422\u041e\u0418\u0422 \u0421\u0414\u0415\u041b\u0410\u0422\u042c (\u0412\u0415\u0411-\u0418\u041d\u0421\u0422\u0410\u041b\u041b\u042f\u0422\u041e\u0420)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\ude80_\u0447\u0430\u0441\u0442\u044c_4_\u0447\u0442\u043e_\u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442_\u0441\u0434\u0435\u043b\u0430\u0442\u044c_\u0432\u0435\u0431-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:208,&amp;quot;secid&amp;quot;:116,&amp;quot;range&amp;quot;:&amp;quot;236406-237155&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit117&quot; id=&quot;🗺_предстоящие_шаги_доработки_руководства_на_tom_1&quot;&gt;🗺 Предстоящие шаги доработки руководства на tom_1:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создание_структуры_каталогов_конструктора&quot;&gt;1. Создание структуры каталогов конструктора:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Мы создадим папку под слепок системы mkdir -p ~/custom_iso/arch/x86_64/. Проверим систему tom_2 и официальный iso образ на необходимость создания директори изолированного пути для ядра загрузчика, которого ранее в доноре возможно не было:&lt;br/&gt;

и если его не было,то создадим 
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=208&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
и проверим создание.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;разработка_веб-фронтенда_и_бэкенда_html_css_js_php&quot;&gt;2. Разработка Веб-Фронтенда и Бэкенда (HTML / CSS / JS / PHP):&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В каталоге /usr/share/nginx/html/ мы заменим стандартную заглушку Nginx на пульт управления:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; index.html + style.css: красивый интерфейс с большой кнопкой «Начать установку системы на tom_2».&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; script.js: обработчик клика, который через асинхронный fetch() пингует бэкенд и выводит логи установки в реальном времени.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; install.php: скрипт, принимающий запрос от JS и инициирующий системный вызов через shell_exec(&amp;#039;sudo /usr/share/nginx/html/installer.sh sda 2&amp;gt;&amp;amp;1&amp;#039;);. &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;

&lt;h4 id=&quot;обход_мины_с_правами_доступа_http_пользователь&quot;&gt;3. Обход мины с правами доступа (http пользователь):&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Поскольку PHP-FPM в Arch работает от имени пользователя http, мы создадим изолированный файл прав /etc/sudoers.d/web-installer внутри конструктора ISO и пропишем туда строго одну строчку беспарольного доступа к скрипту:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=209&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;http &lt;span class=&quot;re2&quot;&gt;ALL&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ALL:ALL&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; NOPASSWD: &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;installer.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
http ALL=(ALL:ALL) NOPASSWD: /usr/share/nginx/html/installer.sh
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создание_скрипта_разметки_по_логике_label_полный_отказ_от_uuid&quot;&gt;4. Создание скрипта разметки по логике LABEL (Полный отказ от UUID):&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Мы напишем installer.sh, который примет диск sda, занулит его через sgdisk –zap-all и наречет разделы жесткими глобальными метками: EFI раздел → LABEL=«ARCH_BOOT» (FAT32), Root раздел → LABEL=«ARCH_&lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;» (Btrfs). Скрипт создаст ваши btrfs-субтома (/@, /@home, /@pkg, /@log), скопирует систему из ОЗУ и подкинет универсальный статический /etc/fstab, полностью завязанный на метки LABEL=.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;запуск_заморозки_системы&quot;&gt;5. Запуск заморозки системы:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполним команду mksquashfs / ~/custom_iso/arch/x86_64/airootfs.sfs …. Внутри этого слепка теперь гарантированно окажутся и модули ядра 7.0.9, и php-fpm, и zram-generator. Сразу после этого вернем fstab хоста на место.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;сборка_через_xorriso&quot;&gt;6. Сборка через xorriso:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Мы соберем новый 102-й образ, жестко привязав имя диска к вашей метке тома -volid «ARCH_202605», пропишем флаг ядра unknown_nmi_panic=0 для защиты от прерываний Hyper-V
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;🔌_модификация_параметров_загрузчика_под_hyper-v&quot;&gt;🔌 Модификация параметров загрузчика под Hyper-V&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 6.1. Добавление флага ядра: При формировании конфигурационного файла ~/custom_iso/loader/entries/01-archiso-linux.conf в строку параметров ядра (options) дописать:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=210&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;textunknown_nmi_panic&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Это заблокирует ложные аппаратные прерывания виртуализации Hyper-V и предотвратит ступор консоли.&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\uddfa \u041f\u0440\u0435\u0434\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0448\u0430\u0433\u0438 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043d\u0430 tom_1:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\uddfa_\u043f\u0440\u0435\u0434\u0441\u0442\u043e\u044f\u0449\u0438\u0435_\u0448\u0430\u0433\u0438_\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438_\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430_\u043d\u0430_tom_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:208,&amp;quot;secid&amp;quot;:117,&amp;quot;range&amp;quot;:&amp;quot;237156-241329&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit118&quot; id=&quot;🌐_этап_3_развертывание_и_изоляция_веб-бэкенда_nginx_php&quot;&gt;🌐 Этап 3. Развертывание и изоляция веб-бэкенда (Nginx + PHP)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3.1. Интеграция PHP: Установить пакет php-fpm внутри слепка системы и связать его с Nginx через сокет в nginx.conf.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3.2. Настройка прав веб-пользователя: Создать изолированный файл правил прав доступа по пути /etc/sudoers.d/web-installer внутри конструктора ISO.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3.3. Беспарольный доступ к Bash: Прописать в этот файл строго одну строчку:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=211&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;texthttp &lt;span class=&quot;re2&quot;&gt;ALL&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ALL:ALL&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; NOPASSWD: &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;installer.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3.4. Маскировка прав: Перед заморозкой SquashFS жестко выставить права на этот файл, иначе sudo его проигнорирует:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=212&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;bashchown root:root &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sudoers.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;web-installer
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; 0440 &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sudoers.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;web-installer&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83c\udf10 \u042d\u0442\u0430\u043f 3. \u0420\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0438 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044f \u0432\u0435\u0431-\u0431\u044d\u043a\u0435\u043d\u0434\u0430 (Nginx + PHP)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83c\udf10_\u044d\u0442\u0430\u043f_3_\u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435_\u0438_\u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044f_\u0432\u0435\u0431-\u0431\u044d\u043a\u0435\u043d\u0434\u0430_nginx_php&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:211,&amp;quot;secid&amp;quot;:118,&amp;quot;range&amp;quot;:&amp;quot;241330-242409&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit119&quot; id=&quot;💽_этап_4_разработка_webui-инсталлятора_и_логики_label&quot;&gt;💽 Этап 4. Разработка WebUI-инсталлятора и логики LABEL&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4.1. Внедрение Bash-исполнителя: Написать скрипт /usr/share/nginx/html/installer.sh, который:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Принимает имя целевого диска как аргумент (например, $1 → sda).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Стирает старую разметку через sgdisk –zap-all.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Размечает диск и присваивает разделам жесткие метки: Раздел 1 (FAT32) → ARCH_BOOT, Раздел 2 (Btrfs) → ARCH_&lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создает внутри ARCH_&lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt; копию вашей структуры субтомов (/@, /@home, /@pkg, /@log).Копирует файлы из текущего ОЗУ флешки на новые субтома без интернета.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4.2. Полный отказ от UUID: Внедрить в устанавливаемую систему универсальный статический /etc/fstab, полностью завязанный на метки:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=213&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;LABEL&lt;/span&gt;=ARCH_OS   &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;       btrfs   rw,noatime,&lt;span class=&quot;re2&quot;&gt;compress&lt;/span&gt;=zstd,&lt;span class=&quot;re2&quot;&gt;subvol&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/@&lt;/span&gt;   &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LABEL&lt;/span&gt;=ARCH_BOOT &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot   vfat    rw,relatime,&lt;span class=&quot;re2&quot;&gt;fmask&lt;/span&gt;=0022,&lt;span class=&quot;re2&quot;&gt;dmask&lt;/span&gt;=0022     &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4.3. Верстка интерфейса (Фронтенд): Заменить дефолтный index.html в папке Nginx на кастомный пульт управления с использованием &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;, &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt; и JavaScript.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4.4. Кнопка «Старт»: Написать install.php, который по клику JS-кнопки из браузера безопасно вызывает:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=214&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;install.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;phpshell_exec&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;sudo /usr/share/nginx/html/installer.sh sda 2&amp;gt;&amp;amp;1&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udcbd \u042d\u0442\u0430\u043f 4. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 WebUI-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430 \u0438 \u043b\u043e\u0433\u0438\u043a\u0438 LABEL&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udcbd_\u044d\u0442\u0430\u043f_4_\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430_webui-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430_\u0438_\u043b\u043e\u0433\u0438\u043a\u0438_label&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:213,&amp;quot;secid&amp;quot;:119,&amp;quot;range&amp;quot;:&amp;quot;242410-244191&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit120&quot; id=&quot;конец&quot;&gt;Конец&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u043e\u043d\u0435\u0446&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0435\u0446&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:215,&amp;quot;secid&amp;quot;:120,&amp;quot;range&amp;quot;:&amp;quot;244192-244214&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit121&quot; id=&quot;дальше_читаем_только_если_230526_вы_собрали_флешку_но_она_не_запустилась&quot;&gt;Дальше читаем только если 23.05.26 вы собрали флешку, но она не запустилась!&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u0430\u043b\u044c\u0448\u0435 \u0447\u0438\u0442\u0430\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 23.05.26 \u0432\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u0444\u043b\u0435\u0448\u043a\u0443, \u043d\u043e \u043e\u043d\u0430 \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0430\u0441\u044c!&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u0430\u043b\u044c\u0448\u0435_\u0447\u0438\u0442\u0430\u0435\u043c_\u0442\u043e\u043b\u044c\u043a\u043e_\u0435\u0441\u043b\u0438_230526_\u0432\u044b_\u0441\u043e\u0431\u0440\u0430\u043b\u0438_\u0444\u043b\u0435\u0448\u043a\u0443_\u043d\u043e_\u043e\u043d\u0430_\u043d\u0435_\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0430\u0441\u044c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:215,&amp;quot;secid&amp;quot;:121,&amp;quot;range&amp;quot;:&amp;quot;244215-244356&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit122&quot; id=&quot;🎯_1_глобальная_цель_проекта&quot;&gt;🎯 1. Глобальная цель проекта&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Собрать кастомный, полностью автономный ISO-образ Arch Linux на базе живой системы tom_1 для офлайн-установки на «слепые» физические сервера (Supermicro, старый HP, два кастомных ноунейма) без интернета и мониторов. Доступ к серверам после старта с флешки — строго по SSH.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83c\udfaf 1. \u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0430\u044f \u0446\u0435\u043b\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83c\udfaf_1_\u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0430\u044f_\u0446\u0435\u043b\u044c_\u043f\u0440\u043e\u0435\u043a\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:215,&amp;quot;secid&amp;quot;:122,&amp;quot;range&amp;quot;:&amp;quot;244357-244895&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit123&quot; id=&quot;если_230526_года_до_2359_вам_не_хватит_ума_собрать_рабочую_флешку_только_тогда_для_анализа_читаем_рабочий_код_от_210526&quot;&gt;Если 23.05.26 года до 23:59 вам не хватит ума собрать рабочую флешку. Только тогда! Для Анализа читаем рабочий код от 21.05.26&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0415\u0441\u043b\u0438 23.05.26 \u0433\u043e\u0434\u0430 \u0434\u043e 23:59 \u0432\u0430\u043c \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u0442 \u0443\u043c\u0430 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0443\u044e \u0444\u043b\u0435\u0448\u043a\u0443. \u0422\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0433\u0434\u0430! \u0414\u043b\u044f \u0410\u043d\u0430\u043b\u0438\u0437\u0430 \u0447\u0438\u0442\u0430\u0435\u043c \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u043e\u0434 \u043e\u0442 21.05.26&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0435\u0441\u043b\u0438_230526_\u0433\u043e\u0434\u0430_\u0434\u043e_2359_\u0432\u0430\u043c_\u043d\u0435_\u0445\u0432\u0430\u0442\u0438\u0442_\u0443\u043c\u0430_\u0441\u043e\u0431\u0440\u0430\u0442\u044c_\u0440\u0430\u0431\u043e\u0447\u0443\u044e_\u0444\u043b\u0435\u0448\u043a\u0443_\u0442\u043e\u043b\u044c\u043a\u043e_\u0442\u043e\u0433\u0434\u0430_\u0434\u043b\u044f_\u0430\u043d\u0430\u043b\u0438\u0437\u0430_\u0447\u0438\u0442\u0430\u0435\u043c_\u0440\u0430\u0431\u043e\u0447\u0438\u0439_\u043a\u043e\u0434_\u043e\u0442_210526&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:215,&amp;quot;secid&amp;quot;:123,&amp;quot;range&amp;quot;:&amp;quot;244896-245122&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit124&quot; id=&quot;остановились_тут&quot;&gt;Остановились тут&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создаем точки монтирования, монтируем ISO и копируем его структуру в наш рабочий каталог.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=215&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; loop ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-x86_64.iso &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;команда_для_проверки_результата&quot;&gt;Команда для проверки результата:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что папки теперь на месте в ~/custom_iso:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=216&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Монтирование прошло успешно (предупреждение о read-only для ISO — это норма). Теперь копируем структуру во временную папку.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;выполните_копирование&quot;&gt;Выполните копирование:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=217&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;даем_права_на_запись_во_всю_структуру_конструктора&quot;&gt;Даем права на запись во всю структуру конструктора&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сделаем все папки и файлы внутри ~/custom_iso доступными для изменения:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=218&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; +&lt;span class=&quot;kw2&quot;&gt;w&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Чтобы лично убедиться, что права изменились и у пользователя eva теперь есть доступ на запись (w) ко всем папкам и файлам внутри конструктора, выполните две команды проверки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=219&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; +&lt;span class=&quot;kw2&quot;&gt;w&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso
&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso
&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;на_что_смотрим_в_выводе_перед_тем_как_идти_дальше&quot;&gt;На что смотрим в выводе перед тем, как идти дальше:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В строках папок arch, EFI и loader права должны начинаться с drwxr-xr-x (главное — наличие буквы w в первой тройке символов).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Внутри папки entries файлы должны получить права -rw-r–r– (также с буквой w)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;записываем_универсальный_конфиг_в_правильный_файл&quot;&gt;Записываем универсальный конфиг в правильный файл&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=220&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf
title Arch Linux &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; medium &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x86_64, UEFI&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
linux &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux
initrd &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;initramfs-linux.img
options &lt;span class=&quot;re2&quot;&gt;archisobasedir&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;archisolabel&lt;/span&gt;=ARCH_202605
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_результат_записи1&quot;&gt;Проверяем результат записи&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что файл 01-archiso-linux.conf обновился корректно:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=221&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_пройдена_идеально&quot;&gt;Проверка пройдена идеально.&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Конфигурационный файл 01-archiso-linux.conf успешно перезаписан. Параметр archisolabel=ARCH_202605 зафиксирован в системе. Теперь ядро при старте будет искать носитель строго по метке, и загрузка не упадет.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;делаем_fstab_чистым_через_бэкап&quot;&gt;Делаем fstab чистым (через бэкап)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
временно уберем строчки из fstab на tom_1, соберем слепок и вернем всё назад. На чистом tom_1 в fstab и так практически ничего нет, кроме корня.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_содержимое_оригинального_fstab&quot;&gt;Проверяем содержимое оригинального fstab&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=222&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;делаем_резервную_копию_вашего_рабочего_fstab&quot;&gt;Делаем резервную копию вашего рабочего fstab:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=223&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_его_наличие&quot;&gt;проверяем его наличие&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=224&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Мы должны увидеть два файла одинакового размера, и содержимое fstab.bak должно до символа совпадать с оригиналом.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;бэкап_проверен&quot;&gt;Бэкап проверен&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
всё на месте до единого символа. В оригинальном конфиге как раз жестко завязаны UUID разделов Btrfs (/, /home, /var/…) и vfat (/boot) диска sdb. Именно эти строки systemd отчаянно пытался найти в виртуалке, вызывая аварийный режим. Теперь, когда в основном файле пусто, система внутри ISO-образа больше не будет спотыкаться о локальную разметку tom_1.
Оригинальные данные в полной безопасности, переходим к упаковке.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;полностью_очищаем_fstab_перед_упаковкой&quot;&gt;Полностью очищаем fstab перед упаковкой:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=225&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; truncate &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Базовая загрузочная структура полностью готова к упаковке новой системы. 
Переходим к установке утилит и заморозке чистого tom_1 на место удаленного файла ОС.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_squashfs-tools&quot;&gt;Установка squashfs-tools&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Поскольку система чистая, ставим пакет сжатия заново:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=226&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; squashfs-tools&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;замораживаем_и_упаковываем_живой_tom_1&quot;&gt;Замораживаем и упаковываем живой tom_1&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
После успешной установки пакета запускаем сборку слепка файловой системы:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=227&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mksquashfs &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs \
&lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lost+found ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-x86_64.iso ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso \
&lt;span class=&quot;re5&quot;&gt;-comp&lt;/span&gt; zstd &lt;span class=&quot;re5&quot;&gt;-b&lt;/span&gt; 1M&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Процесс займет несколько минут, на экране побегут упаковываемые файлы).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;команда_для_обязательной_проверки_результата&quot;&gt;Команда для обязательной проверки результата:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Как только утилита mksquashfs завершит работу и вернет терминал к строке [eva@tom1 ~]$, проверьте, что файл создался и посмотрите его вес:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=228&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;упаковка_squashfs_завершена_успешно&quot;&gt;Упаковка SquashFS завершена успешно.&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Файл airootfs.sfs весит 1.5 ГБ, статистика UID/GID на скриншоте подтверждает, что все пользователи (включая eva и http) корректно перенеслись внутрь слепка системы.&lt;br/&gt;

Поскольку утилита mksquashfs работала через sudo, владельцем созданного файла стал root. Проверяем и правим права, чтобы на этапе финальной сборки ISO у нас не возникло ошибок доступа.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;возвращаем_ваш_fstab_на_место_чтобы_tom_1_не_пострадал&quot;&gt;возвращаем ваш fstab на место, чтобы tom_1 не пострадал:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=229&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;меняем_владельца_файла&quot;&gt;Меняем владельца файла&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните команду смены владельца:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=230&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chown&lt;/span&gt; eva:eva ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;обязательная_проверка_результата&quot;&gt;Обязательная проверка результата&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что права обновились корректно:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=231&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;на_что_смотрим_в_выводе2&quot;&gt;На что смотрим в выводе:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Вместо root root в строке файла должно быть четко написано eva eva.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_прав_пройдена_успешно&quot;&gt;Проверка прав пройдена успешно.&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Владельцем файла airootfs.sfs теперь официально является eva eva.&lt;br/&gt;

Мы подошли к финальному этапу — сборке кастомного ISO-образа. Помня прошлую ошибку с регистром букв в имени загрузчика (BOOTx64.EFI), мы используем точную и проверенную команду сборки.&lt;br/&gt;

Поскольку система чистая, сначала установим xorriso, а затем соберем образ.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_xorriso&quot;&gt;Установка xorriso&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните команду установки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=232&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; xorriso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;финальная_сборка_универсального_iso&quot;&gt;Финальная сборка универсального ISO&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Запустите команду сборки (в ней прописана правильная маленькая буква x и наша метка тома ARCH_202605):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=233&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;xorriso &lt;span class=&quot;re5&quot;&gt;-as&lt;/span&gt; mkisofs \
  &lt;span class=&quot;re5&quot;&gt;-iso-level&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-full-iso9660-filenames&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-volid&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ARCH_202605&amp;quot;&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-eltorito-alt-boot&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;EFI/BOOT/BOOTx64.EFI&amp;quot;&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-no-emul-boot&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-isohybrid-gpt-basdat&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-output&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso \
  ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;обязательная_проверка_результата1&quot;&gt;Обязательная проверка результата&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что файл arch_custom.iso успешно сгенерировался в вашей домашней директории, проверив его размер:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=234&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;сборка_нового_образа_завершена_идеально&quot;&gt;Сборка нового образа завершена идеально.&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Мы видим заветную строку Writing to &amp;#039;stdio…&amp;#039; completed successfully и готовый файл arch_custom.iso весом 1.7 ГБ.&lt;br/&gt;

В этот раз мы проверили каждый шаг, исправили права на папки и зашили универсальный параметр загрузки ядра по метке тома archisolabel=ARCH_202605.&lt;br/&gt;

Переходим к проверке на виртуальной машине tom_2. Вытаскиваем готовый ISO-образ в Windows.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;скачиваем_новый_iso_в_windows&quot;&gt;Скачиваем новый ISO в Windows&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Эта команда без лишнего мусора и длинных списков выведет ровно одно значение — текущий IP-адрес, по которому tom_1 доступен в вашей сети.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=235&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ip route&lt;/span&gt; get &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $7}&#039;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Откройте PowerShell на вашем хостовом компьютере с Windows и запустите скачивание файла:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=236&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;cmd&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;scp&lt;/span&gt; eva&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;192.168.1.72:&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;eva&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso C:\Users\Public\Downloads\arch_custom.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(При запросе введите пароль пользователя eva).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;выполнен_успешно&quot;&gt;выполнен успешно!&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Новый универсальный образ arch_custom.iso размером 1.7 ГБ полностью скачан в Windows. Дата изменения — свежая (14:01).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;открываем_папку_с_файлом_на_windows&quot;&gt;Открываем папку с файлом на Windows&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Нажмите на клавиатуре комбинацию клавиш Win + R (откроется окошко «Выполнить»), вставьте туда вот этот путь и нажмите Enter:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=arhiv_29.05.2026_08.28&amp;amp;codeblock=237&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;txt&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code sql&quot;&gt;C:\Users\Public\Downloads&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;дважды_щелкнуть_мышкой_по_диску&quot;&gt;дважды щелкнуть мышкой по диску&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
и записать руфусом
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;извлекаем_диск_из_windows&quot;&gt;Извлекаем диск из Windows&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Даже если вы нажимали «Извлечь», Rufus или Проводник могли оставить фоновый процесс.
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте «Управление дисками» (Disk Management) в Windows.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Найдите внизу списка наш Диск 2 (виртуальный).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Нажмите правой кнопкой мыши по серой зоне с надписью «Диск 2» и выберите «Отсоединить виртуальный жесткий диск». Если его там уже нет — отлично.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u0442\u0443\u0442&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c_\u0442\u0443\u0442&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:215,&amp;quot;secid&amp;quot;:124,&amp;quot;range&amp;quot;:&amp;quot;245123-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 29 May 2026 05:29:00 +0000</pubDate>
        </item>
        <item>
            <title>html_color_table</title>
            <link>https://wwoss.ru/doku.php?id=html_color_table&amp;rev=1693614433</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;таблица_html_цветов&quot;&gt;Таблица HTML цветов&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

&lt;body&gt;
	&lt;section&gt;

								&lt;div class=&quot;view_anchor&quot;&gt;

						&lt;h2 id=&quot;link-osnovnye-cveta&quot;&gt;
								Основные цвета								

							&lt;/a&gt;
						&lt;/h2&gt; 
					&lt;/div&gt;
					&lt;table class=&quot;tbl-color&quot;&gt;
	&lt;colgroup&gt;
		&lt;col width=&quot;200&quot;&gt;
		&lt;col width=&quot;200&quot;&gt;
		&lt;col width=&quot;100&quot;&gt;
		&lt;col width=&quot;200&quot;&gt;
	&lt;/colgroup&gt;
	&lt;tbody&gt;
		&lt;tr style=&quot;background: #000; color: #fff;&quot;&gt;
			&lt;td&gt;Черный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Black&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#000000&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(0,0,0)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #808080; color: #fff;&quot;&gt;
			&lt;td&gt;Серый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Gray&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#808080&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(128,128,128)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #c0c0c0; color: #404040;&quot;&gt;
			&lt;td&gt;Серебряный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Silver&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#c0c0c0&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(192,192,192)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #fff; color: #808080;&quot;&gt;
			&lt;td&gt;Белый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;White&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ffffff&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,255,255)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ff00ff; color: #000000;&quot;&gt;
			&lt;td&gt;Фуксия, Маджента&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Fuchsia,Magenta&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ff00ff&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,0,255)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #800080; color: #ff80ff;&quot;&gt;
			&lt;td&gt;Пурпурный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Purple&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#800080&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(128,0,128)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ff0000; color: #000;&quot;&gt;
			&lt;td&gt;Красный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Red&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ff0000&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,0,0)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #800000; color: #ff8080;&quot;&gt;
			&lt;td&gt;Коричнево-малиновый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Maroon&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#800000&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(128,0,0)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ffff00; color: #808000;&quot;&gt;
			&lt;td&gt;Жёлтый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Yellow&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ffff00&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(205,92,92)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #808000; color: #ffff00;&quot;&gt;
			&lt;td&gt;Оливковый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Olive&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#808000&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(240,128,128)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #00ff00; color: #008000;&quot;&gt;
			&lt;td&gt;Лайм&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Lime&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#00ff00&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(250,128,114)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #008000; color: #00ff00;&quot;&gt;
			&lt;td&gt;Зелёный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Green&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#008000&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(233,150,122)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #00ffff; color: #008080;&quot;&gt;
			&lt;td&gt;Цвет морской волны&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Aqua&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#00ffff&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(205,92,92)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #008080; color: #00ffff;&quot;&gt;
			&lt;td&gt;Окраски птицы чирок&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Teal&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#008080&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(240,128,128)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #0000ff; color: #8080ff;&quot;&gt;
			&lt;td&gt;Синий&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Blue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#0000ff&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(250,128,114)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #000080; color: #8080ff;&quot;&gt;
			&lt;td&gt;Форма морских офицеров&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Navy&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#000080&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(233,150,122)&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;/section&gt;			
			&lt;section&gt;

								&lt;div class=&quot;view_anchor&quot;&gt;
						&lt;h2 id=&quot;link-serye-tona&quot;&gt;

								Серые тона	
						&lt;/h2&gt; 
					&lt;/div&gt;
					&lt;table class=&quot;tbl-color&quot;&gt;
	&lt;colgroup&gt;
		&lt;col width=&quot;200&quot;&gt;
		&lt;col width=&quot;200&quot;&gt;
		&lt;col width=&quot;100&quot;&gt;
		&lt;col width=&quot;200&quot;&gt;
	&lt;/colgroup&gt;
	&lt;tbody&gt;
		&lt;tr style=&quot;background: #f5f5f5; color: ##757575;&quot;&gt;
			&lt;td&gt;Дымчато-белый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;WhiteSmoke&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#f5f5f5&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(245,245,245)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #dcdcdc; color: #5c5c5c;&quot;&gt;
			&lt;td&gt;Гейнсборо&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Gainsboro&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#dcdcdc&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(220,220,220)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #d3d3d3; color: #545454;&quot;&gt;
			&lt;td&gt;Светло серый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;LightGrey&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#d3d3d3&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(211,211,211)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #c0c0c0; color: #404040;&quot;&gt;
			&lt;td&gt;Серебряный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Silver&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#c0c0c0&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(192,192,192)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #a9a9a9; color: #292929;&quot;&gt;
			&lt;td&gt;Темно серый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DarkGray&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#a9a9a9&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(169,169,169)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #808080; color: #e8e8e8;&quot;&gt;
			&lt;td&gt;Серый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Gray&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#808080&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(128,128,128)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #696969; color: #e8e8e8;&quot;&gt;
			&lt;td&gt;Тусклый серый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DimGray&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#696969&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(105,105,105)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #778899; color: #14171a;&quot;&gt;
			&lt;td&gt;Светлый аспидно-серый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;LightSlateGray&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#778899&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(119,136,153)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #708090; color: #0c0e0f;&quot;&gt;
			&lt;td&gt;Серый шифер&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;SlateGray&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#708090&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(112,128,144)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #2f4f4f; color: #e8e8e8;&quot;&gt;
			&lt;td&gt;Аспидно-серый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DarkSlateGray&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#2f4f4f&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(47,79,79)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #000000; color: #808080;&quot;&gt;
			&lt;td&gt;Чёрный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Black&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#000000&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(0,0,0)&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;/section&gt;			
			&lt;section&gt;

								&lt;div class=&quot;view_anchor&quot;&gt;

						&lt;h2 id=&quot;link-krasnye-tona&quot;&gt;
								Красные тона		
						&lt;/h2&gt; 
					&lt;/div&gt;
					&lt;table class=&quot;tbl-color&quot;&gt;
	&lt;colgroup&gt;
		&lt;col width=&quot;200&quot;&gt;
		&lt;col width=&quot;200&quot;&gt;
		&lt;col width=&quot;100&quot;&gt;
		&lt;col width=&quot;200&quot;&gt;
	&lt;/colgroup&gt;
	&lt;tbody&gt;
		&lt;tr style=&quot;background: #f08080; color: #703b3b;&quot;&gt;
			&lt;td&gt;Светло-коралловый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;LightCoral&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#f08080&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(240,128,128)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #fa8072; color: #7a3f38;&quot;&gt;
			&lt;td&gt;Лососевый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Salmon&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#fa8072&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(250,128,114)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #E9967A; color: #694336;&quot;&gt;
			&lt;td&gt;Тёмно-лососёвый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DarkSalmon&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#e9967a&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(233,150,122)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ffa07a; color: #694336;&quot;&gt;
			&lt;td&gt;Светло-лососёвый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;LightSalmon&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ffa07a&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,160,122)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #dc143c; color: #000000;&quot;&gt;
			&lt;td&gt;Малиновый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Crimson&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#dc143c&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(220,20,60)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ff0000; color: #000000;&quot;&gt;
			&lt;td&gt;Красный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Red&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ff0000&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,0,0)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #cd5c5c; color: #4d2222;&quot;&gt;
			&lt;td&gt;Индийский красный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;IndianRed&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#cd5c5c&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(205,92,92)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #b22222; color: #000000;&quot;&gt;
			&lt;td&gt;Кирпичный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;FireBrick&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#b22222&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(178,34,34)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #a52a2a; color: #000000;&quot;&gt;
			&lt;td&gt;Коричнево-бордовый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Brown&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#a52a2a&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(165,42,42)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #8b0000; color: #ff8080;&quot;&gt;
			&lt;td&gt;Тёмно-красный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DarkRed&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#8b0000&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(139,0,0)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #800000; color: #ff8080;&quot;&gt;
			&lt;td&gt;Коричнево-малиновый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Maroon&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#800000&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(128,0,0)&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;/section&gt;			
			&lt;section&gt;

								&lt;div class=&quot;view_anchor&quot;&gt;

						&lt;h2 id=&quot;link-oranzhevye-tona&quot;&gt;

								Оранжевые тона	
					&lt;/div&gt;
					&lt;table class=&quot;tbl-color&quot;&gt;
	&lt;colgroup&gt;
		&lt;col width=&quot;200&quot;&gt;
		&lt;col width=&quot;200&quot;&gt;
		&lt;col width=&quot;100&quot;&gt;
		&lt;col width=&quot;200&quot;&gt;
	&lt;/colgroup&gt;
	&lt;tbody&gt;
		&lt;tr style=&quot;background: #fff5ee; color: #807a77;&quot;&gt;
			&lt;td&gt;Цвет морской раковины&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Seashell&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#fff5ee&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,245,238)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #f5f5dc; color: #75756a;&quot;&gt;
			&lt;td&gt;Бежевый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Beige&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#f5f5dc&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(245,245,220)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #fdf5e6; color: #7d7972;&quot;&gt;
			&lt;td&gt;Старое кружево&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;OldLace&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#fdf5e6&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(253,245,230)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #fffaf0; color: #807d78;&quot;&gt;
			&lt;td&gt;Цветочный белый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;FloralWhite&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#fffaf0&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,250,240)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #faebd7; color: #7a7369;&quot;&gt;
			&lt;td&gt;Белый антик&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;AntiqueWhite&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#faebd7&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(250,235,215)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #faf0e6; color: #7a7671;&quot;&gt;
			&lt;td&gt;Льняной&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Linen&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#faf0e6&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(250,240,230)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ffebcd; color: #807566;&quot;&gt;
			&lt;td&gt;Очищенный миндаль&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;BlanchedAlmond&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ffebcd&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,235,205)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ffe4c4; color: #807262;&quot;&gt;
			&lt;td&gt;Бисквитный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Bisque&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ffe4c4&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,228,196)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ffdead; color: #806f57;&quot;&gt;
			&lt;td&gt;Белый навахо&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;NavajoWhite&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ffdead&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,222,173)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #f5deb3; color: #756a56;&quot;&gt;
			&lt;td&gt;Пшеничный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Wheat&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#f5deb3&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(245,222,179)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #deb887; color: #5e4e3a;&quot;&gt;
			&lt;td&gt;Плотная древесина&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;BurlyWood&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#deb887&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(222,184,135)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #d2b48c; color: #524637;&quot;&gt;
			&lt;td&gt;Цвет загара&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Tan&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#d2b48c&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(210,180,140)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #f4a460; color: #754f2e;&quot;&gt;
			&lt;td&gt;Красный песок&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;SandyBrown&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#f4a460&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(244,164,96)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #daa520; color: #59440d;&quot;&gt;
			&lt;td&gt;Золотисто-березовый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Goldenrod&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#daa520&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(218,165,32)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #b8860b; color: #382903;&quot;&gt;
			&lt;td&gt;Тёмный золотарник&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DarkGoldenRod&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#b8860b&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(184,134,11)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #cd853f; color: #4d3218;&quot;&gt;
			&lt;td&gt;Перу&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Peru&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#cd853f&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(205,133,63)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #d2691e; color: #52290b;&quot;&gt;
			&lt;td&gt;Шоколадный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Chocolate&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#d2691e&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(210,105,30)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #8b4513; color: #0d0602;&quot;&gt;
			&lt;td&gt;Кожаного седла для лошади&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;SaddleBrown&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#8b4513&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(139,69,19)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #a0522d; color: #211109;&quot;&gt;
			&lt;td&gt;Сиена&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Sienna&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#a0522d&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(160,82,45)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ffa07a; color: #80503d;&quot;&gt;
			&lt;td&gt;Светлый сомон&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;LightSalmon&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ffa07a&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,160,122)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ff7f50; color: #803f28;&quot;&gt;
			&lt;td&gt;Коралловый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Coral&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ff7f50&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,127,80)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ff6347; color: #803124;&quot;&gt;
			&lt;td&gt;Томатный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Tomato&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ff6347&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,99,71)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ff4500; color: #000000;&quot;&gt;
			&lt;td&gt;Оранжево-красный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;OrangeRed&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ff4500&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,69,0)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ff8c00; color: #804600;&quot;&gt;
			&lt;td&gt;Тёмно-оранжевый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DarkOrange&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ff8c00&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,140,0)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ffa500; color: #805300;&quot;&gt;
			&lt;td&gt;Оранжевый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Orange&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ffa500&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,165,0)&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;/section&gt;			
			&lt;section&gt;

								&lt;div class=&quot;view_anchor&quot;&gt;

						&lt;h2 id=&quot;link-zheltye-tona&quot;&gt;
								Жёлтые тона		
						&lt;/h2&gt; 
					&lt;/div&gt;
					&lt;table class=&quot;tbl-color&quot;&gt;
	&lt;colgroup&gt;
		&lt;col width=&quot;200&quot;&gt;
		&lt;col width=&quot;200&quot;&gt;
		&lt;col width=&quot;100&quot;&gt;
		&lt;col width=&quot;200&quot;&gt;
	&lt;/colgroup&gt;
	&lt;tbody&gt;
		&lt;tr style=&quot;background: #fff8dc; color: #807c6e;&quot;&gt;
			&lt;td&gt;Цвет пестиков неспелой кукурузы&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Cornsilk&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#fff8dc&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,248,220)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #fffff0; color: #808078;&quot;&gt;
			&lt;td&gt;Слоновая кость&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Ivory&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#fffff0&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,255,240)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ffffe0; color: #808070;&quot;&gt;
			&lt;td&gt;Светло-жёлтый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;LightYellow&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ffffe0&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,255,224)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #fffacd; color: #807d66;&quot;&gt;
			&lt;td&gt;Лимонно-кремовый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;LemonChiffon&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#fffacd&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,250,205)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #fafad2; color: #7a7a67;&quot;&gt;
			&lt;td&gt;Светло-жёлтый золотистый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;LightGoldenrodYellow&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#fafad2&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(250,250,210)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ffefd5; color: #80786b;&quot;&gt;
			&lt;td&gt;Побег папайи&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;PapayaWhip&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ffefd5&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,239,213)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ffe4b5; color: #80725b;&quot;&gt;
			&lt;td&gt;Мокасиновый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Moccasin&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ffe4b5&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,228,181)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ffdab9; color: #806d5d;&quot;&gt;
			&lt;td&gt;Тёмно-персиковый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;PeachPuff&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ffdab9&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,218,185)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #eee8aa; color: #6e6b4e;&quot;&gt;
			&lt;td&gt;Бледно-золотистый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;PaleGoldenrod&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#eee8aa&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(238,232,170)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #f0e68c; color: #706b41;&quot;&gt;
			&lt;td&gt;Светлый хаки&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Khaki&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#f0e68c&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(240,230,140)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #bdb76b; color: #3d3b23;&quot;&gt;
			&lt;td&gt;Тёмный хаки&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DarkKhaki&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#bdb76b&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(189,183,107)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ffff00; color: #808000;&quot;&gt;
			&lt;td&gt;Жёлтый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Yellow&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ffff00&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,255,0)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ffd700; color: #806c00;&quot;&gt;
			&lt;td&gt;Золотой&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Gold&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ffd700&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,215,0)&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;

		&lt;/section&gt;			
			&lt;section&gt;

								&lt;div class=&quot;view_anchor&quot;&gt;

						&lt;h2 id=&quot;link-zelenye-tona&quot;&gt;
								Зелёные тона
						&lt;/h2&gt; 
					&lt;/div&gt;
					&lt;table class=&quot;tbl-color&quot;&gt;
	&lt;colgroup&gt;
		&lt;col width=&quot;200&quot;&gt;
		&lt;col width=&quot;200&quot;&gt;
		&lt;col width=&quot;100&quot;&gt;
		&lt;col width=&quot;200&quot;&gt;
	&lt;/colgroup&gt;
	&lt;tbody&gt;
		&lt;tr style=&quot;background: #f0fff0; color: #788078;&quot;&gt;
			&lt;td&gt;Медовая роса&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Honeydew&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#f0fff0&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(240,255,240)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #f5fffa; color: #7a807d;&quot;&gt;
			&lt;td&gt;Мятно-кремовый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;MintCream&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#f5fffa&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(245,255,250)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #adff2f; color: #568017;&quot;&gt;
			&lt;td&gt;Зелёно-жёлтый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;GreenYellow&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#adff2f&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(173,255,47)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #7fff00; color: #408000;&quot;&gt;
			&lt;td&gt;Шартрёз&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Chartreuse&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#7fff00&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(127,255,0)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #7cfc00; color: #3e7d00;&quot;&gt;
			&lt;td&gt;Зелёная лужайка&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;LawnGreen&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#7cfc00&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(124,252,0)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #00ff00; color: #008000;&quot;&gt;
			&lt;td&gt;Лайм&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Lime&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#00ff00&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(0,255,0)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #32cd32; color: #124d12;&quot;&gt;
			&lt;td&gt;Лаймово-зелёный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;LimeGreen&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#32cd32&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(50,205,50)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #98fb98; color: #4b7a4b;&quot;&gt;
			&lt;td&gt;Бледный зелёный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;PaleGreen&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#98fb98&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(152,251,152)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #90ee90; color: #436e43;&quot;&gt;
			&lt;td&gt;Светло-зелёный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;LightGreen&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#90ee90&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(144,238,144)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #00fa9a; color: #007a4b;&quot;&gt;
			&lt;td&gt;Умеренный весенний зелёный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;MediumSpringGreen&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#00fa9a&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(0,250,154)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #00ff7f; color: #008040;&quot;&gt;
			&lt;td&gt;Весенне-зелёный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;SpringGreen&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#00ff7f&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(0,255,127)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #3cb371; color: #113320;&quot;&gt;
			&lt;td&gt;Умеренно-зелёное море&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;MediumSeaGreen&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#3cb371&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(60,179,113)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #2e8b57; color: #040d08;&quot;&gt;
			&lt;td&gt;Зелёное море&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;SeaGreen&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#2e8b57&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(46,139,87)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #228b22; color: #030d03;&quot;&gt;
			&lt;td&gt;Лесной зелёный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;ForestGreen&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#228b22&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(34,139,34)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #008000; color: #00ff00;&quot;&gt;
			&lt;td&gt;Зелёный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Green&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#008000&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(0,128,0)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #006400; color: #00e300;&quot;&gt;
			&lt;td&gt;Очень тёмный лимонный зеленый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DarkGreen&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#006400&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(0,100,0)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #9acd32; color: #394d12;&quot;&gt;
			&lt;td&gt;Жёлто-зелёный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;YellowGreen&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#9acd32&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(154,205,50)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #6b8e23; color: #0b0f04;&quot;&gt;
			&lt;td&gt;Нежно-оливковый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;OliveDrab&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#6b8e23&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(107,142,35)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #808000; color: #ffff00;&quot;&gt;
			&lt;td&gt;Оливковый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Olive&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#808000&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(128,128,0)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #556b2f; color: #baeb67;&quot;&gt;
			&lt;td&gt;Тёмный оливково-зеленый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DarkOliveGreen&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#556b2f&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(85,107,47)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #66cdaa; color: #264d40;&quot;&gt;
			&lt;td&gt;Умеренный аквамариновый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;MediumAquamarine&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#66cdaa&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(102,205,170)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #8fbc8f; color: #2f3d2f;&quot;&gt;
			&lt;td&gt;Тёмное зелёное море&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DarkSeaGreen&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#8fbc8f&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(143,188,143)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #20b2aa; color: #093331;&quot;&gt;
			&lt;td&gt;Светлое зелёное море&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;LightSeaGreen&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#20b2aa&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(32,178,170)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #008b8b; color: #000d0d;&quot;&gt;
			&lt;td&gt;Тёмный циан&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DarkCyan&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#008b8b&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(0,139,139)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #008080; color: #00ffff;&quot;&gt;
			&lt;td&gt;Окраски птицы чирок&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Teal&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#008080&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(0,128,128)&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;/section&gt;			
			&lt;section&gt;

								&lt;div class=&quot;view_anchor&quot;&gt;

						&lt;h2 id=&quot;link-sinie-tona&quot;&gt;
								Синие тона		
						&lt;/h2&gt; 
					&lt;/div&gt;
					&lt;table class=&quot;tbl-color&quot;&gt;
	&lt;colgroup&gt;
		&lt;col width=&quot;200&quot;&gt;
		&lt;col width=&quot;200&quot;&gt;
		&lt;col width=&quot;100&quot;&gt;
		&lt;col width=&quot;200&quot;&gt;
	&lt;/colgroup&gt;
	&lt;tbody&gt;
		&lt;tr style=&quot;background: #f0ffff; color: #788080;&quot;&gt;
			&lt;td&gt;Небесная лазурь&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Azure&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#f0ffff&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(240,255,255)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #f0f8ff; color: #787c80;&quot;&gt;
			&lt;td&gt;Синяя Элис&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;AliceBlue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#f0f8ff&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(240,248,255)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #e0ffff; color: #708080;&quot;&gt;
			&lt;td&gt;Светлый циан&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;LightCyan&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#e0ffff&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(224,255,255)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #00ffff; color: #008080;&quot;&gt;
			&lt;td&gt;Циан,цвет морской волны&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Cyan,Aqua&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#00ffff&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(0,255,255)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #7fffd4; color: #40806a;&quot;&gt;
			&lt;td&gt;Аквамариновый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Aquamarine&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#7fffd4&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(127,255,212)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #40e0d0; color: #1c615a;&quot;&gt;
			&lt;td&gt;Светло-бирюзовый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Turquoise&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#40e0d0&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(64,224,208)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #48d1cc; color: #1c5250;&quot;&gt;
			&lt;td&gt;Умеренно-бирюзовый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;MediumTurquoise&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#48d1cc&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(72,209,204)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #00ced1; color: #005052;&quot;&gt;
			&lt;td&gt;Тёмно-бирюзовый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DarkTurquoise&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#00ced1&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(0,206,209)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #afeeee; color: #516e6e;&quot;&gt;
			&lt;td&gt;Бледно-синий&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;PaleTurquoise&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#afeeee&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(175,238,238)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #b0e0e6; color: #4f6366;&quot;&gt;
			&lt;td&gt;Пыльный голубой&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;PowderBlue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#b0e0e6&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(176,224,230)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #add8e6; color: #4d6066;&quot;&gt;
			&lt;td&gt;Светлый синий&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;LightBlue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#add8e6&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(173,216,230)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #b0c4de; color: #4b535e;&quot;&gt;
			&lt;td&gt;Светлый стальной синий&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;LightSteelBlue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#b0c4de&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(176,196,222)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #87ceeb; color: #3d5e6b;&quot;&gt;
			&lt;td&gt;Городское небо&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;SkyBlue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#87ceeb&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(135,206,235)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #87cefa; color: #42657a;&quot;&gt;
			&lt;td&gt;Светло-голубой&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;LightSkyBlue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#87cefa&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(135,206,250)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #00bfff; color: #006080;&quot;&gt;
			&lt;td&gt;Морозное небо&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DeepSkyBlue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#00bfff&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(0,191,255)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #1e90ff; color: #006080;&quot;&gt;
			&lt;td&gt;Защитно-синий&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DodgerBlue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#1e90ff&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(30,144,255)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #6495ed; color: #2e446e;&quot;&gt;
			&lt;td&gt;Васильковый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;CornflowerBlue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#6495ed&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(100,149,237)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #7b68ee; color: #39306e;&quot;&gt;
			&lt;td&gt;Умеренный аспидно-синий&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;MediumSlateBlue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#7b68ee&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(123,104,238)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #5f9ea0; color: #142121;&quot;&gt;
			&lt;td&gt;Кадетский синий&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;CadetBlue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#5f9ea0&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(95,158,160)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #4682b4; color: #152736;&quot;&gt;
			&lt;td&gt;Синяя сталь&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;SteelBlue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#4682b4&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(70,130,180)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #4169e1; color: #000000;&quot;&gt;
			&lt;td&gt;Королевский синий&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;RoyalBlue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#4169e1&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(65,105,225)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #0000ff; color: #8080ff;&quot;&gt;
			&lt;td&gt;Синий&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Blue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#0000ff&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(0,0,255)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #0000cd; color: #8080ff;&quot;&gt;
			&lt;td&gt;Средний синий&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;MediumBlue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#0000cd&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(0,0,205)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #00008b; color: #8080ff;&quot;&gt;
			&lt;td&gt;Тёмный ультрамариновый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DarkBlue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#00008b&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(0,0,139)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #000080; color: #8080ff;&quot;&gt;
			&lt;td&gt;Формы морских офицеров&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Navy&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#000080&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(0,0,128)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #191970; color: #b8b8ff;&quot;&gt;
			&lt;td&gt;Полуночный чёрный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;MidnightBlue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#191970&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(25,25,112)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #6a5acd; color: #000000;&quot;&gt;
			&lt;td&gt;Аспидно-синий&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;SlateBlue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#6a5acd&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(106,90,205)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #483d8b; color: #ca80ff;&quot;&gt;
			&lt;td&gt;Тёмный аспидно-синий&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DarkSlateBlue&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#483d8b&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(72,61,139)&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;/section&gt;			
			&lt;section&gt;

								&lt;div class=&quot;view_anchor&quot;&gt;

						&lt;h2 id=&quot;link-fioletovye-tona&quot;&gt;
								Фиолетовые тона			
								&lt;/h2&gt; 
					&lt;/div&gt;
					&lt;table class=&quot;tbl-color&quot;&gt;
	&lt;colgroup&gt;
		&lt;col width=&quot;200&quot;&gt;
		&lt;col width=&quot;200&quot;&gt;
		&lt;col width=&quot;100&quot;&gt;
		&lt;col width=&quot;200&quot;&gt;
	&lt;/colgroup&gt;
	&lt;tbody&gt;
		&lt;tr style=&quot;background: #f8f8ff; color: #7c7c80;&quot;&gt;
			&lt;td&gt;Призрачно-белый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;GhostWhite&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#f8f8ff&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(248,248,255)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #e6e6fa; color: #71717a;&quot;&gt;
			&lt;td&gt;Лаванда&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Lavender&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#e6e6fa&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(230,230,250)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #d8bfd8; color: #594f59;&quot;&gt;
			&lt;td&gt;Чертополох&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Thistle&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#d8bfd8&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(216,191,216)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #dda0dd; color: #5e445e;&quot;&gt;
			&lt;td&gt;Светлая слива&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Plum&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#dda0dd&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(221,160,221)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ee82ee; color: #6e3c6e;&quot;&gt;
			&lt;td&gt;Розово-фиолетовый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Violet&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ee82ee&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(238,130,238)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #da70d6; color: #592e58;&quot;&gt;
			&lt;td&gt;Орхидея&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Orchid&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#da70d6&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(218,112,214)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ff00ff; color: #000000;&quot;&gt;
			&lt;td&gt;Фуксия,Маджента&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Fuchsia,Magenta&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ff00ff&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,0,255)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #c71585; color: #ca80ff;&quot;&gt;
			&lt;td&gt;Умеренный фиолетово-красный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;MediumVioletRed&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#c71585&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(199,21,133)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ba55d3; color: #000000;&quot;&gt;
			&lt;td&gt;Умеренный цвет орхидеи&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;MediumOrchid&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ba55d3&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(186,85,211)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #9370db; color: #000000;&quot;&gt;
			&lt;td&gt;Умеренный пурпурный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;MediumPurple&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#9370db&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(147,112,219)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #8a2be2; color: #ff80ff;&quot;&gt;
			&lt;td&gt;Сине-лиловый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;BlueViolet&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#8a2be2&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(138,43,226)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #9400d3; color: #ff80ff;&quot;&gt;
			&lt;td&gt;Тёмно-фиолетовый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DarkViolet&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#9400d3&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(148,0,211)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #9932cc; color: #ff80ff;&quot;&gt;
			&lt;td&gt;Тёмная орхидея&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DarkOrchid&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#9932cc&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(153,50,204)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #8b008b; color: #ff80ff;&quot;&gt;
			&lt;td&gt;Тёмный маджента&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DarkMagenta&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#8b008b&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(139,0,139)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #800080; color: #ff80ff;&quot;&gt;
			&lt;td&gt;Пурпурный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Purple&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#800080&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(128,0,128)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #4b0082; color: #ca80ff;&quot;&gt;
			&lt;td&gt;Индиго&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Indigo&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#4b0082&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(75,0,130)&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;/section&gt;			
			&lt;section&gt;

								&lt;div class=&quot;view_anchor&quot;&gt;

						&lt;h2 id=&quot;link-rozovye-tona&quot;&gt;
								Розовые тона	
						&lt;/h2&gt; 
					&lt;/div&gt;
					&lt;table class=&quot;tbl-color&quot;&gt;
	&lt;colgroup&gt;
		&lt;col width=&quot;200&quot;&gt;
		&lt;col width=&quot;200&quot;&gt;
		&lt;col width=&quot;100&quot;&gt;
		&lt;col width=&quot;200&quot;&gt;
	&lt;/colgroup&gt;
	&lt;tbody&gt;
		&lt;tr style=&quot;background: #fffafa; color: #807d7d;&quot;&gt;
			&lt;td&gt;Белоснежный&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Snow&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#fffafa&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,250,250)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #fff0f5; color: #80787a;&quot;&gt;
			&lt;td&gt;Розово-лавандовый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;LavenderBlush&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#fff0f5&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,240,245)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ffe4e1; color: #807270;&quot;&gt;
			&lt;td&gt;Тускло-розовый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;MistyRose&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ffe4e1&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,228,225)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ffc0cb; color: #806065;&quot;&gt;
			&lt;td&gt;Розовый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;Pink&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ffc0cb&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,192,203)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ffb6c1; color: #805b60;&quot;&gt;
			&lt;td&gt;Светло-розовый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;LightPink&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ffb6c1&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,182,193)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ff69b4; color: #80345a;&quot;&gt;
			&lt;td&gt;Ярко-розовый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;HotPink&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ff69b4&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,105,180)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #ff1493; color: #000000;&quot;&gt;
			&lt;td&gt;Глубокий розовый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;DeepPink&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#ff1493&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(255,20,147)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #db7093; color: #5c2f3e;&quot;&gt;
			&lt;td&gt;Лиловый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;PaleVioletRed&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#db7093&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(219,112,147)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style=&quot;background: #bc8f8f; color: #3d2f2f;&quot;&gt;
			&lt;td&gt;Розово-коричневый&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;RosyBrown&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;#bc8f8f&lt;/td&gt;
			&lt;td class=&quot;pre&quot;&gt;rgb(188,143,143)&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;/section&gt;						&lt;/div&gt;							
						



&lt;/div&gt;
&lt;/body&gt;

&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 02 Sep 2023 00:27:13 +0000</pubDate>
        </item>
        <item>
            <title>manual</title>
            <link>https://wwoss.ru/doku.php?id=manual&amp;rev=1768831939</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;руководство_пользователя_докувики&quot;&gt;Руководство пользователя «Докувики»&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Это руководство является, прежде всего, расширенным дополнением ко всем стандартным вопросам по использованию «Докувики». Тут вы сможете найти информацию, которая пригодится как обычным пользователям «Докувики», так и опытным администраторам, которые хотят установить свою сборку вики.
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:wiki&quot; class=&quot;wikilink1&quot; title=&quot;wiki:wiki&quot; data-wiki-id=&quot;wiki:wiki&quot;&gt;Что такое «Докувики»?&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Использование «Докувики»&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:screencast&quot; class=&quot;wikilink1&quot; title=&quot;wiki:screencast&quot; data-wiki-id=&quot;wiki:screencast&quot;&gt;Видеоуроки&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:main_window&quot; class=&quot;wikilink1&quot; title=&quot;wiki:main_window&quot; data-wiki-id=&quot;wiki:main_window&quot;&gt;Главное окно&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Навигация по статьям «Докувики»&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:page&quot; class=&quot;wikilink1&quot; title=&quot;wiki:page&quot; data-wiki-id=&quot;wiki:page&quot;&gt;Статьи&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:namespaces&quot; class=&quot;wikilink1&quot; title=&quot;wiki:namespaces&quot; data-wiki-id=&quot;wiki:namespaces&quot;&gt;Пространство имён&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:syntax#ссылки&quot; class=&quot;wikilink1&quot; title=&quot;wiki:syntax&quot; data-wiki-id=&quot;wiki:syntax&quot;&gt;Разные типы ссылок:&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:syntax#внутренние&quot; class=&quot;wikilink1&quot; title=&quot;wiki:syntax&quot; data-wiki-id=&quot;wiki:syntax&quot;&gt;внутренние&lt;/a&gt;, &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:syntax#интервики&quot; class=&quot;wikilink1&quot; title=&quot;wiki:syntax&quot; data-wiki-id=&quot;wiki:syntax&quot;&gt;интервики&lt;/a&gt;, &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:syntax#внешние&quot; class=&quot;wikilink1&quot; title=&quot;wiki:syntax&quot; data-wiki-id=&quot;wiki:syntax&quot;&gt;внешние&lt;/a&gt;, &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:syntax#сетевые_ресурсы_windows&quot; class=&quot;wikilink1&quot; title=&quot;wiki:syntax&quot; data-wiki-id=&quot;wiki:syntax&quot;&gt;сетевые ресурсы Windows&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:search&quot; class=&quot;wikilink2&quot; title=&quot;wiki:search&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:search&quot;&gt;Использование функции поиска&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:index&quot; class=&quot;wikilink1&quot; title=&quot;wiki:index&quot; data-wiki-id=&quot;wiki:index&quot;&gt;Индекс (Все страницы)&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:recent_changes&quot; class=&quot;wikilink2&quot; title=&quot;wiki:recent_changes&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:recent_changes&quot;&gt;Недавние изменения&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:attic&quot; class=&quot;wikilink1&quot; title=&quot;wiki:attic&quot; data-wiki-id=&quot;wiki:attic&quot;&gt;Просмотр старых версий статей&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:syndication&quot; class=&quot;wikilink1&quot; title=&quot;wiki:syndication&quot; data-wiki-id=&quot;wiki:syndication&quot;&gt;RSS- и ATOM-фиды&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:export&quot; class=&quot;wikilink1&quot; title=&quot;wiki:export&quot; data-wiki-id=&quot;wiki:export&quot;&gt;Экспорт статей&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:edit_window&quot; class=&quot;wikilink1&quot; title=&quot;wiki:edit_window&quot; data-wiki-id=&quot;wiki:edit_window&quot;&gt;Окно редактирования&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:toolbar&quot; class=&quot;wikilink1&quot; title=&quot;wiki:toolbar&quot; data-wiki-id=&quot;wiki:toolbar&quot;&gt;Панель инструментов&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:summary&quot; class=&quot;wikilink2&quot; title=&quot;wiki:summary&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:summary&quot;&gt;Сводка изменений&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:edit_window#небольшие_изменения&quot; class=&quot;wikilink1&quot; title=&quot;wiki:edit_window&quot; data-wiki-id=&quot;wiki:edit_window&quot;&gt;Небольшие изменения&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:editing&quot; class=&quot;wikilink1&quot; title=&quot;wiki:editing&quot; data-wiki-id=&quot;wiki:editing&quot;&gt; Правка статей&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:wikitext&quot; class=&quot;wikilink1&quot; title=&quot;wiki:wikitext&quot; data-wiki-id=&quot;wiki:wikitext&quot;&gt;Просмотр кода вики&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:syntax&quot; class=&quot;wikilink1&quot; title=&quot;wiki:syntax&quot; data-wiki-id=&quot;wiki:syntax&quot;&gt;Форматирование синтакса&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:syntax#основные_конструкции_форматирования&quot; class=&quot;wikilink1&quot; title=&quot;wiki:syntax&quot; data-wiki-id=&quot;wiki:syntax&quot;&gt;Базовое форматирование текста&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:syntax#ссылки&quot; class=&quot;wikilink1&quot; title=&quot;wiki:syntax&quot; data-wiki-id=&quot;wiki:syntax&quot;&gt;Ссылки&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:syntax#разбивка_на_разделы&quot; class=&quot;wikilink1&quot; title=&quot;wiki:syntax&quot; data-wiki-id=&quot;wiki:syntax&quot;&gt;Разделы&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:syntax#картинки_и_другие_файлы&quot; class=&quot;wikilink1&quot; title=&quot;wiki:syntax&quot; data-wiki-id=&quot;wiki:syntax&quot;&gt;Картинки и другие файлы&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:syntax#списки&quot; class=&quot;wikilink1&quot; title=&quot;wiki:syntax&quot; data-wiki-id=&quot;wiki:syntax&quot;&gt;Списки&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:syntax#таблицы&quot; class=&quot;wikilink1&quot; title=&quot;wiki:syntax&quot; data-wiki-id=&quot;wiki:syntax&quot;&gt;Таблицы&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:syntax#смайлики&quot; class=&quot;wikilink1&quot; title=&quot;wiki:syntax&quot; data-wiki-id=&quot;wiki:syntax&quot;&gt;Смайлы и аббревиатуры&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:syntax#неформатируемые_блоки&quot; class=&quot;wikilink1&quot; title=&quot;wiki:syntax&quot; data-wiki-id=&quot;wiki:syntax&quot;&gt;Неформатируемые блоки (например, для отображения кода)&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:syntax#вставка_html_и_php&quot; class=&quot;wikilink1&quot; title=&quot;wiki:syntax&quot; data-wiki-id=&quot;wiki:syntax&quot;&gt;HTML- и PHP-код&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:plugins&amp;amp;plugintype=1&quot; class=&quot;wikilink1&quot; title=&quot;wiki:plugins&quot; data-wiki-id=&quot;wiki:plugins&quot;&gt;Синтаксические плагины&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:namespace_templates&quot; class=&quot;wikilink2&quot; title=&quot;wiki:namespace_templates&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:namespace_templates&quot;&gt;Шаблоны пространства имён&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:tips:good_style&quot; class=&quot;wikilink1&quot; title=&quot;wiki:tips:good_style&quot; data-wiki-id=&quot;wiki:tips:good_style&quot;&gt;Написание хороших вики-страниц&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:recent_changes#различие_между_недавними_изменениями_и_историей_страницы&quot; class=&quot;wikilink2&quot; title=&quot;wiki:recent_changes&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:recent_changes&quot;&gt;Различие между «недавними изменениями» и «историей страницы»&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:locking&quot; class=&quot;wikilink2&quot; title=&quot;wiki:locking&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:locking&quot;&gt;Как работает блокировка статьи?&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:draft&quot; class=&quot;wikilink2&quot; title=&quot;wiki:draft&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:draft&quot;&gt;Автоматическое сохранение черновика&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Медиафайлы&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:images&quot; class=&quot;wikilink1&quot; title=&quot;wiki:images&quot; data-wiki-id=&quot;wiki:images&quot;&gt;Работа с изображениями и медиафайлами&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:media_manager&quot; class=&quot;wikilink1&quot; title=&quot;wiki:media_manager&quot; data-wiki-id=&quot;wiki:media_manager&quot;&gt;Менеджер медиафайлов&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:mime&quot; class=&quot;wikilink1&quot; title=&quot;wiki:mime&quot; data-wiki-id=&quot;wiki:mime&quot;&gt;Настройка типов файлов, которые поддерживает медиаменеджер&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:exif&quot; class=&quot;wikilink1&quot; title=&quot;wiki:exif&quot; data-wiki-id=&quot;wiki:exif&quot;&gt;Поддержка EXIF и IPTC&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Приватные вики&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:login&quot; class=&quot;wikilink2&quot; title=&quot;wiki:login&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:login&quot;&gt;Регистрация и вход в вики&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:subscription&quot; class=&quot;wikilink2&quot; title=&quot;wiki:subscription&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:subscription&quot;&gt;Подписка на рассылку&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:css&quot; class=&quot;wikilink1&quot; title=&quot;wiki:css&quot; data-wiki-id=&quot;wiki:css&quot;&gt;Краткое руководство по стилям CSS&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Собственная сборка «Докувики»&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:requirements&quot; class=&quot;wikilink1&quot; title=&quot;wiki:requirements&quot; data-wiki-id=&quot;wiki:requirements&quot;&gt;Системные требования&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:install&quot; class=&quot;wikilink1&quot; title=&quot;wiki:install&quot; data-wiki-id=&quot;wiki:install&quot;&gt;Установка&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:faq&quot; class=&quot;wikilink2&quot; title=&quot;wiki:faq&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:faq&quot;&gt;ЧаВО (FAQ)&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Управление «Докувики»&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:admin_window&quot; class=&quot;wikilink1&quot; title=&quot;wiki:admin_window&quot; data-wiki-id=&quot;wiki:admin_window&quot;&gt;Панель администратора&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:config&quot; class=&quot;wikilink1&quot; title=&quot;wiki:config&quot; data-wiki-id=&quot;wiki:config&quot;&gt;Настройка&lt;/a&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:rewrite&quot; class=&quot;wikilink1&quot; title=&quot;wiki:rewrite&quot; data-wiki-id=&quot;wiki:rewrite&quot;&gt;Настройка вида ссылок в строке браузера (rewrite)&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:permissions&quot; class=&quot;wikilink2&quot; title=&quot;wiki:permissions&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:permissions&quot;&gt;Права доступа&lt;/a&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:acl&quot; class=&quot;wikilink1&quot; title=&quot;wiki:acl&quot; data-wiki-id=&quot;wiki:acl&quot;&gt;Контроль доступа ACL&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:auth&quot; class=&quot;wikilink1&quot; title=&quot;wiki:auth&quot; data-wiki-id=&quot;wiki:auth&quot;&gt;Методы аутентификации&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:tips:maintenance&quot; class=&quot;wikilink1&quot; title=&quot;wiki:tips:maintenance&quot; data-wiki-id=&quot;wiki:tips:maintenance&quot;&gt;Обслуживание системы «Докувики»&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:cli&quot; class=&quot;wikilink1&quot; title=&quot;wiki:cli&quot; data-wiki-id=&quot;wiki:cli&quot;&gt;Инструменты для работы из командной строки&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Настройка «Докувики» под свои потребности&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:plugins&quot; class=&quot;wikilink1&quot; title=&quot;wiki:plugins&quot; data-wiki-id=&quot;wiki:plugins&quot;&gt;Установка плагинов&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:template&quot; class=&quot;wikilink1&quot; title=&quot;wiki:template&quot; data-wiki-id=&quot;wiki:template&quot;&gt;Использование шаблонов&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:namespace_templates&quot; class=&quot;wikilink2&quot; title=&quot;wiki:namespace_templates&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:namespace_templates&quot;&gt;Шаблоны пространства имён&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:localization&quot; class=&quot;wikilink1&quot; title=&quot;wiki:localization&quot; data-wiki-id=&quot;wiki:localization&quot;&gt;Локализация вики&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:devel:css&quot; class=&quot;wikilink2&quot; title=&quot;wiki:devel:css&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:devel:css&quot;&gt;Стиль вики через CSS&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:development&quot; class=&quot;wikilink1&quot; title=&quot;wiki:development&quot; data-wiki-id=&quot;wiki:development&quot;&gt;Модификация исходного кода&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:devel:authentication_backends&quot; class=&quot;wikilink2&quot; title=&quot;wiki:devel:authentication_backends&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:devel:authentication_backends&quot;&gt;Как сделать собственную систему аутентификации?&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:bounties&quot; class=&quot;wikilink2&quot; title=&quot;wiki:bounties&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:bounties&quot;&gt;Программа пожертвования «Докувики»&lt;/a&gt; (англ.)&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Остальное&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:seo&quot; class=&quot;wikilink1&quot; title=&quot;wiki:seo&quot; data-wiki-id=&quot;wiki:seo&quot;&gt;«Докувики» и поисковые роботы (SEO)&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:tips:blogging&quot; class=&quot;wikilink1&quot; title=&quot;wiki:tips:blogging&quot; data-wiki-id=&quot;wiki:tips:blogging&quot;&gt;Использование вики в качестве блога&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:tips:cms&quot; class=&quot;wikilink1&quot; title=&quot;wiki:tips:cms&quot; data-wiki-id=&quot;wiki:tips:cms&quot;&gt;Использование «Докувики» как простой CMS’ки&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.dokuwiki.org/ru:manual&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/ru:manual&quot; rel=&quot;ugc nofollow&quot;&gt;Внешняя ссылка на руководство Dokuwiki&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 19 Jan 2026 14:12:19 +0000</pubDate>
        </item>
        <item>
            <title>page</title>
            <link>https://wwoss.ru/doku.php?id=page&amp;rev=1777705256</link>
            <description>&lt;div class=&quot;plugin_note notepage&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=page&amp;amp;media=icons:16:arrow-transition-180.png&quot; class=&quot;media&quot; title=&quot;icons:16:arrow-transition-180.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:arrow-transition-180.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;strong&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:demo:cms:ucms:ucms_table_of_contents&quot; class=&quot;wikilink1&quot; title=&quot;software:development:demo:cms:ucms:ucms_table_of_contents&quot; data-wiki-id=&quot;software:development:demo:cms:ucms:ucms_table_of_contents&quot;&gt; Краткое содержание&lt;/a&gt;&lt;/strong&gt;

&lt;/div&gt;&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=page&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;txt&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code txt&quot;&gt;&amp;lt;note page&amp;gt;
{{:icons:16:arrow-transition-180.png?|}} 
**[[software:development:demo:cms:ucms:ucms_table_of_contents | Краткое содержание]]**
&amp;lt;/note&amp;gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;шаблон_html5&quot;&gt;4.1 Шаблон HTML5&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:demo:cms:ucms:sample_html5_and_dinamic_page&quot; class=&quot;wikilink1&quot; title=&quot;software:development:demo:cms:ucms:sample_html5_and_dinamic_page&quot; data-wiki-id=&quot;software:development:demo:cms:ucms:sample_html5_and_dinamic_page&quot;&gt;Глава 4.0. Шаблон HTML и динамические страницы&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:demo:cms:ucms:sample_html5_page&quot; class=&quot;wikilink1&quot; title=&quot;software:development:demo:cms:ucms:sample_html5_page&quot; data-wiki-id=&quot;software:development:demo:cms:ucms:sample_html5_page&quot;&gt;4.1 Шаблон HTML5&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:demo:cms:ucms:sample_php_page_and_dinamic_page&quot; class=&quot;wikilink1&quot; title=&quot;software:development:demo:cms:ucms:sample_php_page_and_dinamic_page&quot; data-wiki-id=&quot;software:development:demo:cms:ucms:sample_php_page_and_dinamic_page&quot;&gt;4.2 Шаблон PHP и динамические страницы&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=page&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;txt&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code txt&quot;&gt;====== 4.1 Шаблон HTML5 ======
&amp;nbsp;
  * [[software:development:demo:cms:ucms:sample_html5_and_dinamic_page|Глава 4.0. Шаблон HTML и динамические страницы]]
    * [[software:development:demo:cms:ucms:sample_html5_page|4.1 Шаблон HTML5]]
    * [[software:development:demo:cms:ucms:sample_php_page_and_dinamic_page|4.2 Шаблон PHP и динамические страницы]]&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.1 \u0428\u0430\u0431\u043b\u043e\u043d HTML5&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0431\u043b\u043e\u043d_html5&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;356-1219&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;введение&quot;&gt;Введение&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=page&amp;amp;media=software:development:demo:cms:ucms:sample_html5_page_5.png&quot; class=&quot;media&quot; title=&quot;software:development:demo:cms:ucms:sample_html5_page_5.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:development:demo:cms:ucms:sample_html5_page_5.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;переход страниц&quot; alt=&quot;переход страниц&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1220-1368&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
см. также:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://ru.wikipedia.org/wiki/Creative_Commons&quot; class=&quot;urlextern&quot; title=&quot;https://ru.wikipedia.org/wiki/Creative_Commons&quot; rel=&quot;ugc nofollow&quot;&gt;Creative Commons wikipedia&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://creativecommons.org/publicdomain/&quot; class=&quot;urlextern&quot; title=&quot;https://creativecommons.org/publicdomain/&quot; rel=&quot;ugc nofollow&quot;&gt;Public Domain List в контексте CC (Creative Commons)&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=page&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;txt&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code txt&quot;&gt;===== Дополнения и Файлы =====
см. также:
  * [[https://ru.wikipedia.org/wiki/Creative_Commons|Creative Commons wikipedia]]
  * [[https://creativecommons.org/publicdomain/|Public Domain List в контексте CC (Creative Commons)]]&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note notepage&quot;&gt;&lt;span class=&quot;wrap_left &quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=page&amp;amp;media=icons:16:arrow-transition-180.png&quot; class=&quot;media&quot; title=&quot;icons:16:arrow-transition-180.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:arrow-transition-180.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;  
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:demo:cms:ucms:sample_html5_and_dinamic_page&quot; class=&quot;wikilink1&quot; title=&quot;software:development:demo:cms:ucms:sample_html5_and_dinamic_page&quot; data-wiki-id=&quot;software:development:demo:cms:ucms:sample_html5_and_dinamic_page&quot;&gt;Глава 4.0. Шаблон HTML и динамические страницы&lt;/a&gt;
&lt;/span&gt;
&lt;span class=&quot;wrap_right &quot;&gt;
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:demo:cms:ucms:sample_php_page_and_dinamic_page&quot; class=&quot;wikilink1&quot; title=&quot;software:development:demo:cms:ucms:sample_php_page_and_dinamic_page&quot; data-wiki-id=&quot;software:development:demo:cms:ucms:sample_php_page_and_dinamic_page&quot;&gt;4.2 Шаблон PHP и динамические страницы&lt;/a&gt;
 &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=page&amp;amp;media=icons:16:arrow-transition.png&quot; class=&quot;media&quot; title=&quot;icons:16:arrow-transition.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:arrow-transition.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/span&gt;

&lt;/div&gt;&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=page&amp;amp;codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;txt&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code txt&quot;&gt;&amp;lt;note page&amp;gt;
&amp;lt;wrap left&amp;gt;{{:icons:16:arrow-transition-180.png?|}}  
[[software:development:demo:cms:ucms:sample_html5_and_dinamic_page|Глава 4.0. Шаблон HTML и динамические страницы]]
&amp;lt;/wrap&amp;gt; 
&amp;lt;wrap right&amp;gt;
[[software:development:demo:cms:ucms:sample_php_page_and_dinamic_page|4.2 Шаблон PHP и динамические страницы]]
 {{:icons:16:arrow-transition.png?|}}&amp;lt;/wrap&amp;gt;
&amp;lt;/note&amp;gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1369-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 02 May 2026 07:00:56 +0000</pubDate>
        </item>
        <item>
            <title>path.my</title>
            <link>https://wwoss.ru/doku.php?id=path.my&amp;rev=1760447366</link>
            <description>
&lt;p&gt;
&lt;a href=&quot;https://wwoss.ru/lib/exe/fetch.php?media=gtasks_v3.0.3_3039_.apk&quot; class=&quot;media mediafile mf_apk&quot; title=&quot;gtasks_v3.0.3_3039_.apk (17.7 MB)&quot;&gt;gtasks_v3.0.3_3039_.apk&lt;/a&gt;
&lt;/p&gt;

&lt;h2 class=&quot;sectionedit1&quot; id=&quot;пути&quot;&gt;Пути&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;Элементы - [[software:development:web:docs:web:html:element:body|&amp;lt;body&amp;gt;]]
Атрибуты - [[software:development:web:docs:web:html:attributes:src|src]]
глобальные - [[software:development:web:docs:web:html:global_attributes|Глобальный атрибут]]
api - [[software:development:web:docs:web:api:MediaStream|MediaStream]]
learn - [[software:development:web:docs:learn:forms|MediaStream]]
glossary - [[software:development:web:docs:glossary:tag|tag]]
виды контента [[software:development:web:docs:web:html:content_categories:content_categories#Секционный_контент|вводный контент]]
css - [[software:development:web:docs:web:css:css|css]]
css заглавная - [[software:development:web:docs:web:css|css]]&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0443\u0442\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0443\u0442\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;32-851&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;поддержка_браузерами&quot;&gt;Поддержка браузерами&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&#039;plugin_tablelayout_placeholder&#039; data-tablelayout=&quot;{&amp;quot;colwidth&amp;quot;:[&amp;quot;60px&amp;quot;,&amp;quot;60px&amp;quot;,&amp;quot;60px&amp;quot;,&amp;quot;60px&amp;quot;,&amp;quot;60px&amp;quot;,&amp;quot;60px&amp;quot;,&amp;quot;60px&amp;quot;],&amp;quot;rowsHeaderSource&amp;quot;:&amp;quot;2&amp;quot;,&amp;quot;rowsVisible&amp;quot;:&amp;quot;2&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;}&quot;&gt;&lt;/div&gt;&lt;div class=&quot;table sectionedit3&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=edge.gif&quot; class=&quot;media&quot; title=&quot;edge.gif&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=30&amp;amp;tok=877b06&amp;amp;media=edge.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;ie&quot; alt=&quot;ie&quot; width=&quot;30&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=ie.gif&quot; class=&quot;media&quot; title=&quot;ie.gif&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=30&amp;amp;tok=408a8a&amp;amp;media=ie.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;ie&quot; alt=&quot;ie&quot; width=&quot;30&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=chrome.gif&quot; class=&quot;media&quot; title=&quot;chrome.gif&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=30&amp;amp;tok=e9a564&amp;amp;media=chrome.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;chrome&quot; alt=&quot;chrome&quot; width=&quot;30&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=firefox.gif&quot; class=&quot;media&quot; title=&quot;firefox.gif&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=30&amp;amp;tok=418b29&amp;amp;media=firefox.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;firefox&quot; alt=&quot;firefox&quot; width=&quot;30&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=opera.gif&quot; class=&quot;media&quot; title=&quot;opera.gif&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=30&amp;amp;tok=3dc4b7&amp;amp;media=opera.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;opera&quot; alt=&quot;opera&quot; width=&quot;30&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=safari.gif&quot; class=&quot;media&quot; title=&quot;safari.gif&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=30&amp;amp;tok=25f36c&amp;amp;media=safari.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;safari&quot; alt=&quot;safari&quot; width=&quot;30&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=yandex.png&quot; class=&quot;media&quot; title=&quot;yandex.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=36&amp;amp;tok=564bc2&amp;amp;media=yandex.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;yandex&quot; alt=&quot;yandex&quot; width=&quot;36&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; title=&quot;yes.jpg&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=32&amp;amp;tok=4624a1&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;yes&quot; alt=&quot;yes&quot; width=&quot;32&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=no.jpg&quot; class=&quot;media&quot; title=&quot;no.jpg&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=32&amp;amp;tok=bedc69&amp;amp;media=no.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;no&quot; alt=&quot;no&quot; width=&quot;32&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; title=&quot;yes.jpg&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=32&amp;amp;tok=4624a1&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;yes&quot; alt=&quot;yes&quot; width=&quot;32&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; title=&quot;yes.jpg&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=32&amp;amp;tok=4624a1&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;yes&quot; alt=&quot;yes&quot; width=&quot;32&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; title=&quot;yes.jpg&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=32&amp;amp;tok=4624a1&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;yes&quot; alt=&quot;yes&quot; width=&quot;32&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; title=&quot;yes.jpg&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=32&amp;amp;tok=4624a1&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;yes&quot; alt=&quot;yes&quot; width=&quot;32&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=no.jpg&quot; class=&quot;media&quot; title=&quot;no.jpg&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=32&amp;amp;tok=bedc69&amp;amp;media=no.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;no&quot; alt=&quot;no&quot; width=&quot;32&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1010-1373&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u043c\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430_\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u043c\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;852-1374&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;цвет_таблицы&quot;&gt;Цвет таблицы&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;^ Заголовок 1 ^ Заголовок 2 ^ Заголовок 3 ^
| @lightgreen:**Диапазон** || |
| @#6495ed:Линия 1 | Да | Да, действительно |
| линия 2 | Да | @orange: Да |
| @:Линия 3 | Да | @red: Нет |&lt;/pre&gt;
&lt;div class=&quot;table sectionedit5&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; Заголовок 1 &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; Заголовок 2 &lt;/th&gt;&lt;th class=&quot;col2&quot;&gt; Заголовок 3 &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot; colspan=&quot;2&quot; bgcolor=lightgreen&gt;&lt;strong&gt;Диапазон&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot; bgcolor=#6495ed&gt;Линия 1 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Да &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Да, действительно &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; линия 2 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Да &lt;/td&gt;&lt;td class=&quot;col2&quot; bgcolor=orange&gt; Да &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot; bgcolor=yellow&gt;Линия 3 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Да &lt;/td&gt;&lt;td class=&quot;col2&quot; bgcolor=red&gt; Нет &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1685-1944&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0426\u0432\u0435\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0446\u0432\u0435\u0442_\u0442\u0430\u0431\u043b\u0438\u0446\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1375-1946&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;попробуй&quot;&gt;Попробуй&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;===== Попробуй =====
&amp;lt;html&amp;gt;
&amp;lt;iframe height=&amp;quot;350&amp;quot; style=&amp;quot;width: 100%;&amp;quot; scrolling=&amp;quot;no&amp;quot; title=&amp;quot;Untitled&amp;quot; src=&amp;quot;./demo/code-docs/pages/tabbed/a.html&amp;quot; frameborder=&amp;quot;no&amp;quot; loading=&amp;quot;lazy&amp;quot; allowtransparency=&amp;quot;true&amp;quot; allowfullscreen=&amp;quot;true&amp;quot;&amp;gt;
&amp;lt;/iframe&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;

&lt;p&gt;

&lt;iframe height=&quot;350&quot; style=&quot;width: 100%;&quot; scrolling=&quot;no&quot; title=&quot;Untitled&quot; src=&quot;./demo/code-docs/pages/tabbed/a.html&quot; frameborder=&quot;no&quot; loading=&quot;lazy&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&gt;
&lt;/iframe&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1947-2465&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;примечание&quot;&gt;Примечание&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code html4strict&quot;&gt;{{:icons:16:hourglass-select.png?|Устаревший. Не для использования на новых web-сайтах.}} - Устаревший. Не для использования на новых web-сайтах.
{{:icons:16:flask.png?|Экспериментальный. Возможно изменение в будущем.}} - Экспериментальный. Возможно изменение в будущем.
{{:icons:16:jar.png?|Нестандартный. Проверьте поддержку браузером.}} - Нестандартный. Проверьте поддержку браузером.&lt;/pre&gt;

&lt;p&gt;
&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt; - Устаревший. Не для использования на новых web-сайтах. &lt;br/&gt;

&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:flask.png&quot; class=&quot;media&quot; title=&quot;icons:16:flask.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:flask.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Экспериментальный. Возможно изменение в будущем.&quot; alt=&quot;Экспериментальный. Возможно изменение в будущем.&quot; /&gt;&lt;/a&gt; - Экспериментальный. Возможно изменение в будущем. &lt;br/&gt;

&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:jar.png&quot; class=&quot;media&quot; title=&quot;icons:16:jar.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:jar.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Нестандартный. Проверьте поддержку браузером.&quot; alt=&quot;Нестандартный. Проверьте поддержку браузером.&quot; /&gt;&lt;/a&gt; - Нестандартный. Проверьте поддержку браузером. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#embedded_content&quot; class=&quot;urlextern&quot; title=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#embedded_content&quot; rel=&quot;ugc nofollow&quot;&gt;https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#embedded_content&lt;/a&gt;
&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/Web_components&quot; class=&quot;urlextern&quot; title=&quot;https://developer.mozilla.org/en-US/docs/Web/API/Web_components&quot; rel=&quot;ugc nofollow&quot;&gt;https://developer.mozilla.org/en-US/docs/Web/API/Web_components&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2466-3954&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;список_элементов&quot;&gt;Список элементов&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:a&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:a&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:a&quot;&gt;&amp;lt;a&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:abbr&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:abbr&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:abbr&quot;&gt;&amp;lt;abbr&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:acronym&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:acronym&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:acronym&quot;&gt;&amp;lt;acronym&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:address&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:address&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:address&quot;&gt;&amp;lt;address&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:applet&quot; class=&quot;wikilink2&quot; title=&quot;software:development:web:docs:web:html:element:applet&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:applet&quot;&gt;&amp;lt;applet&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:area&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:area&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:area&quot;&gt;&amp;lt;area&amp;gt;&lt;/a&gt;,             
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:article&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:article&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:article&quot;&gt;&amp;lt;article&amp;gt;&lt;/a&gt;,     
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:aside&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:aside&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:aside&quot;&gt;&amp;lt;aside&amp;gt;&lt;/a&gt;,             
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:audio&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:audio&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:audio&quot;&gt;&amp;lt;audio&amp;gt;&lt;/a&gt;,          
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:b&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:b&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:b&quot;&gt;&amp;lt;b&amp;gt;&lt;/a&gt;,               
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:base&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:base&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:base&quot;&gt;&amp;lt;base&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:bdi&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:bdi&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:bdi&quot;&gt;&amp;lt;bdi&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:bdo&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:bdo&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:bdo&quot;&gt;&amp;lt;bdo&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:bgsound&quot; class=&quot;wikilink2&quot; title=&quot;software:development:web:docs:web:html:element:bgsound&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:bgsound&quot;&gt;&amp;lt;bgsound&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:big&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:big&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:big&quot;&gt;&amp;lt;big&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:blink&quot; class=&quot;wikilink2&quot; title=&quot;software:development:web:docs:web:html:element:blink&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:blink&quot;&gt;&amp;lt;blink&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:blockquote&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:blockquote&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:blockquote&quot;&gt;&amp;lt;blockquote&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:body&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:body&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:body&quot;&gt;&amp;lt;body&amp;gt;&lt;/a&gt;,                 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:br&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:br&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:br&quot;&gt;&amp;lt;br&amp;gt;&lt;/a&gt;,                  
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:button&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:button&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:button&quot;&gt;&amp;lt;button&amp;gt;&lt;/a&gt;,              
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:canvas&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:canvas&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:canvas&quot;&gt;&amp;lt;canvas&amp;gt;&lt;/a&gt;,               
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:caption&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:caption&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:caption&quot;&gt;&amp;lt;caption&amp;gt;&lt;/a&gt;,               
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:center&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:center&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:center&quot;&gt;&amp;lt;center&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:cite&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:cite&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:cite&quot;&gt;&amp;lt;cite&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:code&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:code&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:code&quot;&gt;&amp;lt;code&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:content&quot; class=&quot;wikilink2&quot; title=&quot;software:development:web:docs:web:html:element:content&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:content&quot;&gt;&amp;lt;content&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:col&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:col&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:col&quot;&gt;&amp;lt;col&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:colgroup&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:colgroup&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:colgroup&quot;&gt;&amp;lt;colgroup&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:data&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:data&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:data&quot;&gt;&amp;lt;data&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:datalist&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:datalist&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:datalist&quot;&gt;&amp;lt;datalist&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:dd&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:dd&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:dd&quot;&gt;&amp;lt;dd&amp;gt;&lt;/a&gt;,                
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:del&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:del&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:del&quot;&gt;&amp;lt;del&amp;gt;&lt;/a&gt;,                
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:details&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:details&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:details&quot;&gt;&amp;lt;details&amp;gt;&lt;/a&gt;,              
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:dfn&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:dfn&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:dfn&quot;&gt;&amp;lt;dfn&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:dialog&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:dialog&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:dialog&quot;&gt;&amp;lt;dialog&amp;gt;&lt;/a&gt;,                
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:dir&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:dir&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:dir&quot;&gt;&amp;lt;dir&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:div&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:div&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:div&quot;&gt;&amp;lt;div&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:dl&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:dl&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:dl&quot;&gt;&amp;lt;dl&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:dt&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:dt&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:dt&quot;&gt;&amp;lt;dt&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:em&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:em&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:em&quot;&gt;&amp;lt;em&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:fieldset&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:fieldset&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:fieldset&quot;&gt;&amp;lt;fieldset&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:figcaption&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:figcaption&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:figcaption&quot;&gt;&amp;lt;figcaption&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:figure&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:figure&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:figure&quot;&gt;&amp;lt;figure&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:font&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:font&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:font&quot;&gt;&amp;lt;font&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:footer&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:footer&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:footer&quot;&gt;&amp;lt;footer&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:form&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:form&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:form&quot;&gt;&amp;lt;form&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:frame&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:frame&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:frame&quot;&gt;&amp;lt;frame&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:frameset&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:frameset&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:frameset&quot;&gt;&amp;lt;frameset&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:h1&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:h1&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:h1&quot;&gt;&amp;lt;h1&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:h1&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:h1&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:h1&quot;&gt;&amp;lt;h2&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:h1&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:h1&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:h1&quot;&gt;&amp;lt;h3&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:h1&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:h1&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:h1&quot;&gt;&amp;lt;h4&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:h1&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:h1&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:h1&quot;&gt;&amp;lt;h5&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:h1&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:h1&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:h1&quot;&gt;&amp;lt;h6&amp;gt;&lt;/a&gt;,
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:head&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:head&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:head&quot;&gt;&amp;lt;head&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:header&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:header&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:header&quot;&gt;&amp;lt;header&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:hgroup&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:hgroup&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:hgroup&quot;&gt;&amp;lt;hgroup&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:hr&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:hr&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:hr&quot;&gt;&amp;lt;hr&amp;gt;&lt;/a&gt;,  
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:html&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:html&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:html&quot;&gt;&amp;lt;html&amp;gt;&lt;/a&gt;,  
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:i&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:i&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:i&quot;&gt;&amp;lt;i&amp;gt;&lt;/a&gt;,          
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:iframe&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:iframe&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:iframe&quot;&gt;&amp;lt;iframe&amp;gt;&lt;/a&gt;,    
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:image&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:image&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:image&quot;&gt;&amp;lt;image&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:jar.png&quot; class=&quot;media&quot; title=&quot;icons:16:jar.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:jar.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Нестандартный. Проверьте поддержку браузером.&quot; alt=&quot;Нестандартный. Проверьте поддержку браузером.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:img&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:img&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:img&quot;&gt;&amp;lt;img&amp;gt;&lt;/a&gt;,        
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:input&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:input&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:input&quot;&gt;&amp;lt;input&amp;gt;&lt;/a&gt;,        
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:ins&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:ins&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:ins&quot;&gt;&amp;lt;ins&amp;gt;&lt;/a&gt;,           
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:kbd&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:kbd&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:kbd&quot;&gt;&amp;lt;kbd&amp;gt;&lt;/a&gt;,           
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:label&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:label&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:label&quot;&gt;&amp;lt;label&amp;gt;&lt;/a&gt;,        
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:legend&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:legend&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:legend&quot;&gt;&amp;lt;legend&amp;gt;&lt;/a&gt;,      
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:li&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:li&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:li&quot;&gt;&amp;lt;li&amp;gt;&lt;/a&gt;,             
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:link&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:link&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:link&quot;&gt;&amp;lt;link&amp;gt;&lt;/a&gt;,         
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:main&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:main&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:main&quot;&gt;&amp;lt;main&amp;gt;&lt;/a&gt;,          
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:map&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:map&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:map&quot;&gt;&amp;lt;map&amp;gt;&lt;/a&gt;,            
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:mark&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:mark&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:mark&quot;&gt;&amp;lt;mark&amp;gt;&lt;/a&gt;,           
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:mathml:element:math&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:mathml:element:math&quot; data-wiki-id=&quot;software:development:web:docs:web:mathml:element:math&quot;&gt;&amp;lt;math&amp;gt;&lt;/a&gt;,          
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:marquee&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:marquee&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:marquee&quot;&gt;&amp;lt;marquee&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:menu&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:menu&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:menu&quot;&gt;&amp;lt;menu&amp;gt;&lt;/a&gt;,             
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:menuitem&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:menuitem&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:menuitem&quot;&gt;&amp;lt;menuitem&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:jar.png&quot; class=&quot;media&quot; title=&quot;icons:16:jar.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:jar.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Нестандартный. Проверьте поддержку браузером.&quot; alt=&quot;Нестандартный. Проверьте поддержку браузером.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:meta&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:meta&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:meta&quot;&gt;&amp;lt;meta&amp;gt;&lt;/a&gt;,            
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:meter&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:meter&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:meter&quot;&gt;&amp;lt;meter&amp;gt;&lt;/a&gt;,           
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:nav&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:nav&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:nav&quot;&gt;&amp;lt;nav&amp;gt;&lt;/a&gt;,            
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:nobr&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:nobr&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:nobr&quot;&gt;&amp;lt;nobr&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:noembed&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:noembed&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:noembed&quot;&gt;&amp;lt;noembed&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:noframes&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:noframes&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:noframes&quot;&gt;&amp;lt;noframes&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:noscript&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:noscript&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:noscript&quot;&gt;&amp;lt;noscript&amp;gt;&lt;/a&gt;,     
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:object&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:object&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:object&quot;&gt;&amp;lt;object&amp;gt;&lt;/a&gt;,        
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:ol&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:ol&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:ol&quot;&gt;&amp;lt;ol&amp;gt;&lt;/a&gt;,              
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:optgroup&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:optgroup&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:optgroup&quot;&gt;&amp;lt;optgroup&amp;gt;&lt;/a&gt;,     
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:option&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:option&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:option&quot;&gt;&amp;lt;option&amp;gt;&lt;/a&gt;,        
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:output&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:output&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:output&quot;&gt;&amp;lt;output&amp;gt;&lt;/a&gt;,        
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:p&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:p&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:p&quot;&gt;&amp;lt;p&amp;gt;&lt;/a&gt;,           
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:param&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:param&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:param&quot;&gt;&amp;lt;param&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:picture&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:picture&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:picture&quot;&gt;&amp;lt;picture&amp;gt;&lt;/a&gt;,    
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:plaintext&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:plaintext&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:plaintext&quot;&gt;&amp;lt;plaintext&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:portal&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:portal&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:portal&quot;&gt;&amp;lt;portal&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:flask.png&quot; class=&quot;media&quot; title=&quot;icons:16:flask.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:flask.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Экспериментальный. Возможно изменение в будущем.&quot; alt=&quot;Экспериментальный. Возможно изменение в будущем.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:pre&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:pre&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:pre&quot;&gt;&amp;lt;pre&amp;gt;&lt;/a&gt;,            
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:progress&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:progress&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:progress&quot;&gt;&amp;lt;progress&amp;gt;&lt;/a&gt;,    
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:q&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:q&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:q&quot;&gt;&amp;lt;q&amp;gt;&lt;/a&gt;,              
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:rb&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:rb&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:rb&quot;&gt;&amp;lt;rb&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:rp&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:rp&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:rp&quot;&gt;&amp;lt;rp&amp;gt;&lt;/a&gt;,        
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:rt&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:rt&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:rt&quot;&gt;&amp;lt;rt&amp;gt;&lt;/a&gt;,         
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:rtc&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:rtc&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:rtc&quot;&gt;&amp;lt;rtc&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:ruby&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:ruby&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:ruby&quot;&gt;&amp;lt;ruby&amp;gt;&lt;/a&gt;,       
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:s&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:s&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:s&quot;&gt;&amp;lt;s&amp;gt;&lt;/a&gt;,           
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:samp&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:samp&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:samp&quot;&gt;&amp;lt;samp&amp;gt;&lt;/a&gt;,           
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:script&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:script&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:script&quot;&gt;&amp;lt;script&amp;gt;&lt;/a&gt;,         
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:search&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:search&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:search&quot;&gt;&amp;lt;search&amp;gt;&lt;/a&gt;,          
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:section&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:section&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:section&quot;&gt;&amp;lt;section&amp;gt;&lt;/a&gt;,        
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:select&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:select&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:select&quot;&gt;&amp;lt;select&amp;gt;&lt;/a&gt;,          
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:shadow&quot; class=&quot;wikilink2&quot; title=&quot;software:development:web:docs:web:html:element:shadow&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:shadow&quot;&gt;&amp;lt;shadow&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:slot&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:slot&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:slot&quot;&gt;&amp;lt;slot&amp;gt;&lt;/a&gt;,          
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:small&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:small&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:small&quot;&gt;&amp;lt;small&amp;gt;&lt;/a&gt;,        
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:source&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:source&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:source&quot;&gt;&amp;lt;source&amp;gt;&lt;/a&gt;,       
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:span&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:span&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:span&quot;&gt;&amp;lt;span&amp;gt;&lt;/a&gt;,          
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:spacer&quot; class=&quot;wikilink2&quot; title=&quot;software:development:web:docs:web:html:element:spacer&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:spacer&quot;&gt;&amp;lt;spacer&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:strike&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:strike&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:strike&quot;&gt;&amp;lt;strike&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:strong&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:strong&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:strong&quot;&gt;&amp;lt;strong&amp;gt;&lt;/a&gt;,       
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:style&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:style&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:style&quot;&gt;&amp;lt;style&amp;gt;&lt;/a&gt;,        
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:svg:element:svg&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:svg:element:svg&quot; data-wiki-id=&quot;software:development:web:docs:web:svg:element:svg&quot;&gt;&amp;lt;svg&amp;gt;&lt;/a&gt;,            
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:sub&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:sub&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:sub&quot;&gt;&amp;lt;sub&amp;gt;&lt;/a&gt;,          
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:summary&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:summary&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:summary&quot;&gt;&amp;lt;summary&amp;gt;&lt;/a&gt;,      
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:sup&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:sup&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:sup&quot;&gt;&amp;lt;sup&amp;gt;&lt;/a&gt;,             
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:table&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:table&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:table&quot;&gt;&amp;lt;table&amp;gt;&lt;/a&gt;,        
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:tbody&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:tbody&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:tbody&quot;&gt;&amp;lt;tbody&amp;gt;&lt;/a&gt;,         
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:td&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:td&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:td&quot;&gt;&amp;lt;td&amp;gt;&lt;/a&gt;,               
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:template&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:template&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:template&quot;&gt;&amp;lt;template&amp;gt;&lt;/a&gt;,    
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:textarea&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:textarea&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:textarea&quot;&gt;&amp;lt;textarea&amp;gt;&lt;/a&gt;,    
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:tfoot&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:tfoot&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:tfoot&quot;&gt;&amp;lt;tfoot&amp;gt;&lt;/a&gt;,       
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:th&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:th&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:th&quot;&gt;&amp;lt;th&amp;gt;&lt;/a&gt;,            
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:thead&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:thead&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:thead&quot;&gt;&amp;lt;thead&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:time&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:time&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:time&quot;&gt;&amp;lt;time&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:title&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:title&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:title&quot;&gt;&amp;lt;title&amp;gt;&lt;/a&gt;,         
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:tr&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:tr&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:tr&quot;&gt;&amp;lt;tr&amp;gt;&lt;/a&gt;,            
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:track&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:track&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:track&quot;&gt;&amp;lt;track&amp;gt;&lt;/a&gt;,      
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:tt&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:tt&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:tt&quot;&gt;&amp;lt;tt&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:u&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:u&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:u&quot;&gt;&amp;lt;u&amp;gt;&lt;/a&gt;,         
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:ul&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:ul&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:ul&quot;&gt;&amp;lt;ul&amp;gt;&lt;/a&gt;,       
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:var&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:var&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:var&quot;&gt;&amp;lt;var&amp;gt;&lt;/a&gt;,    
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:video&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:video&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:video&quot;&gt;&amp;lt;video&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:wbr&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:wbr&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:wbr&quot;&gt;&amp;lt;wbr&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:xmp&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:xmp&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:xmp&quot;&gt;&amp;lt;xmp&amp;gt;&lt;/a&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=path.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt;, 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043f\u0438\u0441\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043f\u0438\u0441\u043e\u043a_\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;3955-17665&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;теги_html&quot;&gt;Теги HTML&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:comment_--...--_software:development:web:docs:web:html:element:doctype&quot; class=&quot;wikilink2&quot; title=&quot;software:development:web:docs:web:html:element:comment_--...--_software:development:web:docs:web:html:element:doctype&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:comment_--...--_software:development:web:docs:web:html:element:doctype&quot;&gt;&amp;lt;!DOCTYPE&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:a&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:a&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:a&quot;&gt;&amp;lt;a&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:abbr&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:abbr&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:abbr&quot;&gt;&amp;lt;abbr&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:acronym&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:acronym&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:acronym&quot;&gt;&amp;lt;acronym&amp;gt;&lt;/a&gt;  Deprecated, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:address&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:address&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:address&quot;&gt;&amp;lt;address&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:area&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:area&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:area&quot;&gt;&amp;lt;area&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:article&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:article&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:article&quot;&gt;&amp;lt;article&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:aside&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:aside&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:aside&quot;&gt;&amp;lt;aside&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:audio&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:audio&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:audio&quot;&gt;&amp;lt;audio&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:b&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:b&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:b&quot;&gt;&amp;lt;b&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:base&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:base&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:base&quot;&gt;&amp;lt;base&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:bdi&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:bdi&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:bdi&quot;&gt;&amp;lt;bdi&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:bdo&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:bdo&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:bdo&quot;&gt;&amp;lt;bdo&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:big&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:big&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:big&quot;&gt;&amp;lt;big&amp;gt;&lt;/a&gt;  Deprecated, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:blockquote&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:blockquote&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:blockquote&quot;&gt;&amp;lt;blockquote&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:body&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:body&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:body&quot;&gt;&amp;lt;body&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:br&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:br&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:br&quot;&gt;&amp;lt;br&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:button&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:button&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:button&quot;&gt;&amp;lt;button&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:canvas&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:canvas&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:canvas&quot;&gt;&amp;lt;canvas&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:caption&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:caption&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:caption&quot;&gt;&amp;lt;caption&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:center&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:center&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:center&quot;&gt;&amp;lt;center&amp;gt;&lt;/a&gt;  Deprecated, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:cite&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:cite&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:cite&quot;&gt;&amp;lt;cite&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:code&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:code&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:code&quot;&gt;&amp;lt;code&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:col&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:col&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:col&quot;&gt;&amp;lt;col&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:colgroup&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:colgroup&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:colgroup&quot;&gt;&amp;lt;colgroup&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:data&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:data&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:data&quot;&gt;&amp;lt;data&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:datalist&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:datalist&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:datalist&quot;&gt;&amp;lt;datalist&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:dd&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:dd&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:dd&quot;&gt;&amp;lt;dd&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:del&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:del&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:del&quot;&gt;&amp;lt;del&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:details&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:details&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:details&quot;&gt;&amp;lt;details&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:dfn&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:dfn&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:dfn&quot;&gt;&amp;lt;dfn&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:dialog&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:dialog&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:dialog&quot;&gt;&amp;lt;dialog&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:dir&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:dir&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:dir&quot;&gt;&amp;lt;dir&amp;gt;&lt;/a&gt;  Deprecated, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:div&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:div&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:div&quot;&gt;&amp;lt;div&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:dl&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:dl&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:dl&quot;&gt;&amp;lt;dl&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:dt&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:dt&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:dt&quot;&gt;&amp;lt;dt&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:em&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:em&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:em&quot;&gt;&amp;lt;em&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:embed&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:embed&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:embed&quot;&gt;&amp;lt;embed&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:fieldset&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:fieldset&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:fieldset&quot;&gt;&amp;lt;fieldset&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:figcaption&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:figcaption&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:figcaption&quot;&gt;&amp;lt;figcaption&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:figure&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:figure&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:figure&quot;&gt;&amp;lt;figure&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:font&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:font&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:font&quot;&gt;&amp;lt;font&amp;gt;&lt;/a&gt;  Deprecated, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:footer&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:footer&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:footer&quot;&gt;&amp;lt;footer&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:form&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:form&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:form&quot;&gt;&amp;lt;form&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:frame&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:frame&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:frame&quot;&gt;&amp;lt;frame&amp;gt;&lt;/a&gt;  Deprecated, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:frameset&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:frameset&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:frameset&quot;&gt;&amp;lt;frameset&amp;gt;&lt;/a&gt;  Deprecated, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:h1&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:h1&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:h1&quot;&gt;&amp;lt;h1&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:head&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:head&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:head&quot;&gt;&amp;lt;head&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:header&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:header&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:header&quot;&gt;&amp;lt;header&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:hgroup&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:hgroup&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:hgroup&quot;&gt;&amp;lt;hgroup&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:hr&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:hr&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:hr&quot;&gt;&amp;lt;hr&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:html&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:html&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:html&quot;&gt;&amp;lt;html&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:i&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:i&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:i&quot;&gt;&amp;lt;i&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:iframe&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:iframe&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:iframe&quot;&gt;&amp;lt;iframe&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:image&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:image&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:image&quot;&gt;&amp;lt;image&amp;gt;&lt;/a&gt;  Non-standard/Deprecated, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:img&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:img&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:img&quot;&gt;&amp;lt;img&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:input&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:input&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:input&quot;&gt;&amp;lt;input&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:ins&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:ins&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:ins&quot;&gt;&amp;lt;ins&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:kbd&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:kbd&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:kbd&quot;&gt;&amp;lt;kbd&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:label&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:label&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:label&quot;&gt;&amp;lt;label&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:legend&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:legend&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:legend&quot;&gt;&amp;lt;legend&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:li&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:li&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:li&quot;&gt;&amp;lt;li&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:link&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:link&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:link&quot;&gt;&amp;lt;link&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:main&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:main&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:main&quot;&gt;&amp;lt;main&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:map&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:map&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:map&quot;&gt;&amp;lt;map&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:mark&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:mark&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:mark&quot;&gt;&amp;lt;mark&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:marquee&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:marquee&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:marquee&quot;&gt;&amp;lt;marquee&amp;gt;&lt;/a&gt;  Deprecated, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:menu&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:menu&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:menu&quot;&gt;&amp;lt;menu&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:menuitem&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:menuitem&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:menuitem&quot;&gt;&amp;lt;menuitem&amp;gt;&lt;/a&gt;  Non-standard/Deprecated, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:meta&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:meta&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:meta&quot;&gt;&amp;lt;meta&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:meter&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:meter&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:meter&quot;&gt;&amp;lt;meter&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:nav&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:nav&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:nav&quot;&gt;&amp;lt;nav&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:nobr&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:nobr&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:nobr&quot;&gt;&amp;lt;nobr&amp;gt;&lt;/a&gt;  Deprecated, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:noembed&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:noembed&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:noembed&quot;&gt;&amp;lt;noembed&amp;gt;&lt;/a&gt;  Deprecated, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:noframes&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:noframes&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:noframes&quot;&gt;&amp;lt;noframes&amp;gt;&lt;/a&gt;  Deprecated, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:noscript&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:noscript&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:noscript&quot;&gt;&amp;lt;noscript&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:object&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:object&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:object&quot;&gt;&amp;lt;object&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:ol&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:ol&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:ol&quot;&gt;&amp;lt;ol&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:optgroup&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:optgroup&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:optgroup&quot;&gt;&amp;lt;optgroup&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:option&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:option&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:option&quot;&gt;&amp;lt;option&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:output&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:output&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:output&quot;&gt;&amp;lt;output&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:p&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:p&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:p&quot;&gt;&amp;lt;p&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:param&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:param&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:param&quot;&gt;&amp;lt;param&amp;gt;&lt;/a&gt;  Deprecated, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:picture&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:picture&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:picture&quot;&gt;&amp;lt;picture&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:plaintext&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:plaintext&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:plaintext&quot;&gt;&amp;lt;plaintext&amp;gt;&lt;/a&gt;  Deprecated, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:portal&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:portal&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:portal&quot;&gt;&amp;lt;portal&amp;gt;&lt;/a&gt;  Experimental, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:pre&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:pre&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:pre&quot;&gt;&amp;lt;pre&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:progress&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:progress&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:progress&quot;&gt;&amp;lt;progress&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:q&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:q&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:q&quot;&gt;&amp;lt;q&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:rb&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:rb&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:rb&quot;&gt;&amp;lt;rb&amp;gt;&lt;/a&gt;  Deprecated, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:rp&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:rp&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:rp&quot;&gt;&amp;lt;rp&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:rt&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:rt&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:rt&quot;&gt;&amp;lt;rt&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:rtc&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:rtc&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:rtc&quot;&gt;&amp;lt;rtc&amp;gt;&lt;/a&gt;  Deprecated, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:ruby&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:ruby&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:ruby&quot;&gt;&amp;lt;ruby&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:s&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:s&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:s&quot;&gt;&amp;lt;s&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:samp&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:samp&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:samp&quot;&gt;&amp;lt;samp&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:script&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:script&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:script&quot;&gt;&amp;lt;script&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:search&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:search&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:search&quot;&gt;&amp;lt;search&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:section&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:section&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:section&quot;&gt;&amp;lt;section&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:select&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:select&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:select&quot;&gt;&amp;lt;select&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:slot&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:slot&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:slot&quot;&gt;&amp;lt;slot&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:small&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:small&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:small&quot;&gt;&amp;lt;small&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:source&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:source&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:source&quot;&gt;&amp;lt;source&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:span&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:span&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:span&quot;&gt;&amp;lt;span&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:strike&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:strike&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:strike&quot;&gt;&amp;lt;strike&amp;gt;&lt;/a&gt;  Deprecated, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:strong&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:strong&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:strong&quot;&gt;&amp;lt;strong&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:style&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:style&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:style&quot;&gt;&amp;lt;style&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:sub&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:sub&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:sub&quot;&gt;&amp;lt;sub&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:summary&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:summary&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:summary&quot;&gt;&amp;lt;summary&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:sup&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:sup&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:sup&quot;&gt;&amp;lt;sup&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:table&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:table&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:table&quot;&gt;&amp;lt;table&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:tbody&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:tbody&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:tbody&quot;&gt;&amp;lt;tbody&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:td&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:td&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:td&quot;&gt;&amp;lt;td&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:template&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:template&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:template&quot;&gt;&amp;lt;template&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:textarea&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:textarea&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:textarea&quot;&gt;&amp;lt;textarea&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:tfoot&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:tfoot&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:tfoot&quot;&gt;&amp;lt;tfoot&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:th&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:th&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:th&quot;&gt;&amp;lt;th&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:thead&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:thead&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:thead&quot;&gt;&amp;lt;thead&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:time&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:time&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:time&quot;&gt;&amp;lt;time&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:title&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:title&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:title&quot;&gt;&amp;lt;title&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:tr&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:tr&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:tr&quot;&gt;&amp;lt;tr&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:track&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:track&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:track&quot;&gt;&amp;lt;track&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:tt&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:tt&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:tt&quot;&gt;&amp;lt;tt&amp;gt;&lt;/a&gt;  Deprecated, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:u&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:u&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:u&quot;&gt;&amp;lt;u&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:ul&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:ul&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:ul&quot;&gt;&amp;lt;ul&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:var&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:var&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:var&quot;&gt;&amp;lt;var&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:video&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:video&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:video&quot;&gt;&amp;lt;video&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:wbr&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:wbr&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:wbr&quot;&gt;&amp;lt;wbr&amp;gt;&lt;/a&gt;, 
&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:xmp&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:xmp&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:xmp&quot;&gt;&amp;lt;xmp&amp;gt;&lt;/a&gt;  Deprecated, 
&lt;/p&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.ru/lib/exe/fetch.php?media=git-manpages-2.9.5.tar.gz&quot; class=&quot;media mediafile mf_gz&quot; title=&quot;git-manpages-2.9.5.tar.gz (618.6 KB)&quot;&gt;git-manpages-2.9.5.tar.gz&lt;/a&gt;
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.ru/lib/exe/fetch.php?media=httpd-2.4.59.tar.gz&quot; class=&quot;media mediafile mf_gz&quot; title=&quot;httpd-2.4.59.tar.gz (9.4 MB)&quot;&gt;httpd-2.4.59.tar&lt;/a&gt;
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.ru/lib/exe/fetch.php?media=mapnik-3.1.0.tar.gz&quot; class=&quot;media mediafile mf_gz&quot; title=&quot;mapnik-3.1.0.tar.gz (10 MB)&quot;&gt;mapnik-3.1.0.tar.gz&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0422\u0435\u0433\u0438 HTML&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0442\u0435\u0433\u0438_html&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;17666-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 14 Oct 2025 13:09:26 +0000</pubDate>
        </item>
        <item>
            <title>playgrounds</title>
            <link>https://wwoss.ru/doku.php?id=playgrounds&amp;rev=1770494399</link>
            <description>&lt;div class=&quot;plugin_note noteblue&quot;&gt;синяя заметка
&lt;/div&gt;
&lt;p&gt;
&lt;i class=&quot;dw-icons fa fa-address-book&quot; style=&quot;font-size:16px&quot; title=&quot;&quot;&gt;&lt;/i&gt;
&lt;/p&gt;
&lt;div class=&quot;table&quot;&gt;&lt;table class=&quot;pagelist plgn__pglist&quot;&gt;&lt;tr&gt;&lt;td class=&quot;page&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:plugin:autotooltip&quot; class=&quot;wikilink1&quot; title=&quot;wiki:plugin:autotooltip&quot;  data-wiki-id=&quot;wiki:plugin:autotooltip&quot;&gt;Auto-Tooltip для «ДокуВики»&lt;/a&gt;&lt;/td&gt;&lt;td class=&quot;tags&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;page&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:plugin:backuptool&quot; class=&quot;wikilink1&quot; title=&quot;wiki:plugin:backuptool&quot;  data-wiki-id=&quot;wiki:plugin:backuptool&quot;&gt;1111&lt;/a&gt;&lt;/td&gt;&lt;td class=&quot;tags&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;page&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:plugin:citations&quot; class=&quot;wikilink1&quot; title=&quot;wiki:plugin:citations&quot;  data-wiki-id=&quot;wiki:plugin:citations&quot;&gt;Citations для «ДокуВики»&lt;/a&gt;&lt;/td&gt;&lt;td class=&quot;tags&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;page&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:plugin:codeprettify&quot; class=&quot;wikilink1&quot; title=&quot;wiki:plugin:codeprettify&quot;  data-wiki-id=&quot;wiki:plugin:codeprettify&quot;&gt;CodePrettifier для «ДокуВики»&lt;/a&gt;&lt;/td&gt;&lt;td class=&quot;tags&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;page&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:plugin:cookiebanner&quot; class=&quot;wikilink1&quot; title=&quot;wiki:plugin:cookiebanner&quot;  data-wiki-id=&quot;wiki:plugin:cookiebanner&quot;&gt;Cookiebanner для «ДокуВики»&lt;/a&gt;&lt;/td&gt;&lt;td class=&quot;tags&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;
&lt;h3 class=&quot;sectionedit1&quot; id=&quot;tiuy&quot;&gt;tiuy&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://wwoss.ru/lib/images/smileys/hourglass-select.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;3:&quot; /&gt; &lt;span style=&quot;color:#9acd32;&quot;&gt;3 мин.&lt;/span&gt;
&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=playgrounds&amp;amp;media=icons:16:clock-frame.png&quot; class=&quot;media&quot; title=&quot;icons:16:clock-frame.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:clock-frame.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;clock-frame.png.&quot; alt=&quot;clock-frame.png.&quot; /&gt;&lt;/a&gt;

&lt;!-- uSocial --&gt;
&lt;i class=&quot;fa fa-clock-o&quot;&gt;&lt;/i&gt;
&lt;script async src=&quot;https://usocial.pro/usocial/usocial.js?uid=60a79de4b3f94535&amp;v=6.1.5&quot; data-script=&quot;usocial&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;div class=&quot;uSocial-Share&quot; data-pid=&quot;00f776d6cddfbf5cd018ffe07f376ec7&quot; data-type=&quot;share&quot; data-options=&quot;round,style1,default,absolute,horizontal,size24,counter0,mobile_position_right&quot; data-social=&quot;vk,mail,ok,telegram,email&quot;&gt;&lt;/div&gt;
&lt;!-- /uSocial --&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;tiuy&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tiuy&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;297-835&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;hkghkg&quot;&gt;hkghkg&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Набор ссылок, с помощью которых можно быстро поделиться материалом в социальных сетях&lt;/title&gt;
  &lt;style&gt;
    *,
    *::before,
    *::after {
      box-sizing: border-box;
    }

    html {
      font-family: sans-serif;
      line-height: 1.15;
      -webkit-text-size-adjust: 100%;
      -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    }

    body {
      margin: 0;
      font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;, &quot;Noto Color Emoji&quot;;
      font-size: 1rem;
      font-weight: 400;
      line-height: 1.5;
      color: #212529;
      text-align: left;
      background-color: #fff;
    }

    /* social-share */
    .social-share {
      background-color: #f5f5f5;
      text-align: center;
      padding-top: 1rem;
      padding-bottom: 1rem;
    }

    .social-share__title {
      margin-bottom: 8px;
    }

    .social-share__items {
      display: inline-block;
    }

    .social-share__items a {
      text-decoration: none;
      color: #1976d2;
      margin-left: 8px;
      margin-right: 8px;
    }

    .social-share__items a:hover {
      color: #0d47a1;
    }
  &lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;

  &lt;div class=&quot;social-share&quot;&gt;
    &lt;div class=&quot;social-share__title&quot;&gt;
      Блок «Поделиться» для главной страницы ИТ Шеф:
    &lt;/div&gt;
    &lt;div class=&quot;social-share__items&quot;&gt;
      &lt;a href=&quot;https://twitter.com/intent/tweet?text=&quot;
        target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Twitter&lt;/a&gt;
      &lt;a href=&quot;https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fitchief.ru%2F&quot; target=&quot;_blank&quot;
        rel=&quot;noopener&quot;&gt;Facebook&lt;/a&gt;
      &lt;a href=&quot;https://vk.com/share.php?url=https%3A%2F%2Fitchief.ru%2F&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;ВКонтакте&lt;/a&gt;
      &lt;a href=&quot;https://t.me/share/url?url=https://wwoss.ru/doku.php?id=playground&amp;text=Пожалуйста, редактируйте только в том случае, если планируете улучшить содержимое. Если вы просто хотите потестировать что-либо, воспользуйтесь&quot;
        target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Telegram&lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;

&lt;/body&gt;


&lt;/p&gt;

&lt;p&gt;

&lt;iframe height=&quot;150&quot; style=&quot;width: 100%;&quot; scrolling=&quot;no&quot; title=&quot;Untitled&quot; src=&quot;./demo/chromium/search.html&quot; frameborder=&quot;no&quot; loading=&quot;lazy&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&gt;
&lt;/iframe&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;hkghkg&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hkghkg&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;836-3528&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;про&quot;&gt;про&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=playgrounds&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;index.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
admin&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;user-new:&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;$ &lt;span class=&quot;kw2&quot;&gt;date&lt;/span&gt;
Sat &lt;span class=&quot;nu0&quot;&gt;25&lt;/span&gt; Mar &lt;span class=&quot;nu0&quot;&gt;2023&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;14&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;:04:&lt;span class=&quot;nu0&quot;&gt;17&lt;/span&gt; PM MSK&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;


&lt;div class=&quot;ya-share2&quot; data-curtain data-size=&quot;l&quot; data-services=&quot;messenger,vkontakte,odnoklassniki,telegram,twitter,viber,whatsapp,moimir&quot;&gt;&lt;/div&gt;
&lt;script src=&quot;./js/share.js&quot;&gt;&lt;/script&gt;


&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u043f\u0440\u043e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;3529-3847&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;exsample&quot;&gt;exsample&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=playgrounds&amp;amp;media=icons:16:exclamation-shield-frame.png&quot; class=&quot;media&quot; title=&quot;icons:16:exclamation-shield-frame.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:exclamation-shield-frame.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;exclamation-shield-frame.png.&quot; alt=&quot;exclamation-shield-frame.png.&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://github.com/dokuwiki/dokuwiki/issues/issue&quot; class=&quot;interwiki iw_issue&quot; title=&quot;https://github.com/dokuwiki/dokuwiki/issues/issue&quot;&gt;issue&lt;/a&gt;
&lt;span style=&quot;font-family:cyrillicgoth;&quot;&gt;Шрифт CyrillicGoth&lt;/span&gt;
&lt;/p&gt;

&lt;p&gt;



&lt;style&gt;
  body_new {
    font-family: system-ui, -apple-system, &quot;Segoe UI&quot;, Roboto, &quot;Helvetica Neue&quot;, &quot;Noto Sans&quot;, &quot;Liberation Sans&quot;, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;, &quot;Noto Color Emoji&quot;;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    margin: 0;
    color: #212529;
    background-color: #fff;
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: transparent;
  }

  .container_new {
    margin: 1rem;
    padding: 1.5rem;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
  }

  .tab_new {
    display: flex;
    flex-direction: column;
  }

  .tab-nav_new &gt; input[type=&quot;radio&quot;] {
    display: none;
  }

  .tab-content_new {
    display: none;
  }

  #content-1:has(~ .tab-nav_new &gt; #tab-btn-1:checked),
  #content-2:has(~ .tab-nav_new &gt; #tab-btn-2:checked),
  #content-3:has(~ .tab-nav_new &gt; #tab-btn-3:checked) {
    display: block;
  }

  .tab-nav_new {
    display: flex;
    flex-wrap: wrap;
    border-bottom: 1px solid #dee2e6;
    margin-bottom: 1rem;
    order: -1;
  }

  .tab-nav_new &gt; label {
    display: block;
    padding: 0.5rem 1rem;
    color: #0d6efd;
    text-decoration: none;
    background: 0 0;
    border: 1px solid transparent;
    margin-bottom: -1px;
    border-top-left-radius: 0.375rem;
    border-top-right-radius: 0.375rem;
    -webkit-appearance: button;
    transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out;
  }

  .tab-nav_new &gt; input[type=&quot;radio&quot;]:checked + label {
    color: #000;
    background-color: #fff;
    border-color: #dee2e6 #dee2e6 #fff;
    cursor: default;
  }
&lt;/style&gt;
&lt;body_new&gt;
&lt;div class=&quot;container1_new&quot;&gt;
  &lt;div class=&quot;tab_new&quot;&gt;
    &lt;div class=&quot;tab-content_new&quot; id=&quot;content-1&quot;&gt;
      Содержимое 1... Lorem ipsum dolor sit, amet consectetur adipisicing elit. Similique eaque iure debitis nostrum,
      vero ad totam ratione sequi! Suscipit, labore repellat cum soluta ullam dignissimos perspiciatis sequi rerum
      sapiente ex.
    &lt;/div&gt;
    &lt;div class=&quot;tab-content_new&quot; id=&quot;content-2&quot;&gt;
      Содержимое 2... Lorem ipsum dolor sit, amet consectetur adipisicing elit. Similique eaque iure debitis nostrum,
      vero ad totam ratione sequi! Suscipit, labore repellat cum soluta ullam dignissimos perspiciatis sequi rerum
      sapiente ex.
    &lt;/div&gt;
    &lt;div class=&quot;tab-content_new&quot; id=&quot;content-3&quot;&gt;
      Содержимое 3... Lorem ipsum dolor sit, amet consectetur adipisicing elit. Similique eaque iure debitis nostrum,
      vero ad totam ratione sequi! Suscipit, labore repellat cum soluta ullam dignissimos perspiciatis sequi rerum
      sapiente ex.
    &lt;/div&gt;
    &lt;div class=&quot;tab-nav_new&quot;&gt;
      &lt;input checked id=&quot;tab-btn-1&quot; name=&quot;tab-btn&quot; type=&quot;radio&quot; value=&quot;&quot;&gt;
      &lt;label for=&quot;tab-btn-1&quot;&gt;Вкладка 1&lt;/label&gt;
      &lt;input id=&quot;tab-btn-2&quot; name=&quot;tab-btn&quot; type=&quot;radio&quot; value=&quot;&quot;&gt;
      &lt;label for=&quot;tab-btn-2&quot;&gt;Вкладка 2&lt;/label&gt;
      &lt;input id=&quot;tab-btn-3&quot; name=&quot;tab-btn&quot; type=&quot;radio&quot; value=&quot;&quot;&gt;
      &lt;label for=&quot;tab-btn-3&quot;&gt;Вкладка 3&lt;/label&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/body_new&gt;


&lt;/p&gt;

&lt;p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:syntax&quot; class=&quot;wikilink1&quot; title=&quot;wiki:syntax&quot; data-wiki-id=&quot;wiki:syntax&quot;&gt;syntax&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki&quot; class=&quot;wikilink1&quot; title=&quot;wiki&quot; data-wiki-id=&quot;wiki&quot;&gt;wiki&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:linux_server:rufus&quot; class=&quot;wikilink1&quot; title=&quot;software:linux_server:rufus&quot; data-wiki-id=&quot;software:linux_server:rufus&quot;&gt;rufus&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:localization&quot; class=&quot;wikilink1&quot; title=&quot;wiki:localization&quot; data-wiki-id=&quot;wiki:localization&quot;&gt;localization&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:html:element:template&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:html:element:template&quot; data-wiki-id=&quot;software:development:web:docs:web:html:element:template&quot;&gt;template&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:xref:dokuwiki:data:pages:wiki:syntax&quot; class=&quot;wikilink1&quot; title=&quot;wiki:xref:dokuwiki:data:pages:wiki:syntax&quot; data-wiki-id=&quot;wiki:xref:dokuwiki:data:pages:wiki:syntax&quot;&gt;syntax&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:demo:cms:ucms:application_template:social_network&quot; class=&quot;wikilink1&quot; title=&quot;software:development:demo:cms:ucms:application_template:social_network&quot; data-wiki-id=&quot;software:development:demo:cms:ucms:application_template:social_network&quot;&gt;social_network&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:auth&quot; class=&quot;wikilink1&quot; title=&quot;wiki:auth&quot; data-wiki-id=&quot;wiki:auth&quot;&gt;auth&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:link&quot; class=&quot;wikilink1&quot; title=&quot;wiki:link&quot; data-wiki-id=&quot;wiki:link&quot;&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:canonical&quot; class=&quot;wikilink1&quot; title=&quot;wiki:canonical&quot; data-wiki-id=&quot;wiki:canonical&quot;&gt;canonical&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;/p&gt;
&lt;div class=&quot;plugin_note noteblue&quot;&gt;&lt;span class=&quot;wrap_left &quot;&gt;← &lt;a href=&quot;https://wwoss.ru/doku.php?id=playground:playground&quot; class=&quot;wikilink2&quot; title=&quot;playground:playground&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;playground:playground&quot;&gt;playground&lt;/a&gt;&lt;/span&gt;
&lt;span class=&quot;wrap_right &quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=playground:playground&quot; class=&quot;wikilink2&quot; title=&quot;playground:playground&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;playground:playground&quot;&gt;playground&lt;/a&gt; →&lt;/span&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;plugin_note noteblue&quot;&gt;← &lt;a href=&quot;https://wwoss.ru/doku.php?id=playground:playground&quot; class=&quot;wikilink2&quot; title=&quot;playground:playground&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;playground:playground&quot;&gt;Читать далее...&lt;/a&gt;
&lt;/div&gt;&lt;div class=&quot;plugin_note noteblue&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=playground:playground&quot; class=&quot;wikilink2&quot; title=&quot;playground:playground&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;playground:playground&quot;&gt;Читать далее...&lt;/a&gt;
&lt;/div&gt;&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=playground:playground&quot; class=&quot;wikilink2&quot; title=&quot;playground:playground&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;playground:playground&quot;&gt;Читать далее...&lt;/a&gt;
&lt;/div&gt;&lt;hr /&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_left plugin_wrap&quot; style=&quot;width: 30%;&quot;&gt;&lt;div class=&quot;plugin_note noteblue&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=playground:playground&quot; class=&quot;wikilink2&quot; title=&quot;playground:playground&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;playground:playground&quot;&gt;Читать далее...&lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;hr /&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;exsample&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;exsample&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3848-7649&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;exsample1&quot;&gt;exsample&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

&lt;head&gt;
  &lt;meta charset=&quot;utf-8&quot;&gt;
  &lt;meta content=&quot;width=device-width, initial-scale=1&quot; name=&quot;viewport&quot;&gt;
  &lt;title&gt;Вкладки на CSS с использованием радиокнопок и :checked – 05&lt;/title&gt;
&lt;/head&gt;

&lt;style&gt;
  body {
    font-family: system-ui, -apple-system, &quot;Segoe UI&quot;, Roboto, &quot;Helvetica Neue&quot;, &quot;Noto Sans&quot;, &quot;Liberation Sans&quot;, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;, &quot;Noto Color Emoji&quot;;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    margin: 0;
    color: #212529;
    background-color: #fff;
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: transparent;
  }

  .container_1 {
    margin: 1rem;
    padding: 1.5rem;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
  }

  .tab {
    display: flex;
    flex-direction: column;
  }

  .tab-nav &gt; input[type=&quot;radio&quot;] {
    display: none;
  }

  .tab-content {
    display: none;
  }

  #content-1:has(~ .tab-nav &gt; #tab-btn-1:checked),
  #content-2:has(~ .tab-nav &gt; #tab-btn-2:checked),
  #content-3:has(~ .tab-nav &gt; #tab-btn-3:checked) {
    display: block;
  }

  .tab-nav {
    display: flex;
    flex-wrap: wrap;
    border-bottom: 1px solid #dee2e6;
    margin-bottom: 1rem;
    order: -1;
  }

  .tab-nav &gt; label {
    display: block;
    padding: 0.5rem 1rem;
    color: #0d6efd;
    text-decoration: none;
    background: 0 0;
    border: 1px solid transparent;
    margin-bottom: -1px;
    border-top-left-radius: 0.375rem;
    border-top-right-radius: 0.375rem;
    -webkit-appearance: button;
    transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out;
  }

  .tab-nav &gt; input[type=&quot;radio&quot;]:checked + label {
    color: #000;
    background-color: #fff;
    border-color: #dee2e6 #dee2e6 #fff;
    cursor: default;
  }
&lt;/style&gt;
&lt;body&gt;
&lt;div class=&quot;container_1&quot;&gt;
  &lt;div class=&quot;tab&quot;&gt;
    &lt;div class=&quot;tab-content&quot; id=&quot;content-1&quot;&gt;
      Содержимое 1... Lorem ipsum dolor sit, amet consectetur adipisicing elit. Similique eaque iure debitis nostrum,
      vero ad totam ratione sequi! Suscipit, labore repellat cum soluta ullam dignissimos perspiciatis sequi rerum
      sapiente ex.
    &lt;/div&gt;
    &lt;div class=&quot;tab-content&quot; id=&quot;content-2&quot;&gt;
      Содержимое 2... Lorem ipsum dolor sit, amet consectetur adipisicing elit. Similique eaque iure debitis nostrum,
      vero ad totam ratione sequi! Suscipit, labore repellat cum soluta ullam dignissimos perspiciatis sequi rerum
      sapiente ex.
    &lt;/div&gt;
    &lt;div class=&quot;tab-content&quot; id=&quot;content-3&quot;&gt;
      Содержимое 3... Lorem ipsum dolor sit, amet consectetur adipisicing elit. Similique eaque iure debitis nostrum,
      vero ad totam ratione sequi! Suscipit, labore repellat cum soluta ullam dignissimos perspiciatis sequi rerum
      sapiente ex.
    &lt;/div&gt;
    &lt;div class=&quot;tab-nav&quot;&gt;
      &lt;input checked id=&quot;tab-btn-1&quot; name=&quot;tab-btn&quot; type=&quot;radio&quot; value=&quot;&quot;&gt;
      &lt;label for=&quot;tab-btn-1&quot;&gt;Вкладка 1&lt;/label&gt;
      &lt;input id=&quot;tab-btn-2&quot; name=&quot;tab-btn&quot; type=&quot;radio&quot; value=&quot;&quot;&gt;
      &lt;label for=&quot;tab-btn-2&quot;&gt;Вкладка 2&lt;/label&gt;
      &lt;input id=&quot;tab-btn-3&quot; name=&quot;tab-btn&quot; type=&quot;radio&quot; value=&quot;&quot;&gt;
      &lt;label for=&quot;tab-btn-3&quot;&gt;Вкладка 3&lt;/label&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;ао&quot;&gt;ао&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;div class=&quot;media diagrams-svg-wrapper mediacenter&quot;&gt;&lt;object class=&quot;diagrams-svg&quot; data=&quot;/lib/exe/fetch.php?cache=nocache&amp;amp;media=test.svg&quot; data-id=&quot;test.svg&quot; type=&quot;image/svg+xml&quot;&gt;&lt;span class=&quot;diagrams-alt&quot;&gt;&lt;/span&gt;&lt;/object&gt;&lt;div class=&quot;diagrams-buttons&quot;&gt;&lt;/div&gt;&lt;/div&gt;
&lt;i class=&quot;dw-icons fa fa-home&quot; style=&quot;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%;padding:10px;background-color:#DDD;color:#CCC&quot; title=&quot;&quot;&gt;&lt;/i&gt;
&lt;i class=&quot;dw-icons fa fa-home&quot; style=&quot;font-size:16px&quot; title=&quot;My Home&quot;&gt;&lt;/i&gt;
&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=24&amp;amp;h=24&amp;amp;tok=5dce33&amp;amp;media=https%3A%2F%2Fraw.githubusercontent.com%2Fyusukekamiyamane%2Ffugue-icons%2Fmaster%2Fbonus%2Ficons-24%2Fuser.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt;
&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=405ecb&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fsilk%2F16%2Fanchor-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt;
&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=780e40&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fno-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt;
&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:welcome&quot; class=&quot;wikilink1&quot;&gt;&lt;i class=&quot;dw-icons fa fa-home&quot; style=&quot;font-size:24px&quot; title=&quot;Welcome to DokuWiki&quot;&gt;&lt;/i&gt;&lt;/a&gt;
&lt;a href=&quot;https://github.com/LotarProject/dokuwiki-plugin-icons&quot; rel=&quot;nofollow&quot;&gt;&lt;i class=&quot;dw-icons fa fa-github-square&quot; style=&quot;font-size:24px&quot; title=&quot;Icons DokuWiki plugin on GitHub&quot;&gt;&lt;/i&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;exsample&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;exsample1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;7650-11299&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;читать_далее&quot;&gt;читать далее&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

&lt;head&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;style&gt;
#more {display: none;}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;h2&gt;Кнопка читать дальше&lt;/h2&gt;

&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus imperdiet, nulla et dictum interdum, nisi lorem egestas vitae scel&lt;span id=&quot;dots&quot;&gt;...&lt;/span&gt;&lt;span id=&quot;more&quot;&gt;erisque enim ligula venenatis dolor. Maecenas nisl est, ultrices nec congue eget, auctor vitae massa. Fusce luctus vestibulum augue ut aliquet. Nunc sagittis dictum nisi, sed ullamcorper ipsum dignissim ac. In at libero sed nunc venenatis imperdiet sed ornare turpis. Donec vitae dui eget tellus gravida venenatis. Integer fringilla congue eros non fermentum. Sed dapibus pulvinar nibh tempor porta.&lt;/span&gt;&lt;/p&gt;
&lt;button onclick=&quot;myFunction()&quot; id=&quot;myBtn&quot;&gt;Читать больше&lt;/button&gt;

&lt;script&gt;
function myFunction() {
  var dots = document.getElementById(&quot;dots&quot;);
  var moreText = document.getElementById(&quot;more&quot;);
  var btnText = document.getElementById(&quot;myBtn&quot;);

  if (dots.style.display === &quot;none&quot;) {
    dots.style.display = &quot;inline&quot;;
    btnText.innerHTML = &quot;Читать больше&quot;; 
    moreText.style.display = &quot;none&quot;;
  } else {
    dots.style.display = &quot;none&quot;;
    btnText.innerHTML = &quot;Читать меньше&quot;; 
    moreText.style.display = &quot;inline&quot;;
  }
}
&lt;/script&gt;

&lt;/body&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u0435\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0447\u0438\u0442\u0430\u0442\u044c_\u0434\u0430\u043b\u0435\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;11300-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 07 Feb 2026 19:59:59 +0000</pubDate>
        </item>
        <item>
            <title>public_domain_mark</title>
            <link>https://wwoss.ru/doku.php?id=public_domain_mark&amp;rev=1738224608</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;public_domain_mark_10_universal&quot;&gt;Public Domain Mark 1.0 Universal&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;pdm_10_краткое_описание&quot;&gt;PDM 1.0 КРАТКОЕ ОПИСАНИЕ&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Canonical &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;  &lt;a href=&quot;https://creativecommons.org/publicdomain/mark/1.0/&quot; class=&quot;urlextern&quot; title=&quot;https://creativecommons.org/publicdomain/mark/1.0/&quot; rel=&quot;ugc nofollow&quot;&gt;https://creativecommons.org/publicdomain/mark/1.0/&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Public Domain Mark 1.0 Universal&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;public_domain_mark_10_universal&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-157&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;нет_авторских_прав&quot;&gt;Нет авторских прав&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=public_domain_mark&amp;amp;media=pdm.png&quot; class=&quot;media&quot; title=&quot;pdm.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=pdm.png&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;strong&gt;&lt;span style=&quot;color:#22b14c;&quot;&gt;Это произведение было идентифицировано как являющееся свободным от известных ограничений по закону об авторских правах, включая все связанные и смежные права.


Вы можете копировать, изменять, распространять и исполнять данное произведение, даже в коммерческих целях, всё не спрашивая разрешения.&lt;/span&gt;&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;См. «Другую информацию» ниже.&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0435\u0442 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0445 \u043f\u0440\u0430\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0435\u0442_\u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0445_\u043f\u0440\u0430\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;158-846&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;другая_информация&quot;&gt;Другая информация&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;span style=&quot;color:#22b14c;&quot;&gt;&lt;strong&gt;Это произведение может иметь некоторые правовые ограничения в каких либо юрисдикциях.

Лица могут иметь другие права, связанные с данным произведением, такие как патентные права или права торговой марки, а другие могут иметь права в том как данное произведение используется, такие как права публичности или конфиденциальности.&lt;br/&gt;
 

В некоторых юрисдикциях моральные права данного автора могут сохраняться вне зависимости от срока действия авторского права. Эти права могут включать право быть указанным в качестве автора или право возражать против пренебрежительного обращения.&lt;br/&gt;
 

Если прямо не указано иное, лицо, идентифицирующее данное произведение не даёт никаких гарантий относительно произведения и не несет ответственности за все виды использования произведения, в максимально возможной степени, допустимой применимым правом.&lt;br/&gt;
 

При использовании или цитировании произведения вы не должны намекать на то, что вас поддерживает автор или лицо, идентифицирующее произведение.&lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u0440\u0443\u0433\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u0440\u0443\u0433\u0430\u044f_\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;847-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 30 Jan 2025 08:10:08 +0000</pubDate>
        </item>
        <item>
            <title>repo</title>
            <link>https://wwoss.ru/doku.php?id=repo&amp;rev=1767434351</link>
            <description>
&lt;p&gt;

&lt;iframe width=&quot;1000&quot; height=&quot;1000&quot; src=&quot;https://repo.wwoss.ru/repo/&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;

&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 03 Jan 2026 09:59:11 +0000</pubDate>
        </item>
        <item>
            <title>responsibility_for_spam</title>
            <link>https://wwoss.ru/doku.php?id=responsibility_for_spam&amp;rev=1750600216</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;ответственность_за_спам&quot;&gt;Ответственность за СПАМ&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Настоящее Соглашение определяет условия использования Пользователями материалов и сервисов сайта, находящегося по адресу &lt;a href=&quot;http://www.wwoss.ru/wiki/&quot; class=&quot;urlextern&quot; title=&quot;http://www.wwoss.ru/wiki/&quot; rel=&quot;ugc nofollow&quot;&gt;www.wwoss.ru/wiki/&lt;/a&gt;     (далее — «Сайт»).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0437\u0430 \u0421\u041f\u0410\u041c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c_\u0437\u0430_\u0441\u043f\u0430\u043c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-341&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;федеральный_закон_38-фз_о_рекламе&quot;&gt;Федеральный закон №38-ФЗ «О рекламе»&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
1. В целях обеспечения прослеживаемости рекламы в информационно-телекоммуникационной сети «Интернет» федеральный орган исполнительной власти, осуществляющий функции по контролю и надзору в сфере средств массовой информации, массовых коммуникаций, информационных технологий и связи, осуществляет учет, хранение и обработку информации о распространенной в информационно-телекоммуникационной сети «Интернет» рекламе, в том числе сведений о рекламодателях и рекламораспространителях такой рекламы, операторах рекламных систем. Состав информации о распространенной в информационно-телекоммуникационной сети «Интернет» рекламе, подлежащей учету, хранению и обработке федеральным органом исполнительной власти, осуществляющим функции по контролю и надзору в сфере средств массовой информации, массовых коммуникаций, информационных технологий и связи, определяется Правительством Российской Федерации.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://pravo.gov.ru/proxy/ips/?docbody=&amp;amp;nd=102105292&quot; class=&quot;urlextern&quot; title=&quot;http://pravo.gov.ru/proxy/ips/?docbody=&amp;amp;nd=102105292&quot; rel=&quot;ugc nofollow&quot;&gt;Глава 2, Статья 18.1. Реклама в информационно-телекоммуникационной сети &amp;quot;Интернет&amp;quot;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
1. &lt;strong&gt;&lt;span style=&quot;color:#ed1c24;&quot;&gt;Распространение рекламы по сетям электросвязи, в том числе посредством использования телефонной, факсимильной, подвижной радиотелефонной связи, допускается только при условии предварительного согласия абонента или адресата на получение рекламы. При этом реклама признается распространенной без предварительного согласия абонента или адресата, если рекламораспространитель не докажет, что такое согласие было получено. Рекламораспространитель обязан немедленно прекратить распространение рекламы в адрес лица, обратившегося к нему с таким требованием.&lt;/span&gt;&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://web.archive.org/web/20170503123811/http://fas.gov.ru:80/documents/documentdetails.html?id=998#18&quot; class=&quot;urlextern&quot; title=&quot;https://web.archive.org/web/20170503123811/http://fas.gov.ru:80/documents/documentdetails.html?id=998#18&quot; rel=&quot;ugc nofollow&quot;&gt;Постатейный комментарий к Федеральному закону от 13.03.2006 № 38-ФЗ &amp;quot;О рекламе&amp;quot;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Ответственность за нарушение закона о рекламе:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; для граждан — от 2 000 до 2 500 рублей;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; для должностных лиц — от 4 000 до 20 000 рублей;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; для юридических лиц —- от 100 000 до 500 000 рублей.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0424\u0435\u0434\u0435\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u0437\u0430\u043a\u043e\u043d \u211638-\u0424\u0417 \u00ab\u041e \u0440\u0435\u043a\u043b\u0430\u043c\u0435\u00bb&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u0435\u0434\u0435\u0440\u0430\u043b\u044c\u043d\u044b\u0439_\u0437\u0430\u043a\u043e\u043d_38-\u0444\u0437_\u043e_\u0440\u0435\u043a\u043b\u0430\u043c\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;342-3917&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;федеральный_закон_о_персональных_данных&quot;&gt;Федеральный закон «О персональных данных»&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Персональные данные - любая информация, относящаяся к прямо или косвенно определенному или определяемому физическому лицу (субъекту персональных данных);
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://pravo.gov.ru/proxy/ips/?docbody&amp;amp;nd=102108261&quot; class=&quot;urlextern&quot; title=&quot;http://pravo.gov.ru/proxy/ips/?docbody&amp;amp;nd=102108261&quot; rel=&quot;ugc nofollow&quot;&gt;Статья 3, Пункт 1. Основные понятия, используемые в настоящем Федеральном законе&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;&lt;span style=&quot;color:#ed1c24;&quot;&gt;1. Обработка персональных данных в целях продвижения товаров, работ, услуг на рынке путем осуществления прямых контактов с потенциальным потребителем с помощью средств связи, а также в целях политической агитации допускается только при условии предварительного согласия субъекта персональных данных. Указанная обработка персональных данных признается осуществляемой без предварительного согласия субъекта персональных данных, если оператор не докажет, что такое согласие было получено.

2. Оператор обязан немедленно прекратить по требованию субъекта персональных данных обработку его персональных данных, указанную в части 1 настоящей статьи.&lt;/span&gt;&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://pravo.gov.ru/proxy/ips/?docbody&amp;amp;nd=102108261&quot; class=&quot;urlextern&quot; title=&quot;http://pravo.gov.ru/proxy/ips/?docbody&amp;amp;nd=102108261&quot; rel=&quot;ugc nofollow&quot;&gt;Статья 15. Права субъектов персональных данных при обработке их персональных данных в целях продвижения товаров, работ, услуг на рынке, а также в целях политической агитации&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Ответственность за нарушение закона о персональных данных:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; для граждан — от 100 до 5 000 рублей;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; для должностных лиц — от 300 до 20 000 рублей;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; для индивидуальных предпринимателей — от 5 000 до 20 000 рублей;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; для юридических лиц — от 15 000 до 75 000 рублей.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Пользователь подтверждает, что ознакомлен со всеми пунктами настоящего Соглашения об ответственности и безусловно принимает их.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0424\u0435\u0434\u0435\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u0437\u0430\u043a\u043e\u043d \u00ab\u041e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445\u00bb&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u0435\u0434\u0435\u0440\u0430\u043b\u044c\u043d\u044b\u0439_\u0437\u0430\u043a\u043e\u043d_\u043e_\u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445_\u0434\u0430\u043d\u043d\u044b\u0445&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;3918-6779&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;ук_рф_преступления_в_сфере_компьютерной_информации&quot;&gt;УК РФ ПРЕСТУПЛЕНИЯ В СФЕРЕ КОМПЬЮТЕРНОЙ ИНФОРМАЦИИ&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Неправомерный доступ к охраняемой законом компьютерной информации, если это деяние повлекло уничтожение, блокирование, модификацию либо копирование компьютерной информации.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://docs.cntd.ru/document/9017477&quot; class=&quot;urlextern&quot; title=&quot;https://docs.cntd.ru/document/9017477&quot; rel=&quot;ugc nofollow&quot;&gt;Глава 28, Статья 272. Неправомерный доступ к компьютерной информации&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;&lt;span style=&quot;color:#ed1c24;&quot;&gt;Неправомерный доступ к компьютерной информации - это не санкционированное собственником или иным законным пользователем информации проникновение к ней, в том числе с возможностью ознакомления, которое позволяет распоряжаться этой информацией (уничтожать, блокировать, модифицировать и т.д.), и создающее опасность как для самой информации, так и для интересов собственника или иного законного пользователя. 
Предметом неправомерного доступа к компьютерной информации является охраняемая законом компьютерная информация, под которой понимаются сведения о лицах, предметах, фактах, событиях, явлениях и процессах, находящиеся на машинном носителе, в ЭВМ, системе ЭВМ или их сети.&lt;/span&gt;&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://ukodeksrf.ru/ch-2/rzd-9/gl-28/st-272-uk-rf&quot; class=&quot;urlextern&quot; title=&quot;https://ukodeksrf.ru/ch-2/rzd-9/gl-28/st-272-uk-rf&quot; rel=&quot;ugc nofollow&quot;&gt;Комментарий к Статье 272 УК РФ &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Ответственность за нарушение Статьи 272, Пункт 1 УК РФ:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; штраф до 200 000 рублей или в размере дохода за 18 месяцев;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; исправительные работы до года;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; тюрьма или принудительные работы на срок до двух лет.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u041a \u0420\u0424 \u041f\u0420\u0415\u0421\u0422\u0423\u041f\u041b\u0415\u041d\u0418\u042f \u0412 \u0421\u0424\u0415\u0420\u0415 \u041a\u041e\u041c\u041f\u042c\u042e\u0422\u0415\u0420\u041d\u041e\u0419 \u0418\u041d\u0424\u041e\u0420\u041c\u0410\u0426\u0418\u0418&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u043a_\u0440\u0444_\u043f\u0440\u0435\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f_\u0432_\u0441\u0444\u0435\u0440\u0435_\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0439_\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;6780-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 22 Jun 2025 13:50:16 +0000</pubDate>
        </item>
        <item>
            <title>rules</title>
            <link>https://wwoss.ru/doku.php?id=rules&amp;rev=1693614647</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;правила_поведения_на_сайте&quot;&gt;Правила поведения на сайте&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Приведенные ниже правила распространяются на всех посетителей сайта, оставляющих комментарии к статьям или участвующих в форумах и блогах, и обязательны для выполнения.
Администрация сайта оставляет за собой право изменять правила без уведомления.
Дополнения и изменения правил начинают действовать с момента их опубликования.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u0430\u0432\u0438\u043b\u0430 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u0430\u0439\u0442\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0430\u0432\u0438\u043b\u0430_\u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f_\u043d\u0430_\u0441\u0430\u0439\u0442\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-668&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;регистрация&quot;&gt;Регистрация:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Право публиковать комментарии к статьям, а также сообщения и комментарии в блогах и форумах имеют только лица, прошедшие процедуру регистрации.
При регистрации не допускается использование вместо имени, фамилии или логина нецензурных выражений, адресов веб-сайтов, e-mail и т. п.
Лица, желающие публиковать в блогах не только комментарии, но и собственные посты, то есть выступать в роли блогеров, должны предварительно согласовать этот вопрос с ведущим темы интересующего их блога, обратившись к нему по электронной почте (по соответствующей ссылке на странице блога), после чего зарегистрироваться на сайте с указанием настоящих имени и фамилии (если это было сделано ранее для участия в форумах, то повторная регистрация не требуется), затем указать в своем профиле своем место работы и должность и выслать на адрес ведущего темы портретное фото размером примерно 400&amp;times;600 пикселей в формате JPG.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;669-2332&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;общие_положения&quot;&gt;Общие положения:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Прежде чем создавать новые темы на форумах, обязательно воспользуйтесь поиском и прочтите &lt;abbr title=&quot;Frequently Asked Questions&quot;&gt;FAQ&lt;/abbr&gt;. Возможно, то, что Вы хотите спросить, уже обсуждалось. Так Вы сэкономите время себе и другим.
Старайтесь писать грамотно. Проверяйте написанные сообщения перед тем как их отправить.
При подготовке сообщения избегайте излишнего цитирования. Это затрудняет чтение сообщения и излишне загружает тему.
Личная переписка в общей теме считается оффтопиком. Для личной переписки есть Персональные сообщения.
Избегайте копирования объёмных материалов каких-либо веб-страниц. Лучше публикуйте ссылки на эти материалы.
Если Вам нечего сказать, лучше ничего не говорить. Не надо писать сообщения только для того, чтобы отметиться.
Оставляя комментарий к статье, в форуме или блоге, следуйте правилу: обсуждаем предмет дискуссии и аргументы оппонентов, а не личностные и профессиональные качества участников дискуссии.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0431\u0449\u0438\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0431\u0449\u0438\u0435_\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2333-4026&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;в_комментариях_к_статьям_блогах_и_форумах_запрещено&quot;&gt;В комментариях к статьям, блогах и форумах запрещено:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Публиковать сообщения, нарушающие действующее законодательство РФ.
Публиковать заведомо ложную информацию.
Использовать нецензурные и/или грубые выражения (в том числе в замаскированной форме).
Оскорблять кого-либо в прямой или косвенной форме, проявлять неуважение к авторам публикаций и участникам дискуссии (см. также Общие положения, п. 7).
Делать замечания участникам, не обладая для этого правами ведущего темы или модератора (их права и обязанности оговорены ниже).
Обсуждать публично замечания и действия ведущего темы или модератора. Свое мнение можно выразить, обратившись к руководству редакции по адресу blogger@vladpolskiy.ru.
Рекламировать в сообщениях, подписях или аватарах любые товары и услуги без специального разрешения администрации сайта.
Создавать одинаковые темы или сообщения в разных форумах и блогах.
Создавать темы с вопросами, ответы на которые даны в теме &lt;abbr title=&quot;Frequently Asked Questions&quot;&gt;FAQ&lt;/abbr&gt;.
Создавать новые темы с названиями, не отражающими суть проблемы или вопроса.
Инициировать обсуждения на «вольные темы» (флеймить), создавать темы, не соответствующие тематике форумов, а также размещать комментарии, не соответствующие обсуждаемой теме (оффтопик).
Публиковать ссылки на нелицензионное коммерческое программное обеспечение (варез), программы для его взлома (краки) и генераторы ключей, а также на материалы, защищённые авторскими правами (книги, музыка, видео и прочее).
Публиковать сообщения, не несущие конкретной смысловой нагрузки в контексте обсуждаемой темы (флуд).
Публиковать сообщения, содержащие «аффтарскую» речь, специально сделанные ошибки; злостно нарушать правила русского языка.
Размещать в подписях к сообщениям ссылки на сайты, не отвечающие тематике форума.
Публиковать сообщения, набранные ЗАГЛАВНЫМИ или заглавными и прописными буквами вперемешку («вОт ТаКиМ оБрАзОм»), а также использовать в текстах особое форматирование и выделение цветом, отличное от стандартного, с целью привлечения дополнительного внимания аудитории.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u043a \u0441\u0442\u0430\u0442\u044c\u044f\u043c, \u0431\u043b\u043e\u0433\u0430\u0445 \u0438 \u0444\u043e\u0440\u0443\u043c\u0430\u0445 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u043e:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432_\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445_\u043a_\u0441\u0442\u0430\u0442\u044c\u044f\u043c_\u0431\u043b\u043e\u0433\u0430\u0445_\u0438_\u0444\u043e\u0440\u0443\u043c\u0430\u0445_\u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u043e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;4027-7697&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;не_рекомендуется&quot;&gt;Не рекомендуется:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Набирать сообщения транслитом, так как это неудобно для чтения. Существуют методы, которые позволяют переводить транслит в кириллицу. (Администрация сайта оставляет за собой право закрывать темы, в которых пользователи постоянно пишут транслитом и игнорируют данный пункт правил.)
Создавать аватары и подписи на политические или религиозные темы. (Администрация оставляет за собой право удалять такие аватары и подписи после уведомления пользователя через Персональные сообщения.)
Публиковать сообщения политического или религиозного содержания. (Администрация оставляет за собой право удалять подобные сообщения без предупреждения.)
Использовать подписи на любом языке, кроме русского и английского. Пользователи русскоязычного форума должны понимать то, что пишут остальные участники форума. Английский считается международным языком. (Администрация оставляет за собой право удалять такие подписи после уведомления пользователя через Персональные сообщения.)
Многократно поднимать тему, если на поставленный вопрос ответ не был получен своевременно. В случае многократного поднятия темы сообщениями типа «up», это может быть расценено как флуд.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0435_\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;7698-9862&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;требования_к_блогерам&quot;&gt;Требования к блогерам:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Блогер принимает на себя обязательство регулярного участия в работе блога (в среднем не реже одного поста в месяц).
В блогах ITWeek не допускается публикация постов, ранее опубликованных на других интернет-ресурсах.
Публикация размещенных в блогах ITWeek постов на других интернет-ресурсах возможна в соответствии с правилами, изложенными в Информации об авторских правах и порядке использования материалов сайта.
Публикация поста предполагает последующее участие блогера в его обсуждении, если комментарии к посту содержат обращенные к автору поста вопросы. В случае систематического игнорирования автором этого правила администрация сайта вправе исключить его из числа блогеров.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0431\u043b\u043e\u0433\u0435\u0440\u0430\u043c:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f_\u043a_\u0431\u043b\u043e\u0433\u0435\u0440\u0430\u043c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;9863-11162&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;администрирование&quot;&gt;Администрирование:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Администрирование блогов и форумов осуществляют ведущие тем блогов и модераторы. Они имеют право преимущественного трактования правил форумов и блогов в случае, если какому-либо участнику они представляются неоднозначными.
Ведущие тем блогов контролируют соответствие предложенных к публикации постов и комментариев к ним действующим в блогах правилам, а также осуществляют публикацию подготовленных блогерами постов. Ведущие тем блогов имеют право делать замечания участникам блогов в случае нарушения ими правил участия в блогах, сославшись на конкретный пункт правил.
Модераторы форумов и блогов имеют право редактировать, переносить, закрывать, а также удалять сообщения и темы, не удовлетворяющие правилам, без предупреждения.
Действия ведущих тем и модераторов можно обсудить непосредственно с ними (только посредством персональных сообщений) или обжаловать в администрации сайта по адресу PolskiyVN@gmail.com
Решение администрации сайта является окончательным и обжалованию не подлежит.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;11163-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 02 Sep 2023 00:30:47 +0000</pubDate>
        </item>
        <item>
            <title>start</title>
            <link>https://wwoss.ru/doku.php?id=start&amp;rev=1768230935</link>
            <description>
&lt;p&gt;
&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=start&amp;amp;media=wwoss_visual.svg&quot; class=&quot;media wikilink2&quot; title=&quot;wwoss_visual.svg&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=wwoss_visual.svg&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://wwoss.ru/doku.php?id=tag:html&amp;amp;do=showtag&amp;amp;tag=%5Bhtml&quot; class=&quot;wikilink1&quot; title=&quot;tag:html&quot; rel=&quot;tag&quot;&gt;[html&lt;/a&gt;,
	&lt;a href=&quot;https://wwoss.ru/doku.php?id=tag:php&amp;amp;do=showtag&amp;amp;tag=php%5D&quot; class=&quot;wikilink1&quot; title=&quot;tag:php&quot; rel=&quot;tag&quot;&gt;php]&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 12 Jan 2026 15:15:35 +0000</pubDate>
        </item>
        <item>
            <title>statistic</title>
            <link>https://wwoss.ru/doku.php?id=statistic&amp;rev=1751798257</link>
            <description>&lt;div class=&quot;statdisplay-progress&quot; title=&quot;100.00%&quot;&gt;&lt;span style=&quot;width: 100.00%&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;table&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot; colspan=&quot;10&quot;&gt;Отчёт за месяц&lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot; rowspan=&quot;2&quot;&gt;Месяц&lt;/th&gt;&lt;th class=&quot;col1 centeralign&quot; colspan=&quot;4&quot;&gt;Среднее за день&lt;/th&gt;&lt;th class=&quot;col5 centeralign&quot; colspan=&quot;5&quot;&gt;Итог за месяц&lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;Переходы&lt;/th&gt;&lt;th class=&quot;col1 centeralign&quot;&gt;Файлы&lt;/th&gt;&lt;th class=&quot;col2 centeralign&quot;&gt;Страниц&lt;/th&gt;&lt;th class=&quot;col3 centeralign&quot;&gt;Посетителей&lt;/th&gt;&lt;th class=&quot;col4 centeralign&quot;&gt;Переходы&lt;/th&gt;&lt;th class=&quot;col5 centeralign&quot;&gt;Файлы&lt;/th&gt;&lt;th class=&quot;col6 centeralign&quot;&gt;Страниц&lt;/th&gt;&lt;th class=&quot;col7 centeralign&quot;&gt;Посетителей&lt;/th&gt;&lt;th class=&quot;col8 centeralign&quot;&gt;Байт&lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;2026-01&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;16997&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;1215&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;751&lt;/td&gt;&lt;td class=&quot;col4 rightalign&quot;&gt;864&lt;/td&gt;&lt;td class=&quot;col5 rightalign&quot;&gt;305940&lt;/td&gt;&lt;td class=&quot;col6 rightalign&quot;&gt;21868&lt;/td&gt;&lt;td class=&quot;col7 rightalign&quot;&gt;13513&lt;/td&gt;&lt;td class=&quot;col8 rightalign&quot;&gt;15544&lt;/td&gt;&lt;td class=&quot;col9 rightalign&quot;&gt;59.4 GB&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;2026-02&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;9307&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;989&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;2565&lt;/td&gt;&lt;td class=&quot;col4 rightalign&quot;&gt;627&lt;/td&gt;&lt;td class=&quot;col5 rightalign&quot;&gt;251298&lt;/td&gt;&lt;td class=&quot;col6 rightalign&quot;&gt;25712&lt;/td&gt;&lt;td class=&quot;col7 rightalign&quot;&gt;69254&lt;/td&gt;&lt;td class=&quot;col8 rightalign&quot;&gt;16927&lt;/td&gt;&lt;td class=&quot;col9 rightalign&quot;&gt;94 GB&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;2026-03&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;5152&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;373&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;3935&lt;/td&gt;&lt;td class=&quot;col4 rightalign&quot;&gt;802&lt;/td&gt;&lt;td class=&quot;col5 rightalign&quot;&gt;113349&lt;/td&gt;&lt;td class=&quot;col6 rightalign&quot;&gt;8197&lt;/td&gt;&lt;td class=&quot;col7 rightalign&quot;&gt;86563&lt;/td&gt;&lt;td class=&quot;col8 rightalign&quot;&gt;17645&lt;/td&gt;&lt;td class=&quot;col9 rightalign&quot;&gt;74.6 GB&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;2026-04&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;24370&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;1954&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;16971&lt;/td&gt;&lt;td class=&quot;col4 rightalign&quot;&gt;716&lt;/td&gt;&lt;td class=&quot;col5 rightalign&quot;&gt;731085&lt;/td&gt;&lt;td class=&quot;col6 rightalign&quot;&gt;58624&lt;/td&gt;&lt;td class=&quot;col7 rightalign&quot;&gt;509116&lt;/td&gt;&lt;td class=&quot;col8 rightalign&quot;&gt;21467&lt;/td&gt;&lt;td class=&quot;col9 rightalign&quot;&gt;106.4 GB&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;2026-05&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;6099&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;3057&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;2778&lt;/td&gt;&lt;td class=&quot;col4 rightalign&quot;&gt;358&lt;/td&gt;&lt;td class=&quot;col5 rightalign&quot;&gt;189080&lt;/td&gt;&lt;td class=&quot;col6 rightalign&quot;&gt;94752&lt;/td&gt;&lt;td class=&quot;col7 rightalign&quot;&gt;86114&lt;/td&gt;&lt;td class=&quot;col8 rightalign&quot;&gt;11108&lt;/td&gt;&lt;td class=&quot;col9 rightalign&quot;&gt;590.1 GB&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;2026-06&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;12073&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;6044&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;4675&lt;/td&gt;&lt;td class=&quot;col4 rightalign&quot;&gt;1432&lt;/td&gt;&lt;td class=&quot;col5 rightalign&quot;&gt;362200&lt;/td&gt;&lt;td class=&quot;col6 rightalign&quot;&gt;181305&lt;/td&gt;&lt;td class=&quot;col7 rightalign&quot;&gt;140235&lt;/td&gt;&lt;td class=&quot;col8 rightalign&quot;&gt;42970&lt;/td&gt;&lt;td class=&quot;col9 rightalign&quot;&gt;1893.3 GB&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;2026-07&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;73616&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;67935&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;4124&lt;/td&gt;&lt;td class=&quot;col4 rightalign&quot;&gt;14876&lt;/td&gt;&lt;td class=&quot;col5 rightalign&quot;&gt;2282108&lt;/td&gt;&lt;td class=&quot;col6 rightalign&quot;&gt;2105975&lt;/td&gt;&lt;td class=&quot;col7 rightalign&quot;&gt;127843&lt;/td&gt;&lt;td class=&quot;col8 rightalign&quot;&gt;461142&lt;/td&gt;&lt;td class=&quot;col9 rightalign&quot;&gt;1531.1 GB&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;2026-08&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;25909&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;24406&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;669&lt;/td&gt;&lt;td class=&quot;col4 rightalign&quot;&gt;5044&lt;/td&gt;&lt;td class=&quot;col5 rightalign&quot;&gt;77726&lt;/td&gt;&lt;td class=&quot;col6 rightalign&quot;&gt;73218&lt;/td&gt;&lt;td class=&quot;col7 rightalign&quot;&gt;2006&lt;/td&gt;&lt;td class=&quot;col8 rightalign&quot;&gt;15131&lt;/td&gt;&lt;td class=&quot;col9 rightalign&quot;&gt;16.8 GB&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;
&lt;img  src=&quot;/lib/plugins/statdisplay/graph.php?graph=all&amp;amp;f=&amp;amp;t=&quot; class=&quot;media&quot;/&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;table&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot; colspan=&quot;4&quot;&gt;Самые посещаемые страницы в 2026-08&lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;#&lt;/th&gt;&lt;th class=&quot;col1 centeralign&quot;&gt;Имя&lt;/th&gt;&lt;th class=&quot;col2 centeralign&quot; colspan=&quot;2&quot;&gt;Переходы&lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;1&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;503&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;25.07%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/development&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;45&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;2.24%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;3&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/plugins&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;22&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;1.10%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;4&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/auth&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;21&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;1.05%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;5&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/syntax&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;18&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.90%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;6&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/template&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;12&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.60%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;7&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/tips/tips&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;11&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.55%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;8&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;software/nas/install_dokuwiki&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;8&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.40%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;9&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;tmp_27.06.2026&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;8&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.40%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;10&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/sitemap_setting&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;7&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.35%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;11&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/template/starter&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;7&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.35%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row13&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;12&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/template/notepad&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;7&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.35%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row14&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;13&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;tmp_24.05.26_3&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;7&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.35%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row15&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;14&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/popularity&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;6&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.30%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row16&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;15&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/plugin/amazon&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;6&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.30%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row17&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;16&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/teams/getting_involved&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;6&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.30%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row18&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;17&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/design_examples&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;6&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.30%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row19&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;18&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/config/fnencode&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;6&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.30%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row20&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;19&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/export&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;6&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.30%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row21&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;20&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/config&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;6&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.30%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row22&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;21&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/features&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;6&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.30%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row23&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;22&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/tips/romanize&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;5&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.25%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row24&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;23&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/images&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;5&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.25%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row25&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;software/development/demo/ai_eva/ai_chat_bot_eva_v3&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;5&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.25%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row26&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;25&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/template/bushwick&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;5&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.25%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row27&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/acl&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;5&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.25%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row28&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;27&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/good_style&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;5&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.25%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row29&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;28&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/templates&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;5&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.25%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row30&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;29&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/config/auth&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;5&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.25%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row31&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;30&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;wiki/security&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;5&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.25%&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;table&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot; colspan=&quot;4&quot;&gt;Самые популярные источники ссылок 2026-08&lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;#&lt;/th&gt;&lt;th class=&quot;col1 centeralign&quot;&gt;Имя&lt;/th&gt;&lt;th class=&quot;col2 centeralign&quot; colspan=&quot;2&quot;&gt;Переходы&lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;1&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://git.wwoss.ru&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;124&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;34.73%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://git.wwoss.ru/doku.php&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;61&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;17.09%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;3&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://synoinstall-gqctx9n8ug2b3eq1.direct.quickconnect.to/&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;34&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;9.52%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;4&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://git.wwoss.ru/&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;29&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;8.12%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;5&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://synoinstall-gqctx9n8ug2b3eq1.direct.quickconnect.to/doku.php&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;23&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;6.44%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;6&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://wwoss.ru&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;18&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;5.04%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;7&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://synoinstall-ojtemk4b95icthwo.direct.quickconnect.to/doku.php&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;7&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;1.96%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;8&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;http://synoinstall-gqctx9n8ug2b3eq1.direct.quickconnect.to/doku.php&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;6&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;1.68%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;9&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://78.36.10.192/&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;5&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;1.40%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;10&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://www.wwoss.ru/&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;4&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;1.12%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;11&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://synoinstall-2pkhywzfvulqafp3.direct.quickconnect.to/&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;4&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;1.12%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row13&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;12&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://wwoss.direct.quickconnect.to/doku.php&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;3&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.84%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row14&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;13&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;http://synoinstall-gqctx9n8ug2b3eq1.direct.quickconnect.to/&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;3&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.84%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row15&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;14&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://wwoss.direct.quickconnect.to/feed.php&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;3&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.84%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row16&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;15&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://www.wwoss.ru&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;3&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.84%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row17&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;16&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://media.wwoss.ru/feed.php&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.56%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row18&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;17&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://WWOSS.RU&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.56%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row19&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;18&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://media.wwoss.ru/doku.php&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.56%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row20&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;19&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://www.wwoss.ru/doku.php&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.56%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row21&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;20&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://synoinstall-ojtemk4b95icthwo.direct.quickconnect.to/&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.56%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row22&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;21&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://www.wwoss.direct.quickconnect.to/&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.56%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row23&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;22&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://www.google.com/&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.56%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row24&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;23&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://78.36.10.192/doku.php&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.56%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row25&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://synoinstall-2pkhywzfvulqafp3.direct.quickconnect.to/doku.php&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.56%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row26&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;25&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://t.co/&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;1&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.28%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row27&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://media.wwoss.ru/&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;1&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.28%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row28&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;27&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://synoinstall-ojtemk4b95icthwo.direct.quickconnect.to/feed.php&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;1&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.28%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row29&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;28&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://wwoss.direct.quickconnect.to/&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;1&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.28%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row30&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;29&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;https://synoinstall-eh3i53luprfr8yep.direct.quickconnect.to/&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;1&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.28%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row31&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;30&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;http://synoinstall-2pkhywzfvulqafp3.direct.quickconnect.to/&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;1&lt;/td&gt;&lt;td class=&quot;col3 rightalign&quot;&gt;0.28%&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;div class=&quot;table&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot; colspan=&quot;3&quot;&gt;Месячная статистика для 2026-08&lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Всего переходов&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot; colspan=&quot;2&quot;&gt;75224&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Всего файлов&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot; colspan=&quot;2&quot;&gt;73218&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Всего страниц&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot; colspan=&quot;2&quot;&gt;2006&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Всего посетителей&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot; colspan=&quot;2&quot;&gt;461&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Всего байт&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot; colspan=&quot;2&quot;&gt;16.2 MB&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;&lt;/th&gt;&lt;th class=&quot;col1 centeralign&quot;&gt;ср.&lt;/th&gt;&lt;th class=&quot;col2 centeralign&quot;&gt;макс.&lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Переходов в час&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;3238.5833333333&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;7093&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Переходов в день&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;25908.666666667&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;62163&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Файлов в день&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;24406&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;59345&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Страниц в день&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;668.66666666667&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;1023&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Байт в день&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;5.6 GB&lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;10.2 GB&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot; colspan=&quot;3&quot;&gt;Переходов по статус-коду&lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row13&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Status 200 - OK&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot; colspan=&quot;2&quot;&gt;75224&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row14&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Status 404 - Не найдено&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot; colspan=&quot;2&quot;&gt;327&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row15&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Status 412 - Входное условие неверное&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot; colspan=&quot;2&quot;&gt;2175&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;


</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 06 Jul 2025 10:37:37 +0000</pubDate>
        </item>
        <item>
            <title>syntax.my</title>
            <link>https://wwoss.ru/doku.php?id=syntax.my&amp;rev=1770494515</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;синтаксис_форматирования&quot;&gt;Синтаксис форматирования&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
«Докувики» поддерживает простой язык разметки, который по возможности сохраняет файлы данных как можно более читабельными. Здесь перечислены все возможные синтаксические конструкции, которые можно использовать при редактировании статей. Просто посмотрите на исходный код этой статьи, нажав кнопку «Править страницу» в правой верхней части страницы в меню управления пользователя. Если хотите поупражняться, просто используйте «&lt;a href=&quot;https://wwoss.ru/doku.php?id=playground&quot; class=&quot;wikilink2&quot; title=&quot;playground&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;playground&quot;&gt;песочницу&lt;/a&gt;». Простую разметку также можно легко сделать с помощью &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:toolbar&quot; class=&quot;wikilink1&quot; title=&quot;wiki:toolbar&quot; data-wiki-id=&quot;wiki:toolbar&quot;&gt;панели инструментов&lt;/a&gt;.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=manual&quot; class=&quot;wikilink1&quot; title=&quot;manual&quot; data-wiki-id=&quot;manual&quot;&gt;Руководство пользователя «Докувики»&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

&lt;!-- LikeBtn.com BEGIN --&gt;
&lt;span class=&quot;likebtn-wrapper&quot; data-lang=&quot;ru&quot; data-i18n_like=&quot;Нравится&quot; data-ef_voting=&quot;push&quot; data-white_label=&quot;true&quot; data-share_enabled=&quot;false&quot; data-share_size=&quot;small&quot; data-tooltip_enabled=&quot;false&quot;&gt;&lt;/span&gt;
&lt;script&gt;(function(d,e,s){if(d.getElementById(&quot;likebtn_wjs&quot;))return;a=d.createElement(e);m=d.getElementsByTagName(e)[0];a.async=1;a.id=&quot;likebtn_wjs&quot;;a.src=s;m.parentNode.insertBefore(a, m)})(document,&quot;script&quot;,&quot;./demo/code/wid_js/widget.js&quot;);&lt;/script&gt;
&lt;!-- LikeBtn.com END --&gt;

&lt;em&gt;  Более простой вариант социальных сетей&lt;/em&gt;

&lt;!-- uSocial --&gt;
&lt;script async src=&quot;https://usocial.pro/usocial/usocial.js?uid=60a79de4b3f94535&amp;v=6.1.5&quot; data-script=&quot;usocial&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;div class=&quot;uSocial-Share&quot; data-pid=&quot;00f776d6cddfbf5cd018ffe07f376ec7&quot; data-type=&quot;share&quot; data-options=&quot;round,style1,default,absolute,horizontal,size24,counter0,mobile_position_right&quot; data-social=&quot;vk,mail,ok,telegram,email&quot;&gt;&lt;/div&gt;
&lt;!-- /uSocial --&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441_\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-2163&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;основные_конструкции_форматирования&quot;&gt;Основные конструкции форматирования&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
«Докувики» поддерживает выделение текста &lt;strong&gt;жирным шрифтом&lt;/strong&gt;, &lt;em&gt;курсивом&lt;/em&gt;, &lt;em class=&quot;u&quot;&gt;подчёркнутый текст&lt;/em&gt; и вывод текста &lt;code&gt;моноширинным шрифтом&lt;/code&gt;. Все эти конструкции можно &lt;strong&gt;&lt;em class=&quot;u&quot;&gt;&lt;em&gt;&lt;code&gt;объединить&lt;/code&gt;&lt;/em&gt;&lt;/em&gt;&lt;/strong&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;«Докувики» поддерживает выделение текста **жирным шрифтом**, //курсивом//, 
__подчёркнутый текст__ и вывод текста &amp;#039;&amp;#039;моноширинным шрифтом&amp;#039;&amp;#039;. 
Все эти конструкции можно **__//&amp;#039;&amp;#039;объединить&amp;#039;&amp;#039;//__**. &lt;/pre&gt;

&lt;p&gt;
Также можно использовать &lt;sub&gt;подстрочный&lt;/sub&gt; и &lt;sup&gt;надстрочный&lt;/sup&gt; индексы.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Также можно использовать &amp;lt;sub&amp;gt;подстрочный&amp;lt;/sub&amp;gt; и &amp;lt;sup&amp;gt;надстрочный&amp;lt;/sup&amp;gt; индексы.&lt;/pre&gt;

&lt;p&gt;
Ещё можно &lt;del&gt;зачеркнуть текст&lt;/del&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Ещё можно &amp;lt;del&amp;gt;зачеркнуть текст&amp;lt;/del&amp;gt;.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435_\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438_\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;2164-3355&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;выделение_цветом_маркер&quot;&gt;Выделение цветом (маркер)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;Текст можно выделять цветом.
&amp;lt;wrap hi&amp;gt;выделить (маркер)&amp;lt;/wrap&amp;gt;
&amp;lt;wrap lo&amp;gt;Пометить не важным&amp;lt;/wrap&amp;gt; или же наоборот &amp;lt;wrap em&amp;gt;паметить важным&amp;lt;/wrap&amp;gt;&lt;/pre&gt;

&lt;p&gt;
Текст можно выделять цветом.
&lt;span class=&quot;wrap_hi &quot;&gt;выделить (маркер)&lt;/span&gt;
&lt;span class=&quot;wrap_lo &quot;&gt;Пометить не важным&lt;/span&gt; или же наоборот &lt;span class=&quot;wrap_em &quot;&gt;паметить важным&lt;/span&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;img src=&quot;https://wwoss.ru/lib/images/smileys/exclaim.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:!:&quot; /&gt; Цветной текст при установленном плагине &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:plugin:color&quot; class=&quot;wikilink1&quot; title=&quot;wiki:plugin:color&quot; data-wiki-id=&quot;wiki:plugin:color&quot;&gt;Color&lt;/a&gt; или &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:plugin:typography&quot; class=&quot;wikilink1&quot; title=&quot;wiki:plugin:typography&quot; data-wiki-id=&quot;wiki:plugin:typography&quot;&gt;Typography&lt;/a&gt;
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=syntax.my&amp;amp;codeblock=4&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;plugin Color&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;color green&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;text&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;color&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;color blue&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lightgrey&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;text&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;color&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;color &lt;span class=&quot;co2&quot;&gt;#FF0000&amp;gt;text&amp;lt;/color&amp;gt;
&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;color &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;#FFff00&amp;gt;text&amp;lt;/color&amp;gt;
&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;color rgb&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;80&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;rgb&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;80&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;text&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;color&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;color hsl&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;120&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;hsl&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;180&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;90&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;text&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;color&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=syntax.my&amp;amp;codeblock=5&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;plugin Typography&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;fc &lt;span class=&quot;co2&quot;&gt;#800000&amp;gt;Maroon&amp;lt;/fc&amp;gt;
&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;fc red&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Aquamarine&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;fc&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;fc green&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;text&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;fc&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;fc &lt;span class=&quot;co2&quot;&gt;#ffff00&amp;gt;Yellow&amp;lt;/fc&amp;gt;
&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;fc &lt;span class=&quot;co2&quot;&gt;#800000&amp;gt;Maroon&amp;lt;/fc&amp;gt;
&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;fc &lt;span class=&quot;co2&quot;&gt;#9400d3&amp;gt;Dark Violet&amp;lt;/fc&amp;gt;
&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;fc rgb&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;80&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;text&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;fc&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;fc hsl&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;120&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;text&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;fc&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
и вы увидите что-то вроде этого:
&lt;/p&gt;

&lt;p&gt;
&lt;span style=&quot;color:#800000;&quot;&gt;Maroon&lt;/span&gt;
&lt;span style=&quot;color:red;&quot;&gt;Aquamarine&lt;/span&gt;
&lt;span style=&quot;color:green;&quot;&gt;text&lt;/span&gt;
&lt;span style=&quot;color:#ffff00;&quot;&gt;Yellow&lt;/span&gt;
&lt;span style=&quot;color:#800000;&quot;&gt;Maroon&lt;/span&gt;
&lt;span style=&quot;color:#9400d3;&quot;&gt;Dark Violet&lt;/span&gt;
&lt;span style=&quot;color:rgb(80%,0%,0%);&quot;&gt;text&lt;/span&gt;
&lt;span style=&quot;color:hsl(120,100%,30%);&quot;&gt;text&lt;/span&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Абзацы&lt;/strong&gt; отбиваются пустой строкой. Если нужно &lt;strong&gt;принудительно вставить перенос строки&lt;/strong&gt;, не создавая абзац, вставьте два обратных слэша и за ним пробел или переход к новой строке.
&lt;/p&gt;

&lt;p&gt;
Просто текст с разрывом строк&lt;br/&gt;
Обратите внимание, 
что два обратных слэша действуют только в конце строки&lt;br/&gt;

или если за ними стоит&lt;br/&gt;
пробел. Если его не поставить, \\получится вот так.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Просто текст с разрывом строк\\ Обратите внимание,
что два обратных слэша действуют только в конце строки\\
или если за ними стоит\\ пробел. Если его не поставить, \\получится вот так.&lt;/pre&gt;

&lt;p&gt;
Принудительные переносы следует использовать только в случае крайней необходимости.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteyellow&quot;&gt;&lt;span style=&quot;font-size:xx-large;&quot;&gt;&lt;span style=&quot;font-family:fantasy;&quot;&gt;Это огромный текст&lt;/span&gt;&lt;/span&gt;
&lt;/div&gt;&lt;div class=&quot;plugin_note notegreen&quot;&gt;&lt;span style=&quot;font-family:ds yermak_d;&quot;&gt;&lt;span style=&quot;font-size:x-large;&quot;&gt;зеленая заметка&lt;/span&gt;&lt;/span&gt;
&lt;/div&gt;&lt;div class=&quot;plugin_note noteblue&quot;&gt;&lt;span class=&quot;wrap_left &quot;&gt;◀ &lt;a href=&quot;https://wwoss.ru/doku.php?id=playground:playground&quot; class=&quot;wikilink2&quot; title=&quot;playground:playground&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;playground:playground&quot;&gt;playground&lt;/a&gt;&lt;/span&gt;
&lt;span class=&quot;wrap_right &quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=playground:playground&quot; class=&quot;wikilink2&quot; title=&quot;playground:playground&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;playground:playground&quot;&gt;playground&lt;/a&gt; ▶&lt;/span&gt;

&lt;/div&gt;&lt;div class=&quot;plugin_note noteblue&quot;&gt;&lt;span class=&quot;wrap_left &quot;&gt;← &lt;a href=&quot;https://wwoss.ru/doku.php?id=playground:playground&quot; class=&quot;wikilink2&quot; title=&quot;playground:playground&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;playground:playground&quot;&gt;playground&lt;/a&gt;&lt;/span&gt;
&lt;span class=&quot;wrap_right &quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=playground:playground&quot; class=&quot;wikilink2&quot; title=&quot;playground:playground&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;playground:playground&quot;&gt;playground&lt;/a&gt; →&lt;/span&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u043e\u043c (\u043c\u0430\u0440\u043a\u0435\u0440)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435_\u0446\u0432\u0435\u0442\u043e\u043c_\u043c\u0430\u0440\u043a\u0435\u0440&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;3356-6425&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;ссылки&quot;&gt;Ссылки&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0441\u044b\u043b\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0441\u044b\u043b\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;6426-6452&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;внешние&quot;&gt;Внешние&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=vneshnie_ssilki_1.png&quot; class=&quot;media&quot; title=&quot;vneshnie_ssilki_1.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=vneshnie_ssilki_1.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br/&gt;

&lt;img src=&quot;https://wwoss.ru/lib/images/smileys/exclaim.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:!:&quot; /&gt; Смотрите значение параметра &lt;strong&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:config:mailguard&quot; class=&quot;wikilink1&quot; title=&quot;wiki:config:mailguard&quot; data-wiki-id=&quot;wiki:config:mailguard&quot;&gt;mailguard&lt;/a&gt;&lt;/strong&gt;, если адреса почты отображаются как &lt;strong&gt;andi [at] Splitbrain [dot] org&lt;/strong&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Внешние ссылки распознаются автоматически: http://www.google.com или
просто www.google.com --- также можно указывать текст ссылки:
[[http://www.google.com|Это ссылка на Google]]. Адреса электронной почты
тоже распознаются: &amp;lt;andi@splitbrain.org&amp;gt;.&lt;/pre&gt;

&lt;p&gt;
В данном экземпляре wiki внешние ссылки распознаются автоматически, но дефолтные &lt;a href=&quot;https://wwoss.ru/doku.php?id=syntax.my#отключить_иконки_ссылок&quot; class=&quot;wikilink1&quot; title=&quot;syntax.my&quot; data-wiki-id=&quot;syntax.my&quot;&gt;иконки ссылок отключены&lt;/a&gt;: &lt;a href=&quot;http://www.google.com&quot; class=&quot;urlextern&quot; title=&quot;http://www.google.com&quot; rel=&quot;ugc nofollow&quot;&gt;http://www.google.com&lt;/a&gt; или
просто &lt;a href=&quot;http://www.google.com&quot; class=&quot;urlextern&quot; title=&quot;http://www.google.com&quot; rel=&quot;ugc nofollow&quot;&gt;www.google.com&lt;/a&gt; — также можно указывать текст ссылки:
&lt;a href=&quot;http://www.google.com&quot; class=&quot;urlextern&quot; title=&quot;http://www.google.com&quot; rel=&quot;ugc nofollow&quot;&gt;Это ссылка на Google&lt;/a&gt;. Адреса электронной почты
тоже распознаются: &lt;a href=&quot;mailto:&amp;#112;&amp;#111;&amp;#108;&amp;#115;&amp;#107;&amp;#105;&amp;#121;&amp;#118;&amp;#110;&amp;#64;&amp;#103;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot; class=&quot;mail&quot; title=&quot;&amp;#112;&amp;#111;&amp;#108;&amp;#115;&amp;#107;&amp;#105;&amp;#121;&amp;#118;&amp;#110;&amp;#64;&amp;#103;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot;&gt;&amp;#112;&amp;#111;&amp;#108;&amp;#115;&amp;#107;&amp;#105;&amp;#121;&amp;#118;&amp;#110;&amp;#64;&amp;#103;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&lt;/a&gt;. При необходимости используются &lt;a href=&quot;https://wwoss.ru/doku.php?id=syntax.my#интервики&quot; class=&quot;wikilink1&quot; title=&quot;syntax.my&quot; data-wiki-id=&quot;syntax.my&quot;&gt;иконки ссылок Интервики&lt;/a&gt; следующего вида &lt;a href=&quot;https://wiki.ubuntu.com/ubuntu&quot; class=&quot;interwiki iw_ubuntu&quot; title=&quot;https://wiki.ubuntu.com/ubuntu&quot;&gt;ubuntu&lt;/a&gt;, &lt;a href=&quot;https://www.hq.vevo.com&quot; class=&quot;interwiki iw_world&quot; title=&quot;https://www.hq.vevo.com&quot;&gt;www.hq.vevo.com&lt;/a&gt;  или &lt;a href=&quot;https://www.hq.vevo.com&quot; class=&quot;interwiki iw_world&quot; title=&quot;https://www.hq.vevo.com&quot;&gt; это ссылка на vevo&lt;/a&gt; и &lt;a href=&quot;https://www.google.com/search?q=google&quot; class=&quot;interwiki iw_google&quot; title=&quot;https://www.google.com/search?q=google&quot;&gt;google&lt;/a&gt;, так же применяются иконкт ссылок в виде смайлов &lt;img src=&quot;https://wwoss.ru/lib/images/smileys/address-book-open.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;:&quot; /&gt;&lt;a href=&quot;https://ru.wikipedia.org/wiki/&quot; class=&quot;urlextern&quot; title=&quot;https://ru.wikipedia.org/wiki/&quot; rel=&quot;ugc nofollow&quot;&gt;См. подробнее wiki&lt;/a&gt; и &lt;a href=&quot;https://mail.rambler.ru/&quot; class=&quot;urlextern&quot; title=&quot;https://mail.rambler.ru/&quot; rel=&quot;ugc nofollow&quot;&gt;Внешняя ссылка&lt;/a&gt;&lt;img src=&quot;https://wwoss.ru/lib/images/smileys/navigation-000-button-white.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;14:&quot; /&gt; или &lt;a href=&quot;mailto:polskiyvn@gmail.com&quot; class=&quot;interwiki iw_mailto&quot; title=&quot;mailto:polskiyvn@gmail.com&quot;&gt;polskiyvn@gmail.com&lt;/a&gt; ну и на конец &lt;a href=&quot;https://github.com/&quot; class=&quot;interwiki iw_github&quot; title=&quot;https://github.com/&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/splitbrain/dokuwiki-stickbuilder&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/splitbrain/dokuwiki-stickbuilder&quot; rel=&quot;ugc nofollow&quot;&gt;Dokuwiki + Apache на GitHub&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u043d\u0435\u0448\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u043d\u0435\u0448\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;6453-8315&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;внутренние&quot;&gt;Внутренние&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Внутренние ссылки создаются посредством квадратных скобок.
Можно либо просто указать &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:pagename&quot; class=&quot;wikilink1&quot; title=&quot;wiki:pagename&quot; data-wiki-id=&quot;wiki:pagename&quot;&gt;имя страницы&lt;/a&gt;, либо
дополнительно прописать &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:pagename&quot; class=&quot;wikilink1&quot; title=&quot;wiki:pagename&quot; data-wiki-id=&quot;wiki:pagename&quot;&gt;текст ссылки&lt;/a&gt;. Имена
вики-статей автоматически  переводятся в нижний регистр,
спецсимволы использовать нельзя.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Внутренние ссылки создаются посредством квадратных скобок.
Можно либо просто указать [[wiki:pagename]], либо
дополнительно прописать [[wiki:pagename|текст ссылки]]. Имена
вики-статей автоматически  переводятся в нижний регистр,
спецсимволы использовать нельзя.&lt;/pre&gt;

&lt;p&gt;
Можно использовать в ссылке &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:namespaces&quot; class=&quot;wikilink1&quot; title=&quot;wiki:namespaces&quot; data-wiki-id=&quot;wiki:namespaces&quot;&gt;пространства имён&lt;/a&gt; через двоеточие.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Можно использовать в ссылке [[:namespaces|пространства имён]] через двоеточие.&lt;/pre&gt;

&lt;p&gt;
Ставить ссылки на определённый раздел тоже можно. Просто добавьте через решётку (#) имя раздела, так же, как это делается в &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;. Ссылка на &lt;a href=&quot;#внутренние&quot; title=&quot;syntax.my ↵&quot; class=&quot;wikilink1&quot;&gt;этот раздел&lt;/a&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Ссылка на [[#внутренние|этот раздел]].&lt;/pre&gt;

&lt;p&gt;
Примечания:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ссылки на &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:syntax&quot; class=&quot;wikilink1&quot; title=&quot;wiki:syntax&quot; data-wiki-id=&quot;wiki:syntax&quot;&gt;существующие статьи&lt;/a&gt; отображаются иначе, чем ссылки на &lt;a href=&quot;https://wwoss.ru/doku.php?id=nonexisting&quot; class=&quot;wikilink2&quot; title=&quot;nonexisting&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;nonexisting&quot;&gt;несуществующие&lt;/a&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; «Докувики» по умолчанию не использует &lt;a href=&quot;https://en.wikipedia.org/wiki/wiki:CamelCase&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/wiki:CamelCase&quot;&gt;CamelCase&lt;/a&gt; (ВерблюжийРегистр) для автоматического создания ссылок, но эту возможность можно включить в файле &lt;code&gt;conf/dokuwiki.php&lt;/code&gt;, см. подробнее &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:config:config&quot; class=&quot;wikilink1&quot; title=&quot;wiki:config:config&quot; data-wiki-id=&quot;wiki:config:config&quot;&gt;config&lt;/a&gt;. Проверка: если Wiki — ссылка, значит эта возможность включена.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Если меняется название раздела, ссылки на него не меняются автоматически. Так что не очень полагайтесь на ссылки на разделы.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ссылки на разделы делаются именно на &lt;a href=&quot;#разбивка_на_разделы&quot; title=&quot;syntax.my ↵&quot; class=&quot;wikilink1&quot;&gt;разделы&lt;/a&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;8316-10999&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;интервики&quot;&gt;Интервики&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
«Докувики» поддерживает &lt;a href=&quot;https://www.dokuwiki.org/doku&quot; class=&quot;interwiki iw_doku&quot; title=&quot;https://www.dokuwiki.org/doku&quot;&gt;doku&lt;/a&gt;-ссылки. Это короткие ссылки
на другие вики. Например, вот ссылка на статью Википедии о вики: &lt;a href=&quot;https://en.wikipedia.org/wiki/Wiki&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/Wiki&quot;&gt;Wiki&lt;/a&gt;, а это на &lt;a href=&quot;https://wiki.ubuntu.com/ubuntu&quot; class=&quot;interwiki iw_ubuntu&quot; title=&quot;https://wiki.ubuntu.com/ubuntu&quot;&gt;ubuntu&lt;/a&gt; или на &lt;a href=&quot;https://www.google.com/search?q=%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8C%20%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%83%20google&quot; class=&quot;interwiki iw_google&quot; title=&quot;https://www.google.com/search?q=%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8C%20%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%83%20google&quot;&gt;открыть страницу google&lt;/a&gt; или пустая на страницу интернета &lt;a href=&quot;https://world&quot; class=&quot;interwiki iw_world&quot; title=&quot;https://world&quot;&gt;world&lt;/a&gt;&lt;br/&gt;

&lt;a href=&quot;tel:899256985&quot; class=&quot;interwiki iw_tel&quot; title=&quot;tel:899256985&quot;&gt;899256985&lt;/a&gt;&lt;br/&gt;

&lt;a href=&quot;mailto:polskiyvn@gmail.com&quot; class=&quot;interwiki iw_mailto&quot; title=&quot;mailto:polskiyvn@gmail.com&quot;&gt;polskiyvn@gmail.com&lt;/a&gt;&lt;br/&gt;

&lt;a href=&quot;address:Poliarniy&quot; class=&quot;interwiki iw_address&quot; title=&quot;address:Poliarniy&quot;&gt;Poliarniy&lt;/a&gt;&lt;br/&gt;

&lt;a href=&quot;doku.php?id=wiki:xref:dokuwiki:doku.php&quot; class=&quot;interwiki iw_xref&quot; title=&quot;doku.php?id=wiki:xref:dokuwiki:doku.php&quot;&gt;doku.php&lt;/a&gt;&lt;br/&gt;

&lt;a href=&quot;https://github.com/github&quot; class=&quot;interwiki iw_github&quot; title=&quot;https://github.com/github&quot;&gt;github&lt;/a&gt;&lt;br/&gt;

&lt;a href=&quot;https://gitlab.com/gitlab&quot; class=&quot;interwiki iw_gitlab&quot; title=&quot;https://gitlab.com/gitlab&quot;&gt;gitlab&lt;/a&gt;&lt;br/&gt;

&lt;a href=&quot;http://www.yandex.ru/yandsearch?text=yandex.ru&quot; class=&quot;interwiki iw_ya&quot; title=&quot;http://www.yandex.ru/yandsearch?text=yandex.ru&quot;&gt;yandex.ru&lt;/a&gt;&lt;br/&gt;

&lt;a href=&quot;http://www.google.ru/search?q=google.ru&quot; class=&quot;interwiki iw_google_ru&quot; title=&quot;http://www.google.ru/search?q=google.ru&quot;&gt;google.ru&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;«Докувики» поддерживает [[doku&amp;gt;doku]]-ссылки. Это короткие ссылки
на другие вики. Например, вот ссылка на статью Википедии о вики: [[wp&amp;gt;Wiki]], а это на [[ubuntu&amp;gt;ubuntu]] или на [[google&amp;gt;открыть страницу google]] или пустая на страницу интернета [[world&amp;gt;world]]&lt;/pre&gt;

&lt;p&gt;
Изменить или назначить свои можно:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Добавив иконку png или svg в папку lib/images/interwiki&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Добавив запись в conf/interwiki.conf&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; пересохранив файл conf/local.php для очистки кеша&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u043d\u0442\u0435\u0440\u0432\u0438\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u043d\u0442\u0435\u0440\u0432\u0438\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:11,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;11000-12355&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;сетевые_ресурсы_windows&quot;&gt;Сетевые ресурсы Windows&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Ссылки на сетевые ресурсы вида &lt;a href=&quot;file://///server/share&quot; class=&quot;windows&quot; title=&quot;\\server\share&quot;&gt;\\server\share&lt;/a&gt; тоже распознаются. Однако учтите, что такие ссылки имеют смысл только в гомогенных группах пользователей, например в корпоративном интранете.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Ссылки на сетевые ресурсы вида \\server\share тоже распознаются.&lt;/pre&gt;

&lt;p&gt;
Примечания:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Из соображений безопасности непосредственный просмотр сетевых ресурсов работает по умолчанию только в Internet Explorer (и только в «локальной зоне»).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В браузерах Mozilla эту возможность можно включить с помощью опции &lt;a href=&quot;http://www.mozilla.org/quality/networking/docs/netprefs.html#file&quot; class=&quot;urlextern&quot; title=&quot;http://www.mozilla.org/quality/networking/docs/netprefs.html#file&quot; rel=&quot;ugc nofollow&quot;&gt;security.checkloaduri&lt;/a&gt;, но делать это не рекомендуется.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Подробней читайте здесь: &lt;a href=&quot;doku.php?id=wiki:bug:dokuwiki:151&quot; class=&quot;interwiki iw_bug&quot; title=&quot;doku.php?id=wiki:bug:dokuwiki:151&quot;&gt;151&lt;/a&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0435\u0442\u0435\u0432\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b Windows&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0435\u0442\u0435\u0432\u044b\u0435_\u0440\u0435\u0441\u0443\u0440\u0441\u044b_windows&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;12356-13487&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;картинки-ссылки&quot;&gt;Картинки-ссылки&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Совместив синтаксис ссылки и &lt;a href=&quot;#картинки_и_другие_файлы&quot; title=&quot;syntax.my ↵&quot; class=&quot;wikilink1&quot;&gt;картинки&lt;/a&gt;, можно вставить в текст картинку, которая будет внутренней или внешней ссылкой:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[[http://www.php.net/|{{wiki:dokuwiki-128.png}}]]&lt;/pre&gt;
&lt;div class=&#039;plugin_tablelayout_placeholder&#039; data-tablelayout=&quot;{&amp;quot;rowsHeaderSource&amp;quot;:&amp;quot;auto&amp;quot;}&quot;&gt;&lt;/div&gt;&lt;div class=&quot;table sectionedit10&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot;&gt;   &lt;/th&gt;&lt;th class=&quot;col1 leftalign&quot;&gt;   &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;&lt;pre class=&quot;code&quot;&gt;[[http://www.php.net/|{{wiki:dokuwiki-128.png}}]]&lt;/pre&gt;
&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;&lt;a href=&quot;http://www.php.net/&quot; class=&quot;media&quot; title=&quot;http://www.php.net/&quot; rel=&quot;ugc nofollow&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=50&amp;amp;tok=02f637&amp;amp;media=wiki:dokuwiki-128.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;50&quot; /&gt;&lt;/a&gt;   &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;13900-14033&amp;quot;} --&gt;
&lt;p&gt;
Учтите: форматирование картинок — это единственная синтаксическая конструкция, которую можно использовать в тексте ссылки.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0438-\u0441\u0441\u044b\u043b\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438-\u0441\u0441\u044b\u043b\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:13,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;13488-14263&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;отключить_иконки_ссылок&quot;&gt;Отключить иконки ссылок&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Отключить значки у ссылок можно в файле _links.css или design.css в каталоге используемого вами шаблона lib\tpl\имя_шаблона\css. 
Для отключения отображения значков внешних ссылок достаточно закомментировать всю секцию external link 
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;/* external link */&lt;/span&gt;
div&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;dokuwiki a&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;urlextern &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  background&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; transparent url&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;images&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;link_icon&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;gif&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; 0px 1px no&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;repeat&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  padding&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 1px 0px 1px 16px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u043a\u043e\u043d\u043a\u0438 \u0441\u0441\u044b\u043b\u043e\u043a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c_\u0438\u043a\u043e\u043d\u043a\u0438_\u0441\u0441\u044b\u043b\u043e\u043a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:15,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;14264-14877&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;теги&quot;&gt;Теги&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
При установленом плагине Tag
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{{tag&amp;gt;Вставить тег-синтаксис}}&lt;/pre&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://wwoss.ru/doku.php?id=tag:%D0%B2%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C&amp;amp;do=showtag&amp;amp;tag=%D0%92%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C&quot; class=&quot;wikilink1&quot; title=&quot;tag:вставить&quot; rel=&quot;tag&quot;&gt;Вставить&lt;/a&gt;,
	&lt;a href=&quot;https://wwoss.ru/doku.php?id=tag:%D1%82%D0%B5%D0%B3-%D1%81%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%81&amp;amp;do=showtag&amp;amp;tag=%D1%82%D0%B5%D0%B3-%D1%81%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%81&quot; class=&quot;wikilink1&quot; title=&quot;tag:тег-синтаксис&quot; rel=&quot;tag&quot;&gt;тег-синтаксис&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0422\u0435\u0433\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0442\u0435\u0433\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:16,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;14878-15064&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;сноски&quot;&gt;Сноски&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
С помощью двойных скобок можно добавить сноску&lt;sup&gt;&lt;a href=&quot;#fn__1&quot; id=&quot;fnt__1&quot; class=&quot;fn_top&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;С помощью двойных скобок можно добавить сноску((Сноска —
помещаемые внизу страницы примечание, ссылка, перевод.)).&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043d\u043e\u0441\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043d\u043e\u0441\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:17,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;15065-15521&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit14&quot; id=&quot;разбивка_на_разделы&quot;&gt;Разбивка на разделы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Для структурирования текста можно использовать до пяти уровней заголовков. Если в тексте больше трёх заголовков, автоматически создаётся список содержимого. Его можно отключить, вставив в документ строку ~~NOTOC~~.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0430\u0437\u0431\u0438\u0432\u043a\u0430 \u043d\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0430_\u043d\u0430_\u0440\u0430\u0437\u0434\u0435\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:18,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;15522-15966&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit15&quot; id=&quot;заголовок_3_уровня&quot;&gt;Заголовок 3 уровня&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;заголовок_4_уровня&quot;&gt;Заголовок 4 уровня&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h5 id=&quot;заголовок_5_уровня&quot;&gt;Заголовок 5 уровня&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;==== Заголовок 3 уровня ====
=== Заголовок 4 уровня ===
== Заголовок 5 уровня ==&lt;/pre&gt;

&lt;p&gt;
Четыре и более тире преобразуются в горизонтальную черту:
&lt;/p&gt;
&lt;hr /&gt;
&lt;pre class=&quot;code&quot;&gt;----&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 3 \u0443\u0440\u043e\u0432\u043d\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a_3_\u0443\u0440\u043e\u0432\u043d\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:18,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;15967-16369&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit16&quot; id=&quot;картинки_и_другие_файлы&quot;&gt;Картинки и другие файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
См. также: «&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:images&quot; class=&quot;wikilink1&quot; title=&quot;wiki:images&quot; data-wiki-id=&quot;wiki:images&quot;&gt;Работа с изображениями и медиафайлами&lt;/a&gt;».
&lt;/p&gt;

&lt;p&gt;
С помощью фигурных скобок можно вставлять в текст внешние и внутренние &lt;a href=&quot;https://wwoss.ru/doku.php?id=ru:images&quot; class=&quot;wikilink2&quot; title=&quot;ru:images&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;ru:images&quot;&gt;картинки&lt;/a&gt;. По желанию можно указать их размер.
&lt;/p&gt;
&lt;div class=&quot;table sectionedit17&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot; bgcolor=lightgreen&gt;&lt;strong&gt;Нормальный размер:&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=blender3d_demo.png&quot; class=&quot;media&quot; title=&quot;blender3d_demo.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=150&amp;amp;tok=080414&amp;amp;media=blender3d_demo.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot; bgcolor=#6495ed&gt;&lt;strong&gt;Отмасштабированная до заданной ширины:&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=blender3d_demo.png&quot; class=&quot;media&quot; title=&quot;blender3d_demo.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=100&amp;amp;tok=d1594c&amp;amp;media=blender3d_demo.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot; bgcolor=#fafad2&gt;&lt;strong&gt;Отмасштабированная до заданных размеров:&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;  &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=blender3d_demo.png&quot; class=&quot;media&quot; title=&quot;blender3d_demo.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=250&amp;amp;h=40&amp;amp;tok=9a06ca&amp;amp;media=blender3d_demo.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;250&quot; height=&quot;40&quot; /&gt;&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot; bgcolor=#ffa07a&gt;&lt;strong&gt;задать название&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=blender3d_demo.png&quot; class=&quot;media&quot; title=&quot;blender3d_demo.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=150&amp;amp;tok=080414&amp;amp;media=blender3d_demo.png&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; title=&quot;Логотип «Blender»&quot; alt=&quot;Логотип «Blender»&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot; bgcolor=#add8e6&gt; &lt;strong&gt;— картинка слева&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=blender3d_demo.png&quot; class=&quot;media&quot; title=&quot;blender3d_demo.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=100&amp;amp;tok=d1594c&amp;amp;media=blender3d_demo.png&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot; bgcolor=orange&gt;  &lt;strong&gt;— справа&lt;/strong&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=blender3d_demo.png&quot; class=&quot;media&quot; title=&quot;blender3d_demo.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=100&amp;amp;tok=d1594c&amp;amp;media=blender3d_demo.png&quot; class=&quot;mediaright&quot; align=&quot;right&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot; bgcolor=lightgreen&gt;&lt;strong&gt; — посередине&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=blender3d_demo.png&quot; class=&quot;media&quot; title=&quot;blender3d_demo.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=100&amp;amp;tok=d1594c&amp;amp;media=blender3d_demo.png&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;16768-17424&amp;quot;} --&gt;
&lt;p&gt;
Если задать имя файла (внутреннее или внешнее), который не является картинкой (&lt;code&gt;gif, jpeg, png&lt;/code&gt;), оно будет отображаться в виде ссылки.
&lt;/p&gt;

&lt;p&gt;
Узнать, как вставить картинку со ссылкой можно в &lt;a href=&quot;#картинки-ссылки&quot; title=&quot;syntax.my ↵&quot; class=&quot;wikilink1&quot;&gt;разделе выше&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438_\u0438_\u0434\u0440\u0443\u0433\u0438\u0435_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:20,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;16370-17811&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit18&quot; id=&quot;списки&quot;&gt;Списки&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
«Докувики» поддерживает нумерованные и маркированные списки. Чтобы создать элемент списка, поставьте в начале строки два пробела и потом звёздочку (*) в случае маркированного списка, или дефис (-) — в случае нумерованного.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Первый элемент маркированного списка&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Второй элемент списка&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; Можно сделать вложенный список&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ещё один элемент&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Тот же список, только нумерованный&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ещё элемент&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; Чем больше пробелов в начале, тем глубже вложенность&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Всё просто&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;code&quot;&gt;  * Первый элемент маркированного списка
    * Второй элемент списка
      * Можно сделать вложенный список
    * Ещё один элемент

  - Тот же список, только нумерованный
    - Ещё элемент
      - Чем больше пробелов в начале, тем глубже вложенность
    - Всё просто&lt;/pre&gt;

&lt;p&gt;
См. также &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:faq:lists&quot; class=&quot;wikilink2&quot; title=&quot;wiki:faq:lists&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:faq:lists&quot;&gt;FAQ по элементам списка&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043f\u0438\u0441\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043f\u0438\u0441\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:20,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;17812-19245&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit19&quot; id=&quot;цитирование&quot;&gt;Цитирование&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Иногда нужно пометить некоторый текст в качестве ответа или комментария. Для этого можно использовать следующий синтаксис:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Я думаю, мы должны это сделать.
&amp;gt; Нет, мы не должны.
&amp;gt;&amp;gt; Ну, я говорю, что мы должны.
&amp;gt; Действительно?
&amp;gt;&amp;gt; Да!
&amp;gt;&amp;gt;&amp;gt; Тогда сделаем это!&lt;/pre&gt;

&lt;p&gt;
Я думаю, мы должны это сделать.
&lt;/p&gt;
&lt;blockquote&gt;&lt;div class=&quot;no&quot;&gt;
 Нет, мы не должны.&lt;blockquote&gt;&lt;div class=&quot;no&quot;&gt;
 Ну, я говорю, что мы должны.&lt;/div&gt;&lt;/blockquote&gt;

&lt;p&gt;
 Действительно?
&lt;/p&gt;
&lt;blockquote&gt;&lt;div class=&quot;no&quot;&gt;
 Да!&lt;blockquote&gt;&lt;div class=&quot;no&quot;&gt;
 Тогда сделаем это!&lt;/div&gt;&lt;/blockquote&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;/div&gt;&lt;/blockquote&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0426\u0438\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0446\u0438\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:21,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;19246-19961&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit20&quot; id=&quot;смайлики&quot;&gt;Смайлики&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
«Докувики» переделывает наиболее употребляемые смайлики в их графические эквиваленты. Дополнительные смайлики можно положить в директорию &lt;code&gt;smiley&lt;/code&gt; и добавить их в файл &lt;code&gt;conf/smileys.local.conf&lt;/code&gt;. Вот смайлики, которые есть в «Докувики»:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;img src=&quot;https://wwoss.ru/lib/images/smileys/question.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:?:&quot; /&gt; :?:&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;img src=&quot;https://wwoss.ru/lib/images/smileys/exclaim.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:!:&quot; /&gt; :!:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Можно расширить возможности данного расширения, своими смайликами или часто добавляемыми вставками, добавив в файл &lt;code&gt;conf/smileys.local.conf&lt;/code&gt; картинки &lt;code&gt;png&lt;/code&gt;:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;img src=&quot;https://wwoss.ru/lib/images/smileys/ctrl_o_enter_ctrl_x.png&quot; class=&quot;icon smiley&quot; alt=&quot;:ctrl_o_enter_ctrl_x.png:&quot; /&gt; это сочетание клавиш для вставки&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;img src=&quot;https://wwoss.ru/lib/images/smileys/sm.png&quot; class=&quot;icon smiley&quot; alt=&quot;8-)&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/images/smileys/hourglass-select.png&quot; class=&quot;icon smiley&quot; alt=&quot;{{:icons:16:hourglass-select.png?|Устаревший}}&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/images/smileys/light-bulb-off.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;11:&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/images/smileys/pin.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;15:&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/images/smileys/tick.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;16:&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/images/smileys/balloon.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;7:&quot; /&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;img src=&quot;https://wwoss.ru/lib/images/smileys/address-book-open.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;:&quot; /&gt; это говорит о важности прочтения&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=botoomst_3.png&quot; class=&quot;media&quot; title=&quot;botoomst_3.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=botoomst_3.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;img src=&quot;https://wwoss.ru/lib/images/smileys/ctrl+o.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;ctrl+o:&quot; /&gt; / &lt;img src=&quot;https://wwoss.ru/lib/images/smileys/ok.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;ok:&quot; /&gt;
&lt;img src=&quot;https://wwoss.ru/lib/images/smileys/sbros.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;sbros:&quot; /&gt; = &lt;img src=&quot;https://wwoss.ru/lib/images/smileys/dalee.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;dalee:&quot; /&gt; и &lt;img src=&quot;https://wwoss.ru/lib/images/smileys/nazad.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;nazad:&quot; /&gt;
&lt;img src=&quot;https://wwoss.ru/lib/images/smileys/gal.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;gal:&quot; /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043c\u0430\u0439\u043b\u0438\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043c\u0430\u0439\u043b\u0438\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:21,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;19962-21031&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit21&quot; id=&quot;иконки&quot;&gt;Иконки&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=syntax.my&amp;amp;codeblock=21&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;icons code&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code html4strict&quot;&gt;{{:icons:16:hourglass-select.png?|Устаревший. Не для использования на новых web-сайтах.}} - Устаревший. Не для использования на новых web-сайтах.
{{:icons:16:flask.png?|Экспериментальный. Возможно изменение в будущем.}} - Экспериментальный. Возможно изменение в будущем.
{{:icons:16:jar.png?|Нестандартный. Проверьте поддержку браузером.}} - Нестандартный. Проверьте поддержку браузером.&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; title=&quot;icons:16:hourglass-select.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:hourglass-select.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; alt=&quot;Устаревший. Не для использования на новых web-сайтах.&quot; /&gt;&lt;/a&gt; - Устаревший. Не для использования на новых web-сайтах. &lt;br/&gt;

&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:flask.png&quot; class=&quot;media&quot; title=&quot;icons:16:flask.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:flask.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Экспериментальный. Возможно изменение в будущем.&quot; alt=&quot;Экспериментальный. Возможно изменение в будущем.&quot; /&gt;&lt;/a&gt; - Экспериментальный. Возможно изменение в будущем. &lt;br/&gt;

&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:jar.png&quot; class=&quot;media&quot; title=&quot;icons:16:jar.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:jar.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Нестандартный. Проверьте поддержку браузером.&quot; alt=&quot;Нестандартный. Проверьте поддержку браузером.&quot; /&gt;&lt;/a&gt; - Нестандартный. Проверьте поддержку браузером. &lt;br/&gt;

&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=syntax.my&amp;amp;codeblock=22&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;icons text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code html4strict&quot;&gt;{{:icons:16:book-open.png?|book-open.png.}} - book-open.png
{{:icons:16:tick.png?|tick.png}} - tick.png&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;table sectionedit22&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot; colspan=&quot;4&quot;&gt; icons text    &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:book-open.png&quot; class=&quot;media&quot; title=&quot;icons:16:book-open.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:book-open.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;book-open.png.&quot; alt=&quot;book-open.png.&quot; /&gt;&lt;/a&gt; -  {{:icons:16:book-open.png?|book-open.png.}}    &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:book-open.png&quot; class=&quot;media&quot; title=&quot;icons:16:book-open.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:book-open.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;book-open.png.&quot; alt=&quot;book-open.png.&quot; /&gt;&lt;/a&gt; - book-open.png  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:book-open-bookmark.png&quot; class=&quot;media&quot; title=&quot;icons:16:book-open-bookmark.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:book-open-bookmark.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;book-open-bookmark.png&quot; alt=&quot;book-open-bookmark.png&quot; /&gt;&lt;/a&gt; - book-open-bookmark.png &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:wand-hat.png&quot; class=&quot;media&quot; title=&quot;icons:16:wand-hat.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:wand-hat.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;wand-hat.png&quot; alt=&quot;wand-hat.png&quot; /&gt;&lt;/a&gt; - wand-hat.png  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:balloon.png&quot; class=&quot;media&quot; title=&quot;icons:16:balloon.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:balloon.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;balloon.png&quot; alt=&quot;balloon.png&quot; /&gt;&lt;/a&gt; - balloon.png &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:exclamation--frame.png&quot; class=&quot;media&quot; title=&quot;icons:16:exclamation--frame.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:exclamation--frame.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;exclamation--frame.png&quot; alt=&quot;exclamation--frame.png&quot; /&gt;&lt;/a&gt; - exclamation–frame.png  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:exclamation-red.png&quot; class=&quot;media&quot; title=&quot;icons:16:exclamation-red.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:exclamation-red.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;exclamation-red.png&quot; alt=&quot;exclamation-red.png&quot; /&gt;&lt;/a&gt; - exclamation-red.png  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:information.png&quot; class=&quot;media&quot; title=&quot;icons:16:information.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:information.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;information.png&quot; alt=&quot;information.png&quot; /&gt;&lt;/a&gt; - information.png &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:light-bulb-off.png&quot; class=&quot;media&quot; title=&quot;icons:16:light-bulb-off.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:light-bulb-off.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;light-bulb-off.png&quot; alt=&quot;light-bulb-off.png&quot; /&gt;&lt;/a&gt; - light-bulb-off.png &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:light-bulb.png&quot; class=&quot;media&quot; title=&quot;icons:16:light-bulb.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:light-bulb.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;light-bulb.png&quot; alt=&quot;light-bulb.png&quot; /&gt;&lt;/a&gt; - light-bulb.png  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:magnifier-left.png&quot; class=&quot;media&quot; title=&quot;icons:16:magnifier-left.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:magnifier-left.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;magnifier-left.png&quot; alt=&quot;magnifier-left.png&quot; /&gt;&lt;/a&gt; - magnifier-left.png  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:navigation-000-button-white.png&quot; class=&quot;media&quot; title=&quot;icons:16:navigation-000-button-white.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:navigation-000-button-white.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;navigation-000-button-white.png&quot; alt=&quot;navigation-000-button-white.png&quot; /&gt;&lt;/a&gt; - navigation-white.png &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:notify.png&quot; class=&quot;media&quot; title=&quot;icons:16:notify.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:notify.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;notify.png&quot; alt=&quot;notify.png&quot; /&gt;&lt;/a&gt; - notify.png &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:pin.png&quot; class=&quot;media&quot; title=&quot;icons:16:pin.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:pin.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;pin.png&quot; alt=&quot;pin.png&quot; /&gt;&lt;/a&gt; - pin.png  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:tick.png&quot; class=&quot;media&quot; title=&quot;icons:16:tick.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:tick.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;tick.png&quot; alt=&quot;tick.png&quot; /&gt;&lt;/a&gt; - tick.png  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:tick-red.png&quot; class=&quot;media&quot; title=&quot;icons:16:tick-red.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:tick-red.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;tick-red.png&quot; alt=&quot;tick-red.png&quot; /&gt;&lt;/a&gt; - tick-red.png &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:leaf.png&quot; class=&quot;media&quot; title=&quot;icons:16:leaf.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:leaf.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;leaf.png&quot; alt=&quot;leaf.png&quot; /&gt;&lt;/a&gt; - leaf.png &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:leaf-yellow.png&quot; class=&quot;media&quot; title=&quot;icons:16:leaf-yellow.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:leaf-yellow.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;leaf-yellow.png&quot; alt=&quot;leaf-yellow.png&quot; /&gt;&lt;/a&gt; - leaf-yellow.png  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:leaf-red.png&quot; class=&quot;media&quot; title=&quot;icons:16:leaf-red.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:leaf-red.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;leaf-red.png&quot; alt=&quot;leaf-red.png&quot; /&gt;&lt;/a&gt; - leaf-red.png  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:lightning.png&quot; class=&quot;media&quot; title=&quot;icons:16:lightning.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:lightning.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;lightning.png&quot; alt=&quot;lightning.png&quot; /&gt;&lt;/a&gt; - lightning.png &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:16:box.png&quot; class=&quot;media&quot; title=&quot;icons:16:box.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:16:box.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;box.png&quot; alt=&quot;box.png&quot; /&gt;&lt;/a&gt; - box.png &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:22,&amp;quot;range&amp;quot;:&amp;quot;22509-23938&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u043a\u043e\u043d\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u043a\u043e\u043d\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:21,&amp;quot;secid&amp;quot;:21,&amp;quot;range&amp;quot;:&amp;quot;21032-23938&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit23&quot; id=&quot;иконки_font_awesome&quot;&gt;Иконки Font Awesome&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=syntax.my&amp;amp;codeblock=23&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;icons Font Awesome&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code html4strict&quot;&gt;{{fa&amp;gt;home?16|My Home}}{{fa&amp;gt;refresh?16&lt;span class=&quot;sc1&quot;&gt;&amp;amp;fa-spin}}&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;{{icon&amp;gt;home?24&amp;amp;circle&amp;amp;padding=10px&amp;amp;background=#DDD&amp;amp;color=#CCC}}&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;{{fa&amp;gt;home|My Home}}&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;{{fugue&amp;gt;user?24}}&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;{{flag&amp;gt;fr}}&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;{{silk&amp;gt;anchor}}&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;{{flag&amp;gt;ru}}&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;[[:wiki:welcome|{{fa&amp;gt;home?24|Welcome to DokuWiki}}]]&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;[[https://github.com/LotarProject/dokuwiki-plugin-icons|{{fa&amp;gt;github-square?24|Icons DokuWiki plugin on GitHub}}]] &lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;[[https://gitlab.com/|{{fa&amp;gt;gitlab?24|Icons DokuWiki plugin on GitLab}}]] &lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;[[https://github.com/|{{fa&amp;gt;github?24|Icons DokuWiki plugin on GitHub}}]] &lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;{{flag&amp;gt;no}}&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;i class=&quot;dw-icons fa fa-home&quot; style=&quot;font-size:16px&quot; title=&quot;My Home&quot;&gt;&lt;/i&gt;&lt;i class=&quot;dw-icons fa-spin fa fa-refresh&quot; style=&quot;font-size:16px&quot; title=&quot;&quot;&gt;&lt;/i&gt;
&lt;i class=&quot;dw-icons fa fa-home&quot; style=&quot;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%;padding:10px;background-color:#DDD;color:#CCC&quot; title=&quot;&quot;&gt;&lt;/i&gt;
&lt;i class=&quot;dw-icons fa fa-home&quot; style=&quot;font-size:16px&quot; title=&quot;My Home&quot;&gt;&lt;/i&gt;
&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=24&amp;amp;h=24&amp;amp;tok=5dce33&amp;amp;media=https%3A%2F%2Fraw.githubusercontent.com%2Fyusukekamiyamane%2Ffugue-icons%2Fmaster%2Fbonus%2Ficons-24%2Fuser.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt;
&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=405ecb&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fsilk%2F16%2Fanchor-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt;
&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:welcome&quot; class=&quot;wikilink1&quot;&gt;&lt;i class=&quot;dw-icons fa fa-home&quot; style=&quot;font-size:24px&quot; title=&quot;Welcome to DokuWiki&quot;&gt;&lt;/i&gt;&lt;/a&gt;
&lt;a href=&quot;https://github.com/LotarProject/dokuwiki-plugin-icons&quot; rel=&quot;nofollow&quot;&gt;&lt;i class=&quot;dw-icons fa fa-github-square&quot; style=&quot;font-size:24px&quot; title=&quot;Icons DokuWiki plugin on GitHub&quot;&gt;&lt;/i&gt;&lt;/a&gt;
&lt;a href=&quot;https://gitlab.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;i class=&quot;dw-icons fa fa-gitlab&quot; style=&quot;font-size:24px&quot; title=&quot;Icons DokuWiki plugin on GitLab&quot;&gt;&lt;/i&gt;&lt;/a&gt;
&lt;a href=&quot;https://github.com/&quot; rel=&quot;nofollow&quot;&gt;&lt;i class=&quot;dw-icons fa fa-github&quot; style=&quot;font-size:24px&quot; title=&quot;Icons DokuWiki plugin on GitHub&quot;&gt;&lt;/i&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:css:fontawesome&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:css:fontawesome&quot; data-wiki-id=&quot;software:development:web:docs:web:css:fontawesome&quot;&gt;См. Иконки веб-приложений Font Awesome&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:css:font_awesome_examples&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:css:font_awesome_examples&quot; data-wiki-id=&quot;software:development:web:docs:web:css:font_awesome_examples&quot;&gt;См. Примеры Font Awesome&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:css:font_awesome_all_icons&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:css:font_awesome_all_icons&quot; data-wiki-id=&quot;software:development:web:docs:web:css:font_awesome_all_icons&quot;&gt;См. Все иконки Font Awesome&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=00214e&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Ffr-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=bfc888&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fge-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=8eba49&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fjp-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=b77223&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fbe-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=4ab643&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fru-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=412482&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fsv-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=d946d2&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fca-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=ff6f95&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fgb-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt;
&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=26b868&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fdk-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=127bbd&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fee-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=2bc7e9&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fes-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=165f99&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Ffi-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=c072eb&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fil-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=aa885b&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fkr-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=780e40&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fno-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=000b4e&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fza-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt;
&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=9e40ce&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fus-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=e9ade9&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Frs-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=a0da09&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fpl-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=0d7c3e&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fhy-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=2bc7e9&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fes-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=05a092&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fmx-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=9367a9&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fch-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=aa11ff&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fau-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u043a\u043e\u043d\u043a\u0438 Font Awesome&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u043a\u043e\u043d\u043a\u0438_font_awesome&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:23,&amp;quot;secid&amp;quot;:23,&amp;quot;range&amp;quot;:&amp;quot;23939-25633&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit24&quot; id=&quot;типографские_символы&quot;&gt;Типографские символы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
«Докувики» может переделывать символы, набранные простым текстом, в их типографски корректные эквиваленты. Распознаются следующие символы.
&lt;/p&gt;

&lt;p&gt;
→ ← ↔ ⇒ ⇐ ⇔ » « – — &amp;#039;640&amp;times;480&amp;#039; © ™ ® …&lt;br/&gt;

«Александр Сергеевич™ — это наше всё © не я»
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;-&amp;gt; &amp;lt;- &amp;lt;-&amp;gt; =&amp;gt; &amp;lt;= &amp;lt;=&amp;gt; &amp;gt;&amp;gt; &amp;lt;&amp;lt; -- --- &amp;#039;640x480&amp;#039; (c) (tm) (r) ...
&amp;quot;Александр Сергеевич(tm) --- это наше всё (c) не я&amp;quot;&lt;/pre&gt;

&lt;p&gt;
Примечание: это конвертирование можно отключить в файле конфигурации &lt;code&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:entities&quot; class=&quot;wikilink1&quot; title=&quot;wiki:entities&quot; data-wiki-id=&quot;wiki:entities&quot;&gt;conf/entities.conf&lt;/a&gt;&lt;/code&gt;.
&lt;br/&gt;
 Примеры:
↑,↓,↔,↕,↖,↗,↘,↙,↩,↪,©,®,‼,⁉,™,ℹ,⌚,⌛,⌨,⏏,⏩,⏪,⏫,⏬,⏭,⏮,⏯,⏰,⏱,⏲,⏳,⏸ ,⏹,⏺,Ⓜ,▪,▫,▶,◀,◻,◼,◽,◾,☀,☁,☂,☃, ☄,☎,☑,☔,☕,☘,☝,☠,☢,☣,☦,☪,☮,☯,☸,☹, ☺,♈,♉,♊,♋,♌,♍,♎,♏,♐,♑,♒,♓,♠,♣,♥ ,♦,♨,♻,♿,⚒,⚓,⚔,⚖,⚗,⚙,⚛,⚜,⚠,⚡,⚪,⚫ ,⚰,⚱,⚽,⚾,⛄,⛅,⛈,⛎,⛏,⛑,⛓,⛔,⛩,⛪,⛰,⛱ ,⛲,⛳,⛴,⛵,⛷,⛸,⛹,⛺,⛽,✂, ✅,✈,✉,✊,✋,✌ ,✍,✏,✒,✔,✖,✝,✡,✨,✳,✴,❄,❇,❌,❎,❓, ❔,❕,❗,❣,❤,➕,➖,➗,➡,➰,➿,⤴,⤵,⬅,⬆,⬇, ⬛,⬜,⭐,⭕,〰,〽,㊗,㊙,🀄,🃏,🅰,🅱,🅾,🅿,🆎,🆑 ,🆒,🆓,🆔,🆕,🆖,🆗,🆘,🆙,🆚,🈁,🈂,🈚,🈯,🈲,🈳,🈴 ,🈵,🈶,🈷,🈸,🈹,🈺,🉐,🉑,🌀,🌁,🌂,🌃,🌄,🌅,🌆, 🌇,🌈,🌉,🌊,🌋,🌌,🌍,🌎,🌏,🌐,🌑,🌒,🌓,🌔,🌕,🌖, 🌗,🌘,🌙,🌚,🌛,🌜,🌝,🌞,🌟,🌠,🌡,🌤,🌥,🌦,🌧,🌨, 🌩,🌪,🌫,🌬,🌭,🌮,🌯,🌰,🌱,🌲,🌳,🌴,🌵,🌶,🌷,🌸, 🌹,🌺,🌻,🌼,🌽,🌾,🌿,🍀,🍁,🍂,🍃,🍄,🍅,🍆,🍇,🍈 ,🍉,🍊,🍋,🍌,🍍,🍎,🍏,🍐,🍑,🍒,🍓,🍔,🍕,🍖,🍗,🍘 ,🍙,🍚,🍛,🍜,🍝,🍞,🍟,🍠,🍡,🍢,🍣,🍤,🍥,🍦,🍧, 🍨,🍩,🍪,🍫,🍬,🍭,🍮,🍯,🍰,🍱,🍲,🍳,🍴,🍵,🍶,🍷, 🍸,🍹,🍺,🍻,🍼,🍽,🍾,🍿,🎀,🎁,🎂,🎃,🎄,🎅,🎆,🎇 ,🎈,🎉,🎊,🎋,🎌,🎍,🎎,🎏,🎐,🎑,🎒,🎓,🎖,🎗,🎙,🎚 ,🎛,🎞,🎟,🎠,🎡,🎢,🎣,🎤,🎥,🎦,🎧,🎨,🎩,🎪,🎫,🎬 ,🎭,🎮,🎯,🎰,🎱,🎲,🎳,🎴,🎵,🎶,🎷,🎸,🎹,🎺,🎻,🎼 ,🎽,🎾,🎿,🏀,🏁,🏂,🏃,🏄,🏅,🏆,🏇,🏈,🏉,🏊,🏋, 🏌,🏍,🏎,🏏,🏐,🏑,🏒,🏓,🏔,🏕,🏖,🏗,🏘,🏙,🏚,🏛, 🏜,🏝,🏞,🏟,🏠,🏡,🏢,🏣,🏤,🏥,🏦,🏧,🏨,🏩,🏪,🏫, 🏬,🏭,🏮,🏯,🏰,🏳,🏴,🏵,🏷,🏸,🏹,🏺,🏻,🏼,🏽,🏾, 🏿,🐀,🐁,🐂,🐃,🐄,🐅,🐆,🐇,🐈,🐉,🐊,🐋,🐌,🐍,🐎 ,🐏,🐐,🐑,🐒,🐓,🐔,🐕,🐖,🐗,🐘,🐙,🐚,🐛,🐜,🐝,🐞 ,🐟,🐠,🐡,🐢,🐣,🐤,🐥,🐦,🐧,🐨,🐩,🐪,🐫,🐬,🐭,🐮 ,🐯,🐰,🐱,🐲,🐳,🐴,🐵,🐶,🐷,🐸,🐹,🐺,🐻,🐼,🐽,🐾 ,🐿,👀,👁,👂,👃,👄,👅,👆,👇,👈,👉,👊,👋,👌,👍, 👎,👏,👐,👑,👒,👓,👔,👕,👖,👗,👘,👙,👚,👛,👜,👝, 👞,👟,👠,👡,👢,👣,👤,👥,👦,👧,👨,👩,👪,👫,👬,👭 ,👮,👯,👰,👱,👲,👳,👴,👵,👶,👷,👸,👹,👺,👻,👼,👽 ,👾,👿,💀,💁,💂,💃,💄,💅,💆,💇,💈,💉,💊,💋,💌, 💍,💎,💏,💐,💑,💒,💓,💔,💕,💖,💗,💘,💙,💚,💛,💜, 💝,💞,💟,💠,💡,💢,💣,💤,💥,💦,💧,💨,💩,💪,💫,💬, 💭,💮,💯,💰,💱,💲,💳,💴,💵,💶,💷,💸,💹,💺,💻,💼, 💽,💾,💿,📀,📁,📂,📃,📄,📅,📆,📇,📈,📉,📊,📋,📌 ,📍,📎,📏,📐,📑,📒,📓,📔,📕,📖,📗,📘,📙,📚,📛,📜 ,📝,📞,📟,📠,📡,📢,📣,📤,📥,📦,📧,📨,📩,📪,📫,📬 ,📭,📮,📯,📰,📱,📲,📳,📴,📵,📶,📷,📸,📹,📺,📻,📼 ,📽,📿,🔀,🔁,🔂,🔃,🔄,🔅,🔆,🔇,🔈,🔉,🔊,🔋,🔌, 🔍,🔎,🔏,🔐,🔑,🔒,🔓,🔔,🔕,🔖,🔗,🔘,🔙,🔚,🔛,🔜, 🔝,🔞,🔟,🔠,🔡,🔢,🔣,🔤,🔥,🔦,🔧,🔨,🔩,🔪,🔫,🔬, 🔭,🔮,🔯,🔰,🔱,🔲,🔳,🔴,🔵,🔶,🔷,🔸,🔹,🔺,🔻,🔼, 🔽,🕉,🕊,🕋,🕌,🕍,🕎,🕐,🕑,🕒,🕓,🕔,🕕,🕖,🕗,🕘 ,🕙,🕚,🕛,🕜,🕝,🕞,🕟,🕠,🕡,🕢,🕣,🕤,🕥,🕦,🕧,🕯 ,🕰,🕳,🕴,🕵,🕶,🕷,🕸,🕹,🖇,🖊,🖋,🖌,🖍,🖐,🖕, 🖖,🖥,🖨,🖱,🖲,🖼,🗂,🗃,🗄,🗑,🗒,🗓,🗜,🗝,🗞,🗡, 🗣,🗯,🗳,🗺,🗻,🗼,🗽,🗾,🗿,😀,😁,😂,😃,😄,😅,😆 ,😇,😈,😉,😊,😋,😌,😍,😎,😏,😐,😑,😒,😓,😔,😕,😖 ,😗,😘,😙,😚,😛,😜,😝,😞,😟,😠,😡,😢,😣,😤,😥,😦 ,😧,😨,😩,😪,😫,😬,😭,😮,😯,😰,😱,😲,😳,😴,😵,😶 ,😷,😸,😹,😺,😻,😼,😽,😾,😿,🙀,🙁,🙂,🙃,🙄,🙅, 🙆,🙇,🙈,🙉,🙊,🙋,🙌,🙍,🙎,🙏,🚀,🚁,🚂,🚃,🚄,🚅, 🚆,🚇,🚈,🚉,🚊,🚋,🚌,🚍,🚎,🚏,🚐,🚑,🚒,🚓,🚔,🚕, 🚖,🚗,🚘,🚙,🚚,🚛,🚜,🚝,🚞,🚟,🚠,🚡,🚢,🚣,🚤,🚥, 🚦,🚧,🚨,🚩,🚪,🚫,🚬,🚭,🚮,🚯,🚰,🚱,🚲,🚳,🚴,🚵 ,🚶,🚷,🚸,🚹,🚺,🚻,🚼,🚽,🚾,🚿,🛀,🛁,🛂,🛃,🛄,🛅 ,🛋,🛌,🛍,🛎,🛏,🛐,🛠,🛡,🛢,🛣,🛤,🛥,🛩,🛫,🛬,🛰 ,🛳,🤐,🤑,🤒,🤓,🤔,🤕,🤖,🤗,🤘,🦀,🦁,🦂,🦃,🦄,🧀
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0422\u0438\u043f\u043e\u0433\u0440\u0430\u0444\u0441\u043a\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0442\u0438\u043f\u043e\u0433\u0440\u0430\u0444\u0441\u043a\u0438\u0435_\u0441\u0438\u043c\u0432\u043e\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:24,&amp;quot;secid&amp;quot;:24,&amp;quot;range&amp;quot;:&amp;quot;25634-31409&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit25&quot; id=&quot;таблицы&quot;&gt;Таблицы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
«Докувики» поддерживает упрощённый синтаксис создания таблиц.
&lt;/p&gt;
&lt;div class=&quot;table sectionedit26&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot;&gt; Заголовок 1      &lt;/th&gt;&lt;th class=&quot;col1 leftalign&quot;&gt; Заголовок 2                                                            &lt;/th&gt;&lt;th class=&quot;col2 leftalign&quot;&gt; Заголовок 3      &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; Ряд 1 Колонка 1  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; Ряд 1 Колонка 2                                                        &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; Ряд 1 Колонка 3  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; Ряд 2 Колонка 1  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot; colspan=&quot;2&quot;&gt; Объединение колонок (обратите внимание на двойную вертикальную черту)                    &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; Ряд 3 Колонка 1  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; Ряд 2 Колонка 2                                                        &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; Ряд 2 Колонка 3  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table3&amp;quot;,&amp;quot;secid&amp;quot;:26,&amp;quot;range&amp;quot;:&amp;quot;31556-32164&amp;quot;} --&gt;
&lt;p&gt;
Обычные ряды должны начинаться и заканчиваться вертикальной чертой — |, а заголовки «крышечкой» (циркумфлекс) — ^.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;^ Заголовок 1      ^ Заголовок 2         ^ Заголовок 3            ^
| Ряд 1 Колонка 1  | Ряд 1 Колонка 2     | Ряд 1 Колонка 3        |
| Ряд 2 Колонка 1  | Объединение колонок (обратите внимание на двойную вертикальную черту)  ||
| Ряд 3 Колонка 1  | Ряд 2 Колонка 2     | Ряд 2 Колонка 3        |&lt;/pre&gt;

&lt;p&gt;
Чтобы объединить две соседние клетки в ряду, просто оставьте соседнюю клетку полностью пустой, как показано выше. Следите, чтобы количество разделителей клеток было одинаковым.
&lt;/p&gt;

&lt;p&gt;
Вертикальные заголовки тоже можно сделать:
&lt;/p&gt;
&lt;div class=&quot;table sectionedit27&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;              &lt;/td&gt;&lt;th class=&quot;col1 leftalign&quot;&gt; Заголовок 1       &lt;/th&gt;&lt;th class=&quot;col2 leftalign&quot;&gt; Заголовок 2      &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot;&gt; Заголовок 3  &lt;/th&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; Ряд 1 Колонка 2   &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; Ряд 1 Колонка 3  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot;&gt; Заголовок 4  &lt;/th&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; Объединения нет   &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;                  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot;&gt; Заголовок 5  &lt;/th&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; Ряд 2 Колонка 2   &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; Ряд 2 Колонка 3  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table4&amp;quot;,&amp;quot;secid&amp;quot;:27,&amp;quot;range&amp;quot;:&amp;quot;33258-33580&amp;quot;} --&gt;
&lt;p&gt;
Как легко увидеть, разделитель, стоящий перед клеткой, определяет форматирование:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;|              ^ Заголовок 1       ^ Заголовок 2      ^
^ Заголовок 3  | Ряд 1 Колонка 2   | Ряд 1 Колонка 3  |
^ Заголовок 4  | Объединения нет   |                  |
^ Заголовок 5  | Ряд 2 Колонка 2   | Ряд 2 Колонка 3  |&lt;/pre&gt;

&lt;p&gt;
Можно сделать вертикально объединённые ячейки добавлением трёх двоеточий &lt;code&gt;:::&lt;/code&gt; в объединяемые нижележащие ячейки.
&lt;/p&gt;
&lt;div class=&quot;table sectionedit28&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot;&gt; Заголовок 1      &lt;/th&gt;&lt;th class=&quot;col1 leftalign&quot;&gt; Заголовок 2                        &lt;/th&gt;&lt;th class=&quot;col2 leftalign&quot;&gt; Заголовок 3      &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; Ряд 1 Колонка 1  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot; rowspan=&quot;3&quot;&gt; эта ячейка объединена вертикально  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; Ряд 1 Колонка 3  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; Ряд 2 Колонка 1  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; Ряд 2 Колонка 3  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; Ряд 3 Колонка 1  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; Ряд 2 Колонка 3  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table5&amp;quot;,&amp;quot;secid&amp;quot;:28,&amp;quot;range&amp;quot;:&amp;quot;34278-34702&amp;quot;} --&gt;
&lt;p&gt;
В этих ячейках не должно быть ничего, кроме синтаксиса объединения (&lt;code&gt;:::&lt;/code&gt;).
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;^ Заголовок 1        ^ Заголовок 2                       ^ Заголовок 3            ^
| Ряд 1 Колонка 1    | эта ячейка объединена вертикально | Ряд 1 Колонка 3        |
| Ряд 2 Колонка 1    | :::                               | Ряд 2 Колонка 3        |
| Ряд 3 Колонка 1    | :::                               | Ряд 2 Колонка 3        |&lt;/pre&gt;

&lt;p&gt;
Текст клетки таблицы можно выравнивать. Просто добавьте минимум два пробела с противоположной стороны: слева — если надо выравнять вправо, справа — если надо выравнять влево, и по два с каждой стороны — если по центру. 
&lt;/p&gt;
&lt;div class=&quot;table sectionedit29&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot; colspan=&quot;3&quot;&gt;           Таблица с выравниванием        &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;        вправо&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;   по центру  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;влево         &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;влево         &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;        вправо&lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;   по центру  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; xxxxxxxxxxxx &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; xxxxxxxxxxxx &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; xxxxxxxxxxxx &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table6&amp;quot;,&amp;quot;secid&amp;quot;:29,&amp;quot;range&amp;quot;:&amp;quot;35704-35950&amp;quot;} --&gt;&lt;pre class=&quot;code&quot;&gt;^           Таблица с выравниванием        ^^^
|        вправо|   по центру  |влево         |
|влево         |        вправо|   по центру  |
| xxxxxxxxxxxx | xxxxxxxxxxxx | xxxxxxxxxxxx |&lt;/pre&gt;

&lt;p&gt;
Примечание: вертикальное выравнивание не поддерживается.
&lt;/p&gt;

&lt;p&gt;
&lt;img src=&quot;https://wwoss.ru/lib/images/smileys/exclaim.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:!:&quot; /&gt; С установленным плагином tablelayout.
&lt;/p&gt;

&lt;p&gt;
Следующий пример синтаксиса сделает первую фиксированной и покажет около 2 других строк в прокручиваемом контейнере ниже. Это сделает первый столбец шириной 100 пикселей, а второй — 200 пикселей. Сам стол будет плавать вправо.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{{tablelayout?colwidth=&amp;quot;100px,200px&amp;quot;&amp;amp;rowsHeaderSource=2&amp;amp;rowsVisible=2&amp;amp;float=left}}
^ header 1 ^ header 2 ^
| cell A1 | cell B1 |
| cell A2 | cell B2 |
| cell A3 | cell B3 |&lt;/pre&gt;
&lt;div class=&#039;plugin_tablelayout_placeholder&#039; data-tablelayout=&quot;{&amp;quot;colwidth&amp;quot;:[&amp;quot;100px&amp;quot;,&amp;quot;200px&amp;quot;],&amp;quot;rowsHeaderSource&amp;quot;:&amp;quot;2&amp;quot;,&amp;quot;rowsVisible&amp;quot;:&amp;quot;3&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;}&quot;&gt;&lt;/div&gt;&lt;div class=&quot;table sectionedit30&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; header 1 &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; header 2 &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; cell A1 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; cell B1 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; cell A2 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; cell B2 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; cell A3 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; cell B3 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table7&amp;quot;,&amp;quot;secid&amp;quot;:30,&amp;quot;range&amp;quot;:&amp;quot;37063-37152&amp;quot;} --&gt;&lt;pre class=&quot;code&quot;&gt;{{tablelayout?colwidth=&amp;quot;100px&amp;quot;}}
^ header 1 ^ header 2 ^
| cell A1 | cell B1 |
| cell A2 | cell B2 |
| cell A3 | cell B3 |&lt;/pre&gt;
&lt;div class=&#039;plugin_tablelayout_placeholder&#039; data-tablelayout=&quot;{&amp;quot;colwidth&amp;quot;:[&amp;quot;100px&amp;quot;]}&quot;&gt;&lt;/div&gt;&lt;div class=&quot;table sectionedit31&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; header 1 &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; header 2 &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; cell A1 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; cell B1 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; cell A2 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; cell B2 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; cell A3 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; cell B3 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table8&amp;quot;,&amp;quot;secid&amp;quot;:31,&amp;quot;range&amp;quot;:&amp;quot;37325-37414&amp;quot;} --&gt;
&lt;p&gt;
&lt;img src=&quot;https://wwoss.ru/lib/images/smileys/exclaim.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:!:&quot; /&gt; С установленным плагином Cellbg.
&lt;/p&gt;

&lt;p&gt;
Плагин фона ячейки. Позволяет определять ячейки фонового цвета, определяемые пользователем, в таблицах
&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;^ Заголовок 1 ^ Заголовок 2 ^ Заголовок 3 ^
| @lightgreen:**Диапазон** || |
| @#6495ed:Линия 1 | Да | Да, действительно |
| линия 2 | Да | @orange: Да |
| @:Линия 3 | Да | @red: Нет |&lt;/pre&gt;
&lt;div class=&quot;table sectionedit32&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; Заголовок 1 &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; Заголовок 2 &lt;/th&gt;&lt;th class=&quot;col2&quot;&gt; Заголовок 3 &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot; colspan=&quot;2&quot; bgcolor=lightgreen&gt;&lt;strong&gt;Диапазон&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot; bgcolor=#6495ed&gt;Линия 1 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Да &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Да, действительно &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; линия 2 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Да &lt;/td&gt;&lt;td class=&quot;col2&quot; bgcolor=orange&gt; Да &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot; bgcolor=yellow&gt;Линия 3 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Да &lt;/td&gt;&lt;td class=&quot;col2&quot; bgcolor=red&gt; Нет &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table9&amp;quot;,&amp;quot;secid&amp;quot;:32,&amp;quot;range&amp;quot;:&amp;quot;37946-38205&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0422\u0430\u0431\u043b\u0438\u0446\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0442\u0430\u0431\u043b\u0438\u0446\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:25,&amp;quot;secid&amp;quot;:25,&amp;quot;range&amp;quot;:&amp;quot;31410-38206&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit33&quot; id=&quot;неформатируемые_блоки&quot;&gt;Неформатируемые блоки&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Неформатируемые блоки можно вставлять в документ, либо начиная каждую строчку блока с двух или более пробелов (как это делалось в некоторых предыдущих примерах), либо используя тэги &lt;code&gt;&amp;lt;code&amp;gt;&lt;/code&gt; или &lt;code&gt;&amp;lt;file&amp;gt;&lt;/code&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Это неформатированный текст, в котором сохранены все пробелы: вот             &amp;lt;- так.&lt;/pre&gt;
&lt;pre class=&quot;file&quot;&gt;В принципе то же самое, но этим выделением можно показать, что цитируется содержимое файла.&lt;/pre&gt;

&lt;p&gt;
Чтобы парсер полностью проигнорировал некий текст (т. е. не форматировал его), либо заключите его в тэги &lt;code&gt;nowiki&lt;/code&gt;, либо ещё проще — в двойные знаки процента &lt;code&gt;%%&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Это просто текст, в котором есть адрес http://www.splitbrain.org/
и **форматирование** — но ничего не происходит.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Это просто текст, в котором есть адрес %%http://www.splitbrain.org/%%
и %%**форматирование**%% --- но ничего не происходит.&lt;/pre&gt;

&lt;p&gt;
Чтобы увидеть, как используются эти блоки, смотрите код страницы.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0435\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0431\u043b\u043e\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0435\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0435_\u0431\u043b\u043e\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:28,&amp;quot;secid&amp;quot;:33,&amp;quot;range&amp;quot;:&amp;quot;38207-39794&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit34&quot; id=&quot;блоки_и_примечания&quot;&gt;Блоки и примечания&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:35,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_round wrap_box wrap_center plugin_wrap&quot; style=&quot;width: 570px; max-width: 100%;&quot;&gt;
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;&lt;em class=&quot;u&quot;&gt;round box 570px center&lt;/em&gt;&lt;/strong&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;box&lt;/code&gt; создаёт блок вокруг контейнера, по умолчанию используя цвета из файла шаблона &lt;code&gt;style.ini&lt;/code&gt; (&lt;code&gt;__background_alt__&lt;/code&gt; и &lt;code&gt;__text__&lt;/code&gt;);&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; любой из классов &lt;code&gt;info&lt;/code&gt;, &lt;code&gt;tip&lt;/code&gt;, &lt;code&gt;important&lt;/code&gt;, &lt;code&gt;alert&lt;/code&gt;, &lt;code&gt;help&lt;/code&gt;, &lt;code&gt;download&lt;/code&gt;, &lt;code&gt;todo&lt;/code&gt; создаёт специальный контейнер с предупреждением, помеченным соответствующей иконкой;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; для классов &lt;code&gt;danger&lt;/code&gt;, &lt;code&gt;warning&lt;/code&gt;, &lt;code&gt;caution&lt;/code&gt;, &lt;code&gt;notice&lt;/code&gt;, &lt;code&gt;safety&lt;/code&gt; используются цвета сигнальной маркировки (без иконок);&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;round&lt;/code&gt; может добавляться к чему-угодно, имеющему цветную подложку или границу, однако работать такой код будет только в современных браузерах (не в Internet Explorer).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:36,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;p&gt;
Дополнительные конфигурационные файлы находятся в /var/lib/dokuwiki/lib/tpl/dokuwiki (Debian), например style.ini. Style.ini – это текстовый файл, который считывается темой по умолчанию, и пользователь может настроить, например, цвет фона. 
&lt;/p&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:37,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_info wrap_left plugin_wrap&quot; style=&quot;width: 100%;&quot;&gt;
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;Информация&lt;/strong&gt;&lt;/em&gt;
Простой левосторонний блок на длину страницы
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:38,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:39,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_tip wrap_left plugin_wrap&quot; style=&quot;width: 30%;&quot;&gt;
&lt;p&gt;
Простой левосторонний блок на 30%
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:40,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:41,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_important wrap_left plugin_wrap&quot; style=&quot;width: 60%;&quot;&gt;
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;Важно!&lt;/strong&gt;&lt;/em&gt;
Простой левосторонний блок на 60%
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:42,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:43,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_alert wrap_left plugin_wrap&quot; style=&quot;width: 220px; max-width: 100%;&quot;&gt;
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;Предупреждение!&lt;/strong&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;WRAP alert&amp;gt;&amp;lt;/WRAP&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:44,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:45,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_center wrap_round wrap_alert plugin_wrap&quot; style=&quot;width: 60%;&quot;&gt;
&lt;p&gt;
блок «Тревога»
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;WRAP round help&amp;gt;&amp;lt;/WRAP&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:46,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:47,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_round wrap_help wrap_left plugin_wrap&quot; style=&quot;width: 220px; max-width: 100%;&quot;&gt;
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;Помощь&lt;/strong&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;WRAP round help&amp;gt;&amp;lt;/WRAP&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:48,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:49,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_download wrap_left plugin_wrap&quot; style=&quot;width: 220px; max-width: 100%;&quot;&gt;
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;Скачать&lt;/strong&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;WRAP download&amp;gt;&amp;lt;/WRAP&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:50,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:51,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_todo wrap_left plugin_wrap&quot; style=&quot;width: 220px; max-width: 100%;&quot;&gt;
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;Список дел&lt;/strong&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;WRAP todo&amp;gt;&amp;lt;/WRAP&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:52,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:53,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_clear plugin_wrap&quot;&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:54,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;p&gt;
&lt;strong&gt;Оповещения об опасности:&lt;/strong&gt;
&lt;/p&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:55,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_danger wrap_left plugin_wrap&quot; style=&quot;width: 27%;&quot;&gt;
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;Опасность&lt;/strong&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;WRAP danger&amp;gt;&amp;lt;/WRAP&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:56,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:57,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_caution wrap_left plugin_wrap&quot; style=&quot;width: 27%;&quot;&gt;
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;Осторожно!&lt;/strong&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;WRAP caution&amp;gt;&amp;lt;/WRAP&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:58,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:59,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_round wrap_notice wrap_left plugin_wrap&quot; style=&quot;width: 27%;&quot;&gt;
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;Внимание!&lt;/strong&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;WRAP round notice&amp;gt;&amp;lt;/WRAP&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:60,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:61,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_clear plugin_wrap&quot;&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:62,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;p&gt;
Также блоки и примечания можно использовать внутри текстов со спанами, подобных этим: &lt;span class=&quot;wrap_info &quot;&gt;info&lt;/span&gt;, &lt;span class=&quot;wrap_help &quot;&gt;help&lt;/span&gt;, &lt;span class=&quot;wrap_alert &quot;&gt;alert&lt;/span&gt;, &lt;span class=&quot;wrap_important &quot;&gt;important&lt;/span&gt;, &lt;span class=&quot;wrap_tip &quot;&gt;tip&lt;/span&gt;, &lt;span class=&quot;wrap_download &quot;&gt;download&lt;/span&gt;, &lt;span class=&quot;wrap_todo &quot;&gt;todo&lt;/span&gt; и&lt;span class=&quot;wrap_round wrap_box &quot;&gt;round box&lt;/span&gt;, а также &lt;span class=&quot;wrap_danger &quot;&gt;danger&lt;/span&gt;, &lt;span class=&quot;wrap_warning &quot;&gt;warning&lt;/span&gt;, &lt;span class=&quot;wrap_caution &quot;&gt;caution&lt;/span&gt;, &lt;span class=&quot;wrap_notice &quot;&gt;notice&lt;/span&gt;, &lt;span class=&quot;wrap_safety &quot;&gt;safety&lt;/span&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;wrap info&amp;gt;info&amp;lt;/wrap&amp;gt;, &amp;lt;wrap help&amp;gt;help&amp;lt;/wrap&amp;gt;, ...&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;текст_в_2х_колонках&quot;&gt;Текст в 2х колонках&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;WRAP group&amp;gt;
&amp;lt;WRAP half column&amp;gt;
&amp;lt;color #ed1c24&amp;gt;&amp;quot;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&amp;quot;&amp;lt;/color&amp;gt;
&amp;lt;/WRAP&amp;gt;

&amp;lt;WRAP half column&amp;gt;
&amp;quot;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&amp;quot;
&amp;lt;/WRAP&amp;gt;
&amp;lt;/WRAP&amp;gt;&lt;/pre&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:63,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;group plugin_wrap&quot;&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:65,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column plugin_wrap&quot;&gt;
&lt;p&gt;
&amp;lt;color #ed1c24&amp;gt;«Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.»&amp;lt;/color&amp;gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:66,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:67,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column plugin_wrap&quot;&gt;
&lt;p&gt;
«Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.»
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:68,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:64,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h4 id=&quot;языки_и_текстовые_направления&quot;&gt;Языки и текстовые направления&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Вы можете изменить язык и направление контейнера, просто добавив двоеточие, за которым следует код языка, например:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;wrap :en&amp;gt;This text is clearly marked as English. (Этот текст явно помечен как английский.)&amp;lt;/wrap&amp;gt;&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;wrap :en&amp;gt;This text is clearly marked as English. (Этот текст явно помечен как английский.)&amp;lt;/wrap&amp;gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;скругление_углов&quot;&gt;Скругление углов&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Файл &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt; - lib/plugin/wrap/all.less
&lt;/p&gt;
&lt;pre class=&quot;code css&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;/*____________ rounded corners ____________*/&lt;/span&gt;
&lt;span class=&quot;coMULTI&quot;&gt;/* (only for modern browsers) */&lt;/span&gt;
&amp;nbsp;
div&lt;span class=&quot;re1&quot;&gt;.wrap_round&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;0.2em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
span&lt;span class=&quot;re1&quot;&gt;.wrap_round&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;0.2em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;якорь&quot;&gt;Якорь&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Для определения привязки применяется следующий синтаксис:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;wrap #ankername /&amp;gt;&lt;/pre&gt;

&lt;p&gt;
Якорь доступен через: &lt;code&gt;#ankername&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:plugin:wrap&quot; class=&quot;wikilink1&quot; title=&quot;wiki:plugin:wrap&quot; data-wiki-id=&quot;wiki:plugin:wrap&quot;&gt;См. подробнее о плагине Wrap&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0411\u043b\u043e\u043a\u0438 \u0438 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0431\u043b\u043e\u043a\u0438_\u0438_\u043f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:31,&amp;quot;secid&amp;quot;:34,&amp;quot;range&amp;quot;:&amp;quot;39795-46282&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit69&quot; id=&quot;блоки_модифицированного_плагина_note&quot;&gt;Блоки модифицированного плагина Note&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;plugin_note notegreen&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=00214e&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Ffr-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=bfc888&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fge-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=8eba49&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fjp-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=b77223&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fbe-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=4ab643&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fru-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=412482&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fsv-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=d946d2&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fca-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=ff6f95&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fgb-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt;
&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=26b868&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fdk-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=127bbd&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fee-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=2bc7e9&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fes-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=165f99&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Ffi-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=c072eb&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fil-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=aa885b&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fkr-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=780e40&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fno-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=000b4e&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fza-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt;
&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=9e40ce&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fus-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=e9ade9&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Frs-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=a0da09&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fpl-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=0d7c3e&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fhy-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=2bc7e9&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fes-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=05a092&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fmx-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=9367a9&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fch-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt; &lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?cache=recache&amp;amp;w=16&amp;amp;h=16&amp;amp;tok=aa11ff&amp;amp;media=http%3A%2F%2Ficons.iconarchive.com%2Ficons%2Ffamfamfam%2Fflag%2F16%2Fau-icon.png&quot; title=&quot;&quot; class=&quot;&quot; style=&quot;&quot; /&gt;
&lt;/div&gt;&lt;div class=&quot;plugin_note noteyellow&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/images/smileys/light-bulb.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;12:&quot; /&gt; желтая заметка
&lt;/div&gt;&lt;div class=&quot;plugin_note notepurple&quot;&gt;Свойства &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt; margin используются для создания пространства вокруг элементов за пределами определенных границ. С &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt; у вас есть полный контроль над полями. Существуют свойства для установки полей для каждой стороны элемента (сверху, справа, снизу и слева).
&lt;/div&gt;&lt;div class=&quot;plugin_note noteblack&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=icons:book_icon_158035.png&quot; class=&quot;media&quot; title=&quot;icons:book_icon_158035.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=icons:book_icon_158035.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; черная заметка с примером иконки и текста (Существуют свойства для установки полей для каждой стороны элемента (сверху, справа, снизу и слева))

&lt;/div&gt;
&lt;p&gt;
Так же доступно обтекание закругленной рамкой с поялением тени при наведении курсора
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=plugin_note_shadow_16.png&quot; class=&quot;media&quot; title=&quot;plugin_note_shadow_16.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=plugin_note_shadow_16.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;note shadow&amp;gt;{{:plugin_note_shadow_16.png?|}}&amp;lt;/note&amp;gt;&lt;/pre&gt;

&lt;p&gt;
Рабочий пример с появлением тени при наведении курсора
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=syntax.my&amp;amp;media=plugin_note_shadow_16.png&quot; class=&quot;media&quot; title=&quot;plugin_note_shadow_16.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=plugin_note_shadow_16.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Пример кнопки «Читать далее»
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?id=playground:playground&quot; class=&quot;wikilink2&quot; title=&quot;playground:playground&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;playground:playground&quot;&gt;Читать далее...&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
Для определения привязки применяется следующий синтаксис:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;note #ankernametest /&amp;gt;&lt;/pre&gt;

&lt;p&gt;
Якорь доступен через: &lt;code&gt;#ankernametest&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:plugin:note&quot; class=&quot;wikilink1&quot; title=&quot;wiki:plugin:note&quot; data-wiki-id=&quot;wiki:plugin:note&quot;&gt;См. подробнее о плагине Note&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0411\u043b\u043e\u043a\u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0433\u0438\u043d\u0430 Note&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0431\u043b\u043e\u043a\u0438_\u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e_\u043f\u043b\u0430\u0433\u0438\u043d\u0430_note&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:43,&amp;quot;secid&amp;quot;:69,&amp;quot;range&amp;quot;:&amp;quot;46283-48331&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit70&quot; id=&quot;подсветка_синтаксиса&quot;&gt;Подсветка синтаксиса&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
«Докувики» может  &lt;span class=&quot;wrap_hi &quot;&gt;программный код&lt;/span&gt;, чтобы его было проще читать. Для этого используется библиотека &lt;a href=&quot;http://qbnz.com/highlighter/&quot; class=&quot;urlextern&quot; title=&quot;http://qbnz.com/highlighter/&quot; rel=&quot;ugc nofollow&quot;&gt;GeSHi&lt;/a&gt; — соответственно подсвечиваются все языки, поддерживаемые GeSHi. Синтаксис такой же, как и в блоке &lt;code&gt;code&lt;/code&gt; в предыдущем разделе, но на этот раз внутри тэга добавляется название языка. Например &amp;lt;code java&amp;gt;.
&lt;/p&gt;
&lt;pre class=&quot;code java&quot;&gt;&lt;span class=&quot;co3&quot;&gt;/** 
 * The HelloWorldApp class implements an application that
 * simply displays &amp;quot;Hello World!&amp;quot; to the standard output.
 */&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; HelloWorldApp &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt; main&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+string&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;String&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; args&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+system&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;System&lt;/span&gt;&lt;/a&gt;.&lt;span class=&quot;me1&quot;&gt;out&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Hello World!&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;//Display the string.&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;details&gt;&lt;summary&gt;«Список поддерживаемых языков»&lt;/summary&gt;
&lt;p&gt;
~~COL:7~~
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;, 4cs
, **a**bap
, actionscript-french
, actionscript
, actionscript3
, ada
, apache
, applescript
, asm
, asp
, autoconf
, autohotkey
, autoit
, avisynth
, awk
, **b**ash
, basic4gl
, bf
, bibtex
, blitzbasic
, bnf
, boo
, **c**
, c_mac
, caddcl
, cadlisp
, cfdg
, cfm
, chaiscript
, cil
, clojure
, cmake
, cobol
, cpp
, cpp-qt
, csharp
, css
, cuesheet
, **d**
, dcs
, delphi
, diff
, div
, dos
, dot
, **e**cmascript
, eiffel
, email
, erlang
, **f**o
, fortran
, freebasic
, fsharp
, **g**ambas
, genero
, genie
, gdb
, glsl
, gml
, gnuplot
, groovy
, gettext
, gwbasic
, **h**askell
, hicest
, hq9plus
, html
, **i**con
, idl
, ini
, inno
, intercal
, io
, **j**
, java5
, java
, javascript
, jquery
, **k**ixtart
, klonec
, klonecpp
, **l**atex
, lisp
, locobasic
, logtalk
, lolcode
, lotusformulas
, lotusscript
, lscript
, lsl2
, lua
, **m**68k
, magiksf
, make
, mapbasic
, matlab
, mirc
, modula2
, modula3
, mmix
, mpasm
, mxml
, mysql
, **n**ewlisp
, nsis
, **o**beron2
, objc
, ocaml-brief
, ocaml
, oobas
, oracle8
, oracle11
, oxygene
, oz
, **p**ascal
, pcre
, perl
, perl6
, per
, pf
, php-brief
, php
, pike
, pic16
, pixelbender
, plsql
, postgresql
, povray
, powerbuilder
, powershell
, progress
, prolog
, properties
, providex
, purebasic
, python
, **q**
, qbasic
, **r**ails
, rebol
, reg
, robots
, rpmspec
, rsplus
, ruby
, **s**as
, scala
, scheme
, scilab
, sdlbasic
, smalltalk
, smarty
, sql
, systemverilog
, **t**cl
, teraterm
, text
, thinbasic
, tsql
, typoscript
, **u**nicon
, **v**ala
, vbnet
, vb
, verilog
, vhdl
, vim
, visualfoxpro
, visualprolog
, **w**hitespace
, winbatch
, whois
, **x**basic
, xml
, xorg_conf
, xpp
, **z**80&lt;/pre&gt;
&lt;/details&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0430 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0430_\u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:44,&amp;quot;secid&amp;quot;:70,&amp;quot;range&amp;quot;:&amp;quot;48332-51404&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit71&quot; id=&quot;скачиваемые_блоки_кода&quot;&gt;Скачиваемые блоки кода&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Используя тэги &lt;code&gt;&amp;lt;code&amp;gt;&lt;/code&gt; или &lt;code&gt;&amp;lt;file&amp;gt;&lt;/code&gt;, как показано выше, вы можете сделать отображаемый код доступным для загрузки. Для этого определите имя файла после кода языка вот так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;file php myexample.php&amp;gt;
&amp;lt;?php echo &amp;quot;hello world!&amp;quot;; ?&amp;gt;
&amp;lt;/file&amp;gt;&lt;/pre&gt;
&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=syntax.my&amp;amp;codeblock=46&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;myexample.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;hello world!&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Если вам не нужна подсветка, но нужен загружаемый файл, поставьте прочерк (дефис) (&lt;code&gt;-&lt;/code&gt;) на месте кода языка: &lt;code&gt;&amp;lt;code - myfile.foo&amp;gt;&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Особенность:&lt;/strong&gt; при написании имени файла на русском языке для формирования корректного имени файла обрамляйте название файла двойными кавычками. Например, &amp;quot;Фоо Бар.php&amp;quot;.
&lt;/p&gt;
&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=syntax.my&amp;amp;codeblock=47&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php_&quot;&gt;&amp;quot;Фоо Бар.php&amp;quot;&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;hello world!&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;pre class=&quot;code JavaScript&quot;&gt;&lt;ol&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;var&lt;/span&gt; de &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;typeof&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;window.&lt;span class=&quot;me1&quot;&gt;de&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;object&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;?&lt;/span&gt; window.&lt;span class=&quot;me1&quot;&gt;de&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;
&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=syntax.my&amp;amp;codeblock=49&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php_&quot;&gt;&amp;quot;Фоо Бар.php&amp;quot; &lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file php&quot;&gt;&lt;ol&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;var de = function() {&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1 ln-xtra&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	return (typeof(window.de) == &#039;object&#039;) ? window.de : {};&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;}();&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;hello world!&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;pre class=&quot;code JavaScript&quot;&gt;&lt;ol&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;var&lt;/span&gt; de &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;typeof&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;window.&lt;span class=&quot;me1&quot;&gt;de&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;object&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;?&lt;/span&gt; window.&lt;span class=&quot;me1&quot;&gt;de&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;
&lt;pre class=&quot;file&quot;&gt;&amp;lt;code php Lexer.php [enable_line_numbers=&amp;quot;true&amp;quot;, start_line_numbers_at=&amp;quot;42&amp;quot;,highlight_lines_extra=&amp;quot;43&amp;quot;]&amp;gt;
void main () {
    printf (&amp;quot;Hello World!&amp;quot;);
    exit(0);
}
&amp;lt;/code&amp;gt;&lt;/pre&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=syntax.my&amp;amp;codeblock=52&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php_&quot;&gt;Lexer.php &lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;ol start=&quot;42&quot;&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;void main &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;a href=&quot;http://www.php.net/printf&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;printf&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Hello World!&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;pre class=&quot;code JavaScript&quot;&gt;&lt;ol&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;var&lt;/span&gt; de &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1 ln-xtra&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;typeof&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;window.&lt;span class=&quot;me1&quot;&gt;de&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;object&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;?&lt;/span&gt; window.&lt;span class=&quot;me1&quot;&gt;de&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u043a\u043e\u0434\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c\u044b\u0435_\u0431\u043b\u043e\u043a\u0438_\u043a\u043e\u0434\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:45,&amp;quot;secid&amp;quot;:71,&amp;quot;range&amp;quot;:&amp;quot;51405-53537&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit72&quot; id=&quot;вставка_html_и_php&quot;&gt;Вставка HTML и PHP&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Чистый &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;- или PHP-код можно вставлять в документ с помощью тэгов &lt;code&gt;html&lt;/code&gt; и &lt;code&gt;php&lt;/code&gt;. Используйте заглавные буквы для блочных элементов.
&lt;/p&gt;
&lt;pre class=&quot;code html4strict&quot;&gt;&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
Тут вставлен &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/font.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;font&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;red&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;+1&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;код HTML&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/font.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;font&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;HTML&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/p.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;p&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;style&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;border:2px dashed red;&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;И здесь блочная вставка HTML&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/p.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;HTML&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Получается:
&lt;/p&gt;

&lt;p&gt;

Тут вставлен &lt;font color=&quot;red&quot; size=&quot;+1&quot;&gt;HTML-код&lt;/font&gt;

&lt;/p&gt;
&lt;div class=&quot;htmlblock&quot;&gt;

&lt;p style=&quot;border:2px dashed red;&quot;&gt;И здесь блочная вставка HTML&lt;/p&gt;
&lt;/div&gt;
&lt;hr /&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;php&amp;gt;
echo &amp;#039;Версия PHP: &amp;#039;;
echo phpversion();
echo &amp;#039; (прямая вставка в HTML).&amp;#039;;
&amp;lt;/php&amp;gt;

&amp;lt;PHP&amp;gt;
echo &amp;#039;&amp;lt;table class=&amp;quot;inline&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;То же самое — в элементе блочного уровня:&amp;lt;/td&amp;gt;&amp;#039;;
echo &amp;#039;&amp;lt;td&amp;gt;&amp;#039;.phpversion().&amp;#039;&amp;lt;/td&amp;gt;&amp;#039;;
echo &amp;#039;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;#039;;
&amp;lt;/PHP&amp;gt;&lt;/pre&gt;

&lt;p&gt;
Получается:
&lt;/p&gt;

&lt;p&gt;
Версия PHP: 8.4.19 (прямая вставка в HTML).
&lt;/p&gt;
&lt;div class=&quot;phpok&quot;&gt;
&lt;table class=&quot;inline&quot;&gt;&lt;tr&gt;&lt;td&gt;То же самое — в элементе блочного уровня:&lt;/td&gt;&lt;td&gt;8.4.19&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;
&lt;strong&gt;Примечание:&lt;/strong&gt; по умолчанию вставка &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; и PHP запрещена. Когда она запрещена, код не исполняется, а выводится в исходном виде.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0441\u0442\u0430\u0432\u043a\u0430 HTML \u0438 PHP&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0441\u0442\u0430\u0432\u043a\u0430_html_\u0438_php&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:54,&amp;quot;secid&amp;quot;:72,&amp;quot;range&amp;quot;:&amp;quot;53538-55095&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit73&quot; id=&quot;вставка_видео&quot;&gt;Вставка видео&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;{{video.mp4|}}    block 
{{video.mp4 |}}   left
{{ video.mp4 |}}  center
{{ video.mp4|}}   right
{{video.mp4?200x50|}} [widht]x[height]
{{video.mp4?400x&amp;amp;:wiki:dokuwiki-128.png|}} preview image
{{video.mp4?400x&amp;amp;:wiki:dokuwiki-128.png|video}} alternate text&lt;/pre&gt;

&lt;p&gt;
&lt;video class=&quot;media&quot; width=&quot;320&quot; height=&quot;240&quot; controls=&quot;controls&quot;&gt;
&lt;source src=&quot;/lib/exe/fetch.php?media=%D0%B0%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%BC%D0%B0%D1%82%D0%BE%D0%B2_%D1%82%D1%8B_%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD_%D0%B1%D1%8B%D1%82%D1%8C_%D0%B3%D0%B5%D1%80%D0%BE%D0%B5%D0%BC_720p_.mp4&quot; type=&quot;video/mp4&quot; /&gt;
&lt;a href=&quot;https://wwoss.ru/lib/exe/fetch.php?media=%D0%B0%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%BC%D0%B0%D1%82%D0%BE%D0%B2_%D1%82%D1%8B_%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD_%D0%B1%D1%8B%D1%82%D1%8C_%D0%B3%D0%B5%D1%80%D0%BE%D0%B5%D0%BC_720p_.mp4&quot; class=&quot;media mediafile mf_mp4&quot; title=&quot;алексей_матов_ты_назначен_быть_героем_720p_.mp4 (30.2 MB)&quot;&gt;алексей_матов_ты_назначен_быть_героем_720p_.mp4&lt;/a&gt;&lt;/video&gt;

&lt;video class=&quot;media&quot; width=&quot;200&quot; height=&quot;50&quot; controls=&quot;controls&quot;&gt;
&lt;source src=&quot;/lib/exe/fetch.php?media=%D0%B0%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%BC%D0%B0%D1%82%D0%BE%D0%B2_%D1%82%D1%8B_%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD_%D0%B1%D1%8B%D1%82%D1%8C_%D0%B3%D0%B5%D1%80%D0%BE%D0%B5%D0%BC_720p_.mp4&quot; type=&quot;video/mp4&quot; /&gt;
&lt;a href=&quot;https://wwoss.ru/lib/exe/fetch.php?media=%D0%B0%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%BC%D0%B0%D1%82%D0%BE%D0%B2_%D1%82%D1%8B_%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD_%D0%B1%D1%8B%D1%82%D1%8C_%D0%B3%D0%B5%D1%80%D0%BE%D0%B5%D0%BC_720p_.mp4&quot; class=&quot;media mediafile mf_mp4&quot; title=&quot;алексей_матов_ты_назначен_быть_героем_720p_.mp4 (30.2 MB)&quot;&gt;алексей_матов_ты_назначен_быть_героем_720p_.mp4&lt;/a&gt;&lt;/video&gt;

&lt;video class=&quot;media&quot; title=&quot;алексей_матов_ты_назначен_быть_героем&quot; width=&quot;400&quot; height=&quot;240&quot; controls=&quot;controls&quot;&gt;
&lt;source src=&quot;/lib/exe/fetch.php?media=%D0%B0%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%BC%D0%B0%D1%82%D0%BE%D0%B2_%D1%82%D1%8B_%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD_%D0%B1%D1%8B%D1%82%D1%8C_%D0%B3%D0%B5%D1%80%D0%BE%D0%B5%D0%BC_720p_.mp4&quot; type=&quot;video/mp4&quot; /&gt;
&lt;a href=&quot;https://wwoss.ru/lib/exe/fetch.php?media=%D0%B0%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%BC%D0%B0%D1%82%D0%BE%D0%B2_%D1%82%D1%8B_%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD_%D0%B1%D1%8B%D1%82%D1%8C_%D0%B3%D0%B5%D1%80%D0%BE%D0%B5%D0%BC_720p_.mp4&quot; class=&quot;media mediafile mf_mp4&quot; title=&quot;алексей_матов_ты_назначен_быть_героем_720p_.mp4 (30.2 MB)&quot;&gt;алексей_матов_ты_назначен_быть_героем&lt;/a&gt;&lt;/video&gt;

&lt;/p&gt;

&lt;p&gt;

&lt;iframe src=&quot;https://yoomoney.ru/quickpay/fundraise/button?billNumber=179QH4MPCHL.241222&amp;&quot; width=&quot;330&quot; height=&quot;50&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot; scrolling=&quot;no&quot;&gt;&lt;/iframe&gt;

&lt;/p&gt;

&lt;p&gt;

&lt;iframe width=&quot;100%&quot; height=570px  src=&quot;./demo/code/blender3d_demos/blender3d_demo.html&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0432\u0438\u0434\u0435\u043e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0441\u0442\u0430\u0432\u043a\u0430_\u0432\u0438\u0434\u0435\u043e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:56,&amp;quot;secid&amp;quot;:73,&amp;quot;range&amp;quot;:&amp;quot;55096-56110&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit74&quot; id=&quot;вставка_html_страниц&quot;&gt;Вставка HTML страниц&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://wwoss.ru/lib/images/smileys/exclaim.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:!:&quot; /&gt; при установленном плагине &lt;strong&gt;htmlok&lt;/strong&gt;
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=syntax.my&amp;amp;codeblock=57&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;HTTP&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code html4strict&quot;&gt;&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/iframe.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;iframe&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;450&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;style&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;width: 100%;&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;scrolling&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;no&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Untitled&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://www.wikipedia.org/&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;frameborder&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;no&amp;quot;&lt;/span&gt; loading&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;lazy&amp;quot;&lt;/span&gt; allowtransparency&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt; allowfullscreen&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/iframe.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;iframe&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;

&lt;iframe height=&quot;450&quot; style=&quot;width: 100%;&quot; scrolling=&quot;no&quot; title=&quot;Untitled&quot; src=&quot;https://www.wikipedia.org/&quot; frameborder=&quot;no&quot; loading=&quot;lazy&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&gt;
&lt;/iframe&gt;

&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=syntax.my&amp;amp;codeblock=58&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;ROOT&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code html4strict&quot;&gt;&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/iframe.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;iframe&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;425&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;350&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://www.openstreetmap.org/export/embed.html?bbox=32.78079986572266%2C68.9110048456202%2C33.3541488647461%2C69.02165991911951&amp;amp;amp;layer=mapnik&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;style&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;border: 1px solid black&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/iframe.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;iframe&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/br.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;br&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/small.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;small&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://www.openstreetmap.org/?#map=12/68.9664/33.0675&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;Посмотреть более крупную карту
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/small.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;small&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;

&lt;iframe width=&quot;425&quot; height=&quot;350&quot; src=&quot;https://www.openstreetmap.org/export/embed.html?bbox=32.78079986572266%2C68.9110048456202%2C33.3541488647461%2C69.02165991911951&amp;amp;layer=mapnik&quot; style=&quot;border: 1px solid black&quot;&gt;
&lt;/iframe&gt;
&lt;br/&gt;
&lt;small&gt;
&lt;a href=&quot;https://www.openstreetmap.org/?#map=12/68.9664/33.0675&quot;&gt;Посмотреть более крупную карту
&lt;/a&gt;
&lt;/small&gt;

&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=syntax.my&amp;amp;codeblock=59&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;Wiki&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code html4strict&quot;&gt;&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/iframe.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;iframe&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;300&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;style&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;width: 100%;&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;scrolling&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;no&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Untitled&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;./&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;frameborder&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;no&amp;quot;&lt;/span&gt; loading&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;lazy&amp;quot;&lt;/span&gt; allowtransparency&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt; allowfullscreen&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/iframe.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;iframe&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;

&lt;iframe height=&quot;300&quot; style=&quot;width: 100%;&quot; scrolling=&quot;no&quot; title=&quot;Untitled&quot; src=&quot;./&quot; frameborder=&quot;no&quot; loading=&quot;lazy&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&gt;
&lt;/iframe&gt;

&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=syntax.my&amp;amp;codeblock=60&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;HTML+CSS&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code html4strict&quot;&gt;&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/iframe.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;iframe&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;350&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;style&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;width: 100%;&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;scrolling&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;no&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Untitled&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;./demo/code/pages/tabbed/a.html&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;frameborder&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;no&amp;quot;&lt;/span&gt; loading&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;lazy&amp;quot;&lt;/span&gt; allowtransparency&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt; allowfullscreen&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/iframe.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;iframe&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;

&lt;iframe height=&quot;350&quot; style=&quot;width: 100%;&quot; scrolling=&quot;no&quot; title=&quot;Untitled&quot; src=&quot;./demo/code/pages/tabbed/a.html&quot; frameborder=&quot;no&quot; loading=&quot;lazy&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&gt;
&lt;/iframe&gt;
&lt;/iframe&gt;

&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=syntax.my&amp;amp;codeblock=61&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;HTML+CSS+JavaScript&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code html4strict&quot;&gt;&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/iframe.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;iframe&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;350&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;style&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;width: 100%;&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;scrolling&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;no&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Untitled&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;./demo/code/notebook/&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;frameborder&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;no&amp;quot;&lt;/span&gt; loading&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;lazy&amp;quot;&lt;/span&gt; allowtransparency&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt; allowfullscreen&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/iframe.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;iframe&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;

&lt;iframe height=&quot;350&quot; style=&quot;width: 100%;&quot; scrolling=&quot;no&quot; title=&quot;Untitled&quot; src=&quot;./demo/code/notebook/&quot; frameborder=&quot;no&quot; loading=&quot;lazy&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&gt;
&lt;/iframe&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0441\u0442\u0430\u0432\u043a\u0430 HTML \u0441\u0442\u0440\u0430\u043d\u0438\u0446&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0441\u0442\u0430\u0432\u043a\u0430_html_\u0441\u0442\u0440\u0430\u043d\u0438\u0446&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:57,&amp;quot;secid&amp;quot;:74,&amp;quot;range&amp;quot;:&amp;quot;56111-58830&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit75&quot; id=&quot;диаграммы&quot;&gt;Диаграммы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://wwoss.ru/lib/images/smileys/exclaim.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:!:&quot; /&gt; При установленном плагине diagram
&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;diagram&amp;gt;
| | | Dad |y| Mom | | |Dad=Папа|Mom=Мама
| |,|-|-|-|+|-|-|-|.| |
| Sys | |  Me | | Bro |Sys=Сестра|Bro=Брат
| |,|-|-|-|(||||| |
| AAA |-| BBB |AAA=&amp;lt;fc #22b14c&amp;gt;**примеры**&amp;lt;/fc&amp;gt;|BBB=1&amp;lt;sup&amp;gt;st&amp;lt;/sup&amp;gt; верхний //регистр// и &amp;lt;del&amp;gt;ссылка&amp;lt;/del&amp;gt; (see [[wp&amp;gt;Branch]])
| |:| | | | | |
| |L|~|~| CCC |CCC=2&amp;lt;sub&amp;gt;nd&amp;lt;/sub&amp;gt; &amp;lt;fc #ed1c24&amp;gt;нижний регистр&amp;lt;/fc&amp;gt;\\ **(жирный текст)**
&amp;lt;/diagram&amp;gt;&lt;/pre&gt;

&lt;table class=&quot;diagram&quot;&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;Папа&lt;/td&gt;
		&lt;td class=&quot;d-bbd&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbd&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;Мама&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;Сестра&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;Me&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;Брат&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;&lt;span style=&quot;color:#22b14c;&quot;&gt;&lt;strong&gt;примеры&lt;/strong&gt;&lt;/span&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;1&lt;sup&gt;st&lt;/sup&gt; верхний &lt;em&gt;регистр&lt;/em&gt; и &lt;del&gt;ссылка&lt;/del&gt; (see &lt;a href=&quot;https://en.wikipedia.org/wiki/Branch&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/Branch&quot;&gt;Branch&lt;/a&gt;)&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brd&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brd&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brd&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbd&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbd&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbd&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbd&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbd&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;2&lt;sub&gt;nd&lt;/sub&gt; &lt;span style=&quot;color:#ed1c24;&quot;&gt;нижний регистр&lt;/span&gt;&lt;br/&gt;
&lt;strong&gt;(жирный текст)&lt;/strong&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;diagram&amp;gt;
| AAA | | | | |F|~|~|~|7| |AAA{border-color:blue;background-color:lightgreen}=Border is blue,\\ background is lightgreen
| |!| | | | | CCC | | DDD |CCC{border-color:#a9c}=Border is #a9c,\\ background is transparent|DDD{border-color:silver;background-color:silver;}=Border is silver,\\ background is silver
| BBB | | | | | | | | | | |BBB{border-color:rgb(0%,50%,0%);background-color:#abcdef}=Border is green,\\ background is #abcdef
&amp;lt;/diagram&amp;gt;&lt;/pre&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;table class=&quot;diagram&quot;&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; style=&quot;border-color: blue; background-color: lightgreen;&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;Border is blue,&lt;br/&gt;
background is lightgreen&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbd&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbd&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbd&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbd&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbd&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbd&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbd&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbd&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brd&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brd&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; style=&quot;border-color: #a9c;&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;Border is #a9c,&lt;br/&gt;
background is transparent&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; style=&quot;border-color: silver; background-color: silver;&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;Border is silver,&lt;br/&gt;
background is silver&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; style=&quot;border-color: rgb(0%,50%,0%); background-color: #abcdef;&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;Border is green,&lt;br/&gt;
background is #abcdef&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
Диаграмма без рамки с картинками
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;diagram&amp;gt;
|AAA||AAA{text-align:left;border-color:white}={{fa&amp;gt;folder?}} Handler
|)|BBB|BBB{text-align:left;border-color:white}={{fa&amp;gt;file?}} AbstractRewriter.php
|)|CCC|CCC{text-align:left;border-color:white}={{fa&amp;gt;file?}} Block.php
|)|DDD|DDD{text-align:left;border-color:white}={{fa&amp;gt;file?}} Lists.php
|)|EEE|EEE{text-align:left;border-color:white}={{fa&amp;gt;file?}} Nest.php
|)|FFF|FFF{text-align:left;border-color:white}={{fa&amp;gt;file?}} ReWriterInterface.php
|)|GGG|GGG{text-align:left;border-color:white}={{fa&amp;gt;file?}} Table.php
|)|KKK|KKK{text-align:left;border-color:white}={{fa&amp;gt;file?}} CallWriter.php
|)|LLL|LLL{text-align:left;border-color:white}={{fa&amp;gt;file?}} CallWriterInterface.php
|)|MMM|MMM{text-align:left;border-color:white}={{fa&amp;gt;file?}} Preformatted.php
|`|NNN|NNN{text-align:left;border-color:white}={{fa&amp;gt;file?}} Quote.php
&amp;lt;/diagram&amp;gt;&lt;/pre&gt;

&lt;table class=&quot;diagram&quot;&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-sh&quot;&gt;&lt;div /&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; style=&quot;text-align: left; border-color: white;&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;&lt;i class=&quot;dw-icons fa fa-folder&quot; style=&quot;font-size:16px&quot; title=&quot;&quot;&gt;&lt;/i&gt; Handler&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; style=&quot;text-align: left; border-color: white;&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;&lt;i class=&quot;dw-icons fa fa-file&quot; style=&quot;font-size:16px&quot; title=&quot;&quot;&gt;&lt;/i&gt; AbstractRewriter.php&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; style=&quot;text-align: left; border-color: white;&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;&lt;i class=&quot;dw-icons fa fa-file&quot; style=&quot;font-size:16px&quot; title=&quot;&quot;&gt;&lt;/i&gt; Block.php&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; style=&quot;text-align: left; border-color: white;&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;&lt;i class=&quot;dw-icons fa fa-file&quot; style=&quot;font-size:16px&quot; title=&quot;&quot;&gt;&lt;/i&gt; Lists.php&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; style=&quot;text-align: left; border-color: white;&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;&lt;i class=&quot;dw-icons fa fa-file&quot; style=&quot;font-size:16px&quot; title=&quot;&quot;&gt;&lt;/i&gt; Nest.php&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; style=&quot;text-align: left; border-color: white;&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;&lt;i class=&quot;dw-icons fa fa-file&quot; style=&quot;font-size:16px&quot; title=&quot;&quot;&gt;&lt;/i&gt; ReWriterInterface.php&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; style=&quot;text-align: left; border-color: white;&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;&lt;i class=&quot;dw-icons fa fa-file&quot; style=&quot;font-size:16px&quot; title=&quot;&quot;&gt;&lt;/i&gt; Table.php&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; style=&quot;text-align: left; border-color: white;&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;&lt;i class=&quot;dw-icons fa fa-file&quot; style=&quot;font-size:16px&quot; title=&quot;&quot;&gt;&lt;/i&gt; CallWriter.php&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; style=&quot;text-align: left; border-color: white;&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;&lt;i class=&quot;dw-icons fa fa-file&quot; style=&quot;font-size:16px&quot; title=&quot;&quot;&gt;&lt;/i&gt; CallWriterInterface.php&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; style=&quot;text-align: left; border-color: white;&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;&lt;i class=&quot;dw-icons fa fa-file&quot; style=&quot;font-size:16px&quot; title=&quot;&quot;&gt;&lt;/i&gt; Preformatted.php&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td class=&quot;d-brs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-bbs&quot;&gt;&lt;/td&gt;
		&lt;td class=&quot;d-b&quot; style=&quot;text-align: left; border-color: white;&quot; colspan=&quot;6&quot; rowspan=&quot;2&quot;&gt;&lt;i class=&quot;dw-icons fa fa-file&quot; style=&quot;font-size:16px&quot; title=&quot;&quot;&gt;&lt;/i&gt; Quote.php&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td class=&quot;d-sv&quot;&gt;&lt;div /&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:62,&amp;quot;secid&amp;quot;:75,&amp;quot;range&amp;quot;:&amp;quot;58831-62521&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit76&quot; id=&quot;звезды&quot;&gt;Звезды&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://wwoss.ru/lib/images/smileys/exclaim.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:!:&quot; /&gt; При установленном плагине Stars2
&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{{stars&amp;gt;num}}
{{stars&amp;gt;}}
{{stars&amp;gt;-1/5}}
{{stars&amp;gt;-5/5}}
{{stars&amp;gt;1/5}}
{{stars&amp;gt;2/5}}
{{stars&amp;gt;3/5}}
{{stars&amp;gt;4/5}}
{{stars&amp;gt;5/5}}
{{stars&amp;gt;5.5/7}}
{{stars&amp;gt;700/1000}}&lt;/pre&gt;

&lt;p&gt;
4.5/7&lt;br/&gt;

-4/6
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0432\u0435\u0437\u0434\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0432\u0435\u0437\u0434\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:65,&amp;quot;secid&amp;quot;:76,&amp;quot;range&amp;quot;:&amp;quot;62522-62822&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit77&quot; id=&quot;скрытый_текст&quot;&gt;Скрытый текст&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://wwoss.ru/lib/images/smileys/exclaim.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:!:&quot; /&gt; При установленном плагине Details Tag
&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;details&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;summary&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;«Подробности»&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;summary&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
Скрытый текст
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;details&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;details&gt;&lt;summary&gt;«Подробности»&lt;/summary&gt;
&lt;p&gt;
Скрытый текст
&lt;/p&gt;
&lt;/details&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;details open&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;summary&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;«Подробности»&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;summary&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
Скрытый текст
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;details&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;details open&gt;&lt;summary&gt;«Подробности»&lt;/summary&gt;
&lt;p&gt;
Скрытый текст
&lt;/p&gt;
&lt;/details&gt;
&lt;p&gt;
&lt;img src=&quot;https://wwoss.ru/lib/images/smileys/exclaim.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:!:&quot; /&gt; При установленном плагине StepByStep
&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Вот еще информация
о последней книге, которую я прочитал.
&lt;/p&gt;

&lt;p&gt;
&lt;div class=&quot;stepbystep&quot;&gt;
&lt;button id=&quot;step_1_open_это_история_о&quot; class=&quot;stepbystep_collapsible&quot;&gt;Step 1 | open | Это история о...&lt;/button&gt;
&lt;div class=&quot;stepbystep_content&quot;&gt;
&lt;p&gt;

…здесь можно писать много
о содержании
&lt;/p&gt;

&lt;p&gt;
Lorem ipsum dolor сидеть amet…
&lt;/p&gt;

&lt;p&gt;
&lt;div class=&quot;stepbystep&quot;&gt;
&lt;button id=&quot;следующий_раздел_соде&quot; class=&quot;stepbystep_collapsible&quot;&gt;Следующий раздел содержит спойлеры...&lt;/button&gt;
&lt;div class=&quot;stepbystep_content&quot;&gt;
&lt;p&gt;

Duis autem vel eum iriure…

&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/p&gt;

&lt;p&gt;
Ut wisi enim ad minim veniam, …

&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/p&gt;

&lt;p&gt;
Мне это очень понравилось!
&lt;/p&gt;

&lt;p&gt;
&lt;div class=&quot;stepbystep&quot;&gt;
&lt;button id=&quot;open_джордж_оруэлл_1984_по&quot; class=&quot;stepbystep_collapsible&quot;&gt;open | Джордж Оруэлл: 1984 | | (подробнее)&lt;/button&gt;
&lt;div class=&quot;stepbystep_content&quot;&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;table sectionedit78&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Название:&lt;/th&gt;&lt;td class=&quot;col1&quot;&gt;1984 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Автор:&lt;/th&gt;&lt;td class=&quot;col1&quot;&gt;Оруэлл, Джордж&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table10&amp;quot;,&amp;quot;secid&amp;quot;:78,&amp;quot;range&amp;quot;:&amp;quot;63962-64029&amp;quot;} --&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/p&gt;

&lt;p&gt;
Начало: 
&lt;div class=&quot;stepbystep&quot;&gt;
&lt;button id=&quot;новость&quot; class=&quot;stepbystep_collapsible active&quot;&gt;Новость &lt;/button&gt;
&lt;div class=&quot;stepbystep_content&quot; style=&quot;max-height: fit-content;&quot;&gt;
&lt;p&gt;

Содержание content
Конец 

&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.dokuwiki.org/plugin:stepbystep#table&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:stepbystep#table&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.dokuwiki.org/plugin:stepbystep#table&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043a\u0440\u044b\u0442\u044b\u0439_\u0442\u0435\u043a\u0441\u0442&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:66,&amp;quot;secid&amp;quot;:77,&amp;quot;range&amp;quot;:&amp;quot;62823-64167&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit79&quot; id=&quot;ширина_столбцов_таблицы&quot;&gt;Ширина столбцов таблицы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://wwoss.ru/lib/images/smileys/exclaim.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:!:&quot; /&gt; При установленном плагине Tablelayout
&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{{tablelayout?colwidth=&amp;quot;100px,200px&amp;quot;&amp;amp;rowsHeaderSource=2&amp;amp;rowsVisible=2&amp;amp;float=left}}
^ header 1 ^ header 2 ^
| cell A1 | cell B1 |
| cell A2 | cell B2 |
| cell A3 | cell B3 |&lt;/pre&gt;
&lt;div class=&#039;plugin_tablelayout_placeholder&#039; data-tablelayout=&quot;{&amp;quot;colwidth&amp;quot;:[&amp;quot;100px&amp;quot;,&amp;quot;200px&amp;quot;],&amp;quot;rowsHeaderSource&amp;quot;:&amp;quot;2&amp;quot;,&amp;quot;rowsVisible&amp;quot;:&amp;quot;2&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;}&quot;&gt;&lt;/div&gt;&lt;div class=&quot;table sectionedit80&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; header 1 &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; header 2 &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; cell A1 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; cell B1 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; cell A2 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; cell B2 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; cell A3 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; cell B3 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table11&amp;quot;,&amp;quot;secid&amp;quot;:80,&amp;quot;range&amp;quot;:&amp;quot;64569-64658&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0438\u0440\u0438\u043d\u0430 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0438\u0440\u0438\u043d\u0430_\u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432_\u0442\u0430\u0431\u043b\u0438\u0446\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:68,&amp;quot;secid&amp;quot;:79,&amp;quot;range&amp;quot;:&amp;quot;64168-64662&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit81&quot; id=&quot;меню-вкладки_на_странице&quot;&gt;Меню-вкладки на странице&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

&lt;style&gt;
  body_new {
    font-family: system-ui, -apple-system, &quot;Segoe UI&quot;, Roboto, &quot;Helvetica Neue&quot;, &quot;Noto Sans&quot;, &quot;Liberation Sans&quot;, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;, &quot;Noto Color Emoji&quot;;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    margin: 0;
    color: #212529;
    background-color: #fff;
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: transparent;
  }

  .container_new {
    margin: 1rem;
    padding: 1.5rem;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
  }

  .tab_new {
    display: flex;
    flex-direction: column;
  }

  .tab-nav_new &gt; input[type=&quot;radio&quot;] {
    display: none;
  }

  .tab-content_new {
    display: none;
  }

  #content-1:has(~ .tab-nav_new &gt; #tab-btn-1:checked),
  #content-2:has(~ .tab-nav_new &gt; #tab-btn-2:checked),
  #content-3:has(~ .tab-nav_new &gt; #tab-btn-3:checked) {
    display: block;
  }

  .tab-nav_new {
    display: flex;
    flex-wrap: wrap;
    border-bottom: 1px solid #dee2e6;
    margin-bottom: 1rem;
    order: -1;
  }

  .tab-nav_new &gt; label {
    display: block;
    padding: 0.5rem 1rem;
    color: #0d6efd;
    text-decoration: none;
    background: 0 0;
    border: 1px solid transparent;
    margin-bottom: -1px;
    border-top-left-radius: 0.375rem;
    border-top-right-radius: 0.375rem;
    -webkit-appearance: button;
    transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out;
  }

  .tab-nav_new &gt; input[type=&quot;radio&quot;]:checked + label {
    color: #000;
    background-color: #fff;
    border-color: #dee2e6 #dee2e6 #fff;
    cursor: default;
  }
&lt;/style&gt;
&lt;body_new&gt;
&lt;div class=&quot;container1_new&quot;&gt;
  &lt;div class=&quot;tab_new&quot;&gt;
    &lt;div class=&quot;tab-content_new&quot; id=&quot;content-1&quot;&gt;
      Содержимое 1... Lorem ipsum (/ˌlɔː.rəm ˈɪp.səm/ LOR-əm IP-səm) is a dummy or placeholder text commonly used in graphic design, publishing, and web development. Its purpose is to permit a page layout to be designed, independently of the copy that will subsequently populate it, or to demonstrate various fonts of a typeface without meaningful text that could be distracting.
    &lt;/div&gt;
    &lt;div class=&quot;tab-content_new&quot; id=&quot;content-2&quot;&gt;
      Содержимое 2... Lorem ipsum dolor sit, amet consectetur adipisicing elit. Similique eaque iure debitis nostrum,
      vero ad totam ratione sequi! Suscipit, labore repellat cum soluta ullam dignissimos perspiciatis sequi rerum
      sapiente ex.
    &lt;/div&gt;
    &lt;div class=&quot;tab-content_new&quot; id=&quot;content-3&quot;&gt;
      Содержимое 3... Lorem ipsum dolor sit, amet consectetur adipisicing elit. Similique eaque iure debitis nostrum,
      vero ad totam ratione sequi! Suscipit, labore repellat cum soluta ullam dignissimos perspiciatis sequi rerum
      sapiente ex.
    &lt;/div&gt;
    &lt;div class=&quot;tab-nav_new&quot;&gt;
      &lt;input checked id=&quot;tab-btn-1&quot; name=&quot;tab-btn&quot; type=&quot;radio&quot; value=&quot;&quot;&gt;
      &lt;label for=&quot;tab-btn-1&quot;&gt;Вкладка 1&lt;/label&gt;
      &lt;input id=&quot;tab-btn-2&quot; name=&quot;tab-btn&quot; type=&quot;radio&quot; value=&quot;&quot;&gt;
      &lt;label for=&quot;tab-btn-2&quot;&gt;Вкладка 2&lt;/label&gt;
      &lt;input id=&quot;tab-btn-3&quot; name=&quot;tab-btn&quot; type=&quot;radio&quot; value=&quot;&quot;&gt;
      &lt;label for=&quot;tab-btn-3&quot;&gt;Вкладка 3&lt;/label&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/body_new&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041c\u0435\u043d\u044e-\u0432\u043a\u043b\u0430\u0434\u043a\u0438 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043c\u0435\u043d\u044e-\u0432\u043a\u043b\u0430\u0434\u043a\u0438_\u043d\u0430_\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:69,&amp;quot;secid&amp;quot;:81,&amp;quot;range&amp;quot;:&amp;quot;64663-68002&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit82&quot; id=&quot;rss_atom_feed_aggregation&quot;&gt;RSS/ATOM Feed Aggregation&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;RSS\/ATOM Feed Aggregation&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;rss_atom_feed_aggregation&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:69,&amp;quot;secid&amp;quot;:82,&amp;quot;range&amp;quot;:&amp;quot;68003-68041&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit83&quot; id=&quot;агрегация_каналов_rss_atom&quot;&gt;Агрегация каналов RSS/ATOM&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Докувики может интегрировать данные из внешних XML-каналов. Для анализа XML-каналов, используется &lt;a href=&quot;http://simplepie.org/&quot; class=&quot;urlextern&quot; title=&quot;http://simplepie.org/&quot; rel=&quot;ugc nofollow&quot;&gt;SimplePie&lt;/a&gt;. Все форматы, понятные SimplePie, также могут быть использованы в Докувики. Вы можете влиять на рендеринг с помощью нескольких дополнительных параметров, разделенных пробелами:
&lt;/p&gt;
&lt;div class=&quot;table sectionedit84&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot;&gt; Параметр  &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; Описание &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; any number &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Отображается максимальное количество элиментов, по умолчанию 8 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; reverse    &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Сначала отобразите последние элементы в ленте &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; author     &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Показывать имена авторов элементов &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; date       &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Показывать даты элиментов &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; description&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Покажите описание элиментов. Если &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; отключен, все теги будут удалены &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; nosort     &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Не сортируйте элементы в ленте &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;em&gt;n&lt;/em&gt;[dhm] &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Период обновления, где d=дни, h=часы, m=минуты. (например 12h = 12 часов). &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table12&amp;quot;,&amp;quot;secid&amp;quot;:84,&amp;quot;range&amp;quot;:&amp;quot;68627-69409&amp;quot;} --&gt;
&lt;p&gt;
Период обновления по умолчанию равен 4 часам. Любое значение ниже 10 минут будет рассматриваться как 10 минут. Докувики обычно пытается предоставить кэшированную версию страницы, очевидно, что это неуместно, когда страница содержит динамический внешний контент. Параметр указывает Докувики повторно отобразить страницу, если прошло больше &lt;em&gt;периода обновления&lt;/em&gt; с момента последнего отображения страницы.
&lt;/p&gt;

&lt;p&gt;
По умолчанию лента будет отсортирована по дате, сначала по самым новым элементам. Вы можете сначала отсортировать его по возрасту, используя параметр «reverse», или отобразить ленту как есть с «nosort».
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Пример:&lt;/strong&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{{rss&amp;gt;http://slashdot.org/index.rss 5 author date 1h }}&lt;/pre&gt;
&lt;ul class=&quot;rss&quot;&gt;&lt;li&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://mobile.slashdot.org/story/26/08/19/2141221/fcc-abolishes-gigabit-speed-goal-suggesting-it-is-unfair-to-slower-technologies?utm_source=rss1.0mainlinkanon&amp;amp;utm_medium=feed&quot; class=&quot;urlextern&quot; title=&quot;https://mobile.slashdot.org/story/26/08/19/2141221/fcc-abolishes-gigabit-speed-goal-suggesting-it-is-unfair-to-slower-technologies?utm_source=rss1.0mainlinkanon&amp;amp;utm_medium=feed&quot; rel=&quot;ugc nofollow&quot;&gt;FCC Abolishes Gigabit Speed Goal, Suggesting It Is Unfair To Slower Technologies&lt;/a&gt;  — BeauHD (2026/08/20 19:00)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://yro.slashdot.org/story/26/08/19/2322222/japan-to-require-ai-firms-to-disclose-training-data?utm_source=rss1.0mainlinkanon&amp;amp;utm_medium=feed&quot; class=&quot;urlextern&quot; title=&quot;https://yro.slashdot.org/story/26/08/19/2322222/japan-to-require-ai-firms-to-disclose-training-data?utm_source=rss1.0mainlinkanon&amp;amp;utm_medium=feed&quot; rel=&quot;ugc nofollow&quot;&gt;Japan to Require AI Firms to Disclose Training Data&lt;/a&gt;  — BeauHD (2026/08/20 18:00)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://hardware.slashdot.org/story/26/08/19/2231240/new-study-challenges-common-assumptions-about-screen-time-for-kids?utm_source=rss1.0mainlinkanon&amp;amp;utm_medium=feed&quot; class=&quot;urlextern&quot; title=&quot;https://hardware.slashdot.org/story/26/08/19/2231240/new-study-challenges-common-assumptions-about-screen-time-for-kids?utm_source=rss1.0mainlinkanon&amp;amp;utm_medium=feed&quot; rel=&quot;ugc nofollow&quot;&gt;New Study Challenges Common Assumptions About Screen Time For Kids&lt;/a&gt;  — BeauHD (2026/08/20 14:00)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://science.slashdot.org/story/26/08/19/2213259/rescue-mission-is-called-off-for-nasas-aging-swift-space-telescope?utm_source=rss1.0mainlinkanon&amp;amp;utm_medium=feed&quot; class=&quot;urlextern&quot; title=&quot;https://science.slashdot.org/story/26/08/19/2213259/rescue-mission-is-called-off-for-nasas-aging-swift-space-telescope?utm_source=rss1.0mainlinkanon&amp;amp;utm_medium=feed&quot; rel=&quot;ugc nofollow&quot;&gt;Rescue Mission Is Called Off For NASA&amp;#039;s Aging Swift Space Telescope&lt;/a&gt;  — BeauHD (2026/08/20 10:00)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://tech.slashdot.org/story/26/08/19/2329222/whistleblower-arturo-bejar-leads-testimony-in-landmark-trial-against-meta?utm_source=rss1.0mainlinkanon&amp;amp;utm_medium=feed&quot; class=&quot;urlextern&quot; title=&quot;https://tech.slashdot.org/story/26/08/19/2329222/whistleblower-arturo-bejar-leads-testimony-in-landmark-trial-against-meta?utm_source=rss1.0mainlinkanon&amp;amp;utm_medium=feed&quot; rel=&quot;ugc nofollow&quot;&gt;Whistleblower Arturo Bejar Leads Testimony In Landmark Trial Against Meta&lt;/a&gt;  — BeauHD (2026/08/20 06:30)&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0410\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u044f \u043a\u0430\u043d\u0430\u043b\u043e\u0432 RSS\/ATOM&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u044f_\u043a\u0430\u043d\u0430\u043b\u043e\u0432_rss_atom&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:69,&amp;quot;secid&amp;quot;:83,&amp;quot;range&amp;quot;:&amp;quot;68042-70644&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit85&quot; id=&quot;управляющие_макросы&quot;&gt;Управляющие макросы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Некоторый синтаксис влияет на то, как «Докувики» обрабатывает статьи без создания каких-либо результатов для себя. Доступны следующие макросы:
&lt;/p&gt;
&lt;div class=&quot;table sectionedit86&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot;&gt; Макрос          &lt;/th&gt;&lt;th class=&quot;col1 leftalign&quot;&gt; Описание      &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; ~~NOTOC~~   &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; Если этот макрос присутствует в статье, оглавление не будет создано.  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; ~~NOCACHE~~ &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; «Докувики» помещает всё выводимое в кэш по умолчанию. Иногда это нежелательно (например, когда выше был использован синтаксис &amp;lt;php&amp;gt;), добавление этого макроса заставит «Докувики» обрабатывать статью при каждом вызове.  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table13&amp;quot;,&amp;quot;secid&amp;quot;:86,&amp;quot;range&amp;quot;:&amp;quot;70961-71583&amp;quot;} --&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;
&lt;details&gt;&lt;summary&gt;#Хештеги&lt;/summary&gt;
&lt;p&gt;
Dokuwiki
Синтаксис форматирования
Форматирование текста в Dokuwiki
&amp;lt;meta name=«description» content=«Узнайте о нестандартных способах форматирования текста в Dokuwiki»&amp;gt; 
&lt;/p&gt;
&lt;/details&gt;&lt;pre class=&quot;code&quot;&gt;{{description&amp;gt;Узнайте о нестандартных способах форматирования текста в Dokuwiki}}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u043c\u0430\u043a\u0440\u043e\u0441\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435_\u043c\u0430\u043a\u0440\u043e\u0441\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:69,&amp;quot;secid&amp;quot;:85,&amp;quot;range&amp;quot;:&amp;quot;70645-72188&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit87&quot; id=&quot;синтаксические_плагины&quot;&gt;Синтаксические плагины&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Синтаксис «Докувики» может быть расширен за счёт &lt;a href=&quot;https://wwoss.ru/doku.php?id=ru:plugins&quot; class=&quot;wikilink2&quot; title=&quot;ru:plugins&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;ru:plugins&quot;&gt;плагинов&lt;/a&gt;. Как их устанавливать и использовать — описывается на страницах плагинов. Следующие плагины доступны в инсталляции «Докувики» на этом сайте:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:autotooltip&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:autotooltip&quot; rel=&quot;ugc nofollow&quot;&gt;Auto-Tooltip&lt;/a&gt; &lt;em&gt;2026-01-15&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#117;&amp;#110;&amp;#100;&amp;#105;&amp;#115;&amp;#99;&amp;#108;&amp;#111;&amp;#115;&amp;#101;&amp;#100;&amp;#64;&amp;#117;&amp;#110;&amp;#100;&amp;#105;&amp;#115;&amp;#99;&amp;#108;&amp;#111;&amp;#115;&amp;#101;&amp;#100;&amp;#46;&amp;#117;&amp;#110;&amp;#100;&amp;#105;&amp;#115;&amp;#99;&amp;#108;&amp;#111;&amp;#115;&amp;#101;&amp;#100;&quot; class=&quot;mail&quot; title=&quot;&amp;#117;&amp;#110;&amp;#100;&amp;#105;&amp;#115;&amp;#99;&amp;#108;&amp;#111;&amp;#115;&amp;#101;&amp;#100;&amp;#64;&amp;#117;&amp;#110;&amp;#100;&amp;#105;&amp;#115;&amp;#99;&amp;#108;&amp;#111;&amp;#115;&amp;#101;&amp;#100;&amp;#46;&amp;#117;&amp;#110;&amp;#100;&amp;#105;&amp;#115;&amp;#99;&amp;#108;&amp;#111;&amp;#115;&amp;#101;&amp;#100;&quot;&gt;Eli Fenton&lt;/a&gt;&lt;br/&gt;
Syntax and helper plugins for tooltips, including automatically generated tips based on page abstract.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.dokuwiki.org/plugin:cellbg&quot; class=&quot;urlextern&quot; title=&quot;http://www.dokuwiki.org/plugin:cellbg&quot; rel=&quot;ugc nofollow&quot;&gt;Cells background color plugin&lt;/a&gt; &lt;em&gt;2013-10-09&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#100;&amp;#114;&amp;#52;&amp;#107;&amp;#101;&amp;#64;&amp;#100;&amp;#114;&amp;#52;&amp;#107;&amp;#101;&amp;#46;&amp;#110;&amp;#101;&amp;#116;&quot; class=&quot;mail&quot; title=&quot;&amp;#100;&amp;#114;&amp;#52;&amp;#107;&amp;#101;&amp;#64;&amp;#100;&amp;#114;&amp;#52;&amp;#107;&amp;#101;&amp;#46;&amp;#110;&amp;#101;&amp;#116;&quot;&gt;dr4Ke&lt;/a&gt;&lt;br/&gt;
Sets background of a cell with a specific color&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:codeprettify&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:codeprettify&quot; rel=&quot;ugc nofollow&quot;&gt;Code Prettifier&lt;/a&gt; &lt;em&gt;2023-09-16&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#38;&amp;#108;&amp;#116;&amp;#59;&amp;#115;&amp;#97;&amp;#104;&amp;#97;&amp;#114;&amp;#97;&amp;#46;&amp;#115;&amp;#97;&amp;#116;&amp;#111;&amp;#115;&amp;#104;&amp;#105;&amp;#64;&amp;#103;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&amp;#38;&amp;#103;&amp;#116;&amp;#59;&quot; class=&quot;mail&quot; title=&quot;&amp;#38;&amp;#108;&amp;#116;&amp;#59;&amp;#115;&amp;#97;&amp;#104;&amp;#97;&amp;#114;&amp;#97;&amp;#46;&amp;#115;&amp;#97;&amp;#116;&amp;#111;&amp;#115;&amp;#104;&amp;#105;&amp;#64;&amp;#103;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&amp;#38;&amp;#103;&amp;#116;&amp;#59;&quot;&gt;Satoshi Sahara&lt;/a&gt;&lt;br/&gt;
syntax highlighting of source code snippets in wiki page using Javascript code prettifier&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:dbquery&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:dbquery&quot; rel=&quot;ugc nofollow&quot;&gt;dbquery plugin&lt;/a&gt; &lt;em&gt;2025-07-24&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#100;&amp;#111;&amp;#107;&amp;#117;&amp;#119;&amp;#105;&amp;#107;&amp;#105;&amp;#64;&amp;#99;&amp;#111;&amp;#115;&amp;#109;&amp;#111;&amp;#99;&amp;#111;&amp;#100;&amp;#101;&amp;#46;&amp;#100;&amp;#101;&quot; class=&quot;mail&quot; title=&quot;&amp;#100;&amp;#111;&amp;#107;&amp;#117;&amp;#119;&amp;#105;&amp;#107;&amp;#105;&amp;#64;&amp;#99;&amp;#111;&amp;#115;&amp;#109;&amp;#111;&amp;#99;&amp;#111;&amp;#100;&amp;#101;&amp;#46;&amp;#100;&amp;#101;&quot;&gt;Andreas Gohr&lt;/a&gt;&lt;br/&gt;
Display query results from a database&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:description&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:description&quot; rel=&quot;ugc nofollow&quot;&gt;description plugin&lt;/a&gt; &lt;em&gt;2025-05-16&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#109;&amp;#112;&amp;#114;&amp;#105;&amp;#110;&amp;#115;&amp;#64;&amp;#117;&amp;#115;&amp;#101;&amp;#114;&amp;#115;&amp;#46;&amp;#115;&amp;#102;&amp;#46;&amp;#110;&amp;#101;&amp;#116;&quot; class=&quot;mail&quot; title=&quot;&amp;#109;&amp;#112;&amp;#114;&amp;#105;&amp;#110;&amp;#115;&amp;#64;&amp;#117;&amp;#115;&amp;#101;&amp;#114;&amp;#115;&amp;#46;&amp;#115;&amp;#102;&amp;#46;&amp;#110;&amp;#101;&amp;#116;&quot;&gt;Mark C. Prins, Ikuo Obataya, Matthias Schulte&lt;/a&gt;&lt;br/&gt;
Add a specified string to a description meta header&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:diagrams&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:diagrams&quot; rel=&quot;ugc nofollow&quot;&gt;Diagrams plugin&lt;/a&gt; &lt;em&gt;2025-10-15&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#100;&amp;#111;&amp;#107;&amp;#117;&amp;#119;&amp;#105;&amp;#107;&amp;#105;&amp;#64;&amp;#99;&amp;#111;&amp;#115;&amp;#109;&amp;#111;&amp;#99;&amp;#111;&amp;#100;&amp;#101;&amp;#46;&amp;#100;&amp;#101;&quot; class=&quot;mail&quot; title=&quot;&amp;#100;&amp;#111;&amp;#107;&amp;#117;&amp;#119;&amp;#105;&amp;#107;&amp;#105;&amp;#64;&amp;#99;&amp;#111;&amp;#115;&amp;#109;&amp;#111;&amp;#99;&amp;#111;&amp;#100;&amp;#101;&amp;#46;&amp;#100;&amp;#101;&quot;&gt;Innovakom + CosmoCode&lt;/a&gt;&lt;br/&gt;
Embed diagrams.net editor (formerly draw.io)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://nikita.melnichenko.name/projects/dokuwiki-diagram/index.php&quot; class=&quot;urlextern&quot; title=&quot;http://nikita.melnichenko.name/projects/dokuwiki-diagram/index.php&quot; rel=&quot;ugc nofollow&quot;&gt;Diagram plugin&lt;/a&gt; &lt;em&gt;2021-02-21&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#115;&amp;#117;&amp;#112;&amp;#112;&amp;#111;&amp;#114;&amp;#116;&amp;#64;&amp;#109;&amp;#101;&amp;#108;&amp;#110;&amp;#105;&amp;#99;&amp;#104;&amp;#101;&amp;#110;&amp;#107;&amp;#111;&amp;#46;&amp;#110;&amp;#97;&amp;#109;&amp;#101;&quot; class=&quot;mail&quot; title=&quot;&amp;#115;&amp;#117;&amp;#112;&amp;#112;&amp;#111;&amp;#114;&amp;#116;&amp;#64;&amp;#109;&amp;#101;&amp;#108;&amp;#110;&amp;#105;&amp;#99;&amp;#104;&amp;#101;&amp;#110;&amp;#107;&amp;#111;&amp;#46;&amp;#110;&amp;#97;&amp;#109;&amp;#101;&quot;&gt;Nikita Melnichenko&lt;/a&gt;&lt;br/&gt;
Constructs diagrams&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://dokuwiki.org/plugin:discussion&quot; class=&quot;urlextern&quot; title=&quot;https://dokuwiki.org/plugin:discussion&quot; rel=&quot;ugc nofollow&quot;&gt;discussion plugin&lt;/a&gt; &lt;em&gt;2021-12-31&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#109;&amp;#105;&amp;#99;&amp;#104;&amp;#97;&amp;#101;&amp;#108;&amp;#64;&amp;#99;&amp;#111;&amp;#110;&amp;#116;&amp;#101;&amp;#110;&amp;#116;&amp;#45;&amp;#115;&amp;#112;&amp;#97;&amp;#99;&amp;#101;&amp;#46;&amp;#100;&amp;#101;&quot; class=&quot;mail&quot; title=&quot;&amp;#109;&amp;#105;&amp;#99;&amp;#104;&amp;#97;&amp;#101;&amp;#108;&amp;#64;&amp;#99;&amp;#111;&amp;#110;&amp;#116;&amp;#101;&amp;#110;&amp;#116;&amp;#45;&amp;#115;&amp;#112;&amp;#97;&amp;#99;&amp;#101;&amp;#46;&amp;#100;&amp;#101;&quot;&gt;Michael Hamann, Gerrit Uitslag, Gina Häussge, Christopher Smith, Michael Klier, Esther Brunner, Matthias Schulte&lt;/a&gt;&lt;br/&gt;
Provides discussion funtionality for wiki pages&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://dokuwiki.org/&quot; class=&quot;urlextern&quot; title=&quot;https://dokuwiki.org/&quot; rel=&quot;ugc nofollow&quot;&gt;DokuTeaser Plugin&lt;/a&gt; &lt;em&gt;2016-01-16&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#97;&amp;#110;&amp;#100;&amp;#105;&amp;#64;&amp;#115;&amp;#112;&amp;#108;&amp;#105;&amp;#116;&amp;#98;&amp;#114;&amp;#97;&amp;#105;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&quot; class=&quot;mail&quot; title=&quot;&amp;#97;&amp;#110;&amp;#100;&amp;#105;&amp;#64;&amp;#115;&amp;#112;&amp;#108;&amp;#105;&amp;#116;&amp;#98;&amp;#114;&amp;#97;&amp;#105;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&quot;&gt;Andreas Gohr&lt;/a&gt;&lt;br/&gt;
A plugin for internal use on dokuwiki.org only&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:dw2pdf&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:dw2pdf&quot; rel=&quot;ugc nofollow&quot;&gt;Dw2Pdf plugin&lt;/a&gt; &lt;em&gt;2026-01-08&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#108;&amp;#46;&amp;#109;&amp;#105;&amp;#99;&amp;#99;&amp;#111;&amp;#64;&amp;#116;&amp;#105;&amp;#115;&amp;#99;&amp;#97;&amp;#108;&amp;#105;&amp;#46;&amp;#105;&amp;#116;&quot; class=&quot;mail&quot; title=&quot;&amp;#108;&amp;#46;&amp;#109;&amp;#105;&amp;#99;&amp;#99;&amp;#111;&amp;#64;&amp;#116;&amp;#105;&amp;#115;&amp;#99;&amp;#97;&amp;#108;&amp;#105;&amp;#46;&amp;#105;&amp;#116;&quot;&gt;Andreas Gohr and Luigi Micco&lt;/a&gt;&lt;br/&gt;
DokuWiki to PDF converter&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://github.com/mmedvede/dokuwiki-plugin-fontawesome&quot; class=&quot;urlextern&quot; title=&quot;http://github.com/mmedvede/dokuwiki-plugin-fontawesome&quot; rel=&quot;ugc nofollow&quot;&gt;fontawesome plugin&lt;/a&gt; &lt;em&gt;2013-10-10&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#109;&amp;#109;&amp;#101;&amp;#100;&amp;#118;&amp;#101;&amp;#100;&amp;#101;&amp;#64;&amp;#99;&amp;#115;&amp;#46;&amp;#117;&amp;#109;&amp;#108;&amp;#46;&amp;#101;&amp;#100;&amp;#117;&quot; class=&quot;mail&quot; title=&quot;&amp;#109;&amp;#109;&amp;#101;&amp;#100;&amp;#118;&amp;#101;&amp;#100;&amp;#101;&amp;#64;&amp;#99;&amp;#115;&amp;#46;&amp;#117;&amp;#109;&amp;#108;&amp;#46;&amp;#101;&amp;#100;&amp;#117;&quot;&gt;Mikhail Medvedev&lt;/a&gt;&lt;br/&gt;
Embed Font Awesome icons&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:gallery&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:gallery&quot; rel=&quot;ugc nofollow&quot;&gt;Gallery Plugin&lt;/a&gt; &lt;em&gt;2024-04-30&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#97;&amp;#110;&amp;#100;&amp;#105;&amp;#64;&amp;#115;&amp;#112;&amp;#108;&amp;#105;&amp;#116;&amp;#98;&amp;#114;&amp;#97;&amp;#105;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&quot; class=&quot;mail&quot; title=&quot;&amp;#97;&amp;#110;&amp;#100;&amp;#105;&amp;#64;&amp;#115;&amp;#112;&amp;#108;&amp;#105;&amp;#116;&amp;#98;&amp;#114;&amp;#97;&amp;#105;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&quot;&gt;Andreas Gohr&lt;/a&gt;&lt;br/&gt;
Creates a gallery of images from a namespace or RSS/ATOM feed&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://github.com/Sideboard/dokuwiki-plugin-htmldetailstag&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/Sideboard/dokuwiki-plugin-htmldetailstag&quot; rel=&quot;ugc nofollow&quot;&gt;HTML Details Tag Plugin&lt;/a&gt; &lt;em&gt;2021-03-18&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#100;&amp;#111;&amp;#107;&amp;#117;&amp;#119;&amp;#105;&amp;#107;&amp;#105;&amp;#64;&amp;#114;&amp;#101;&amp;#118;&amp;#111;&amp;#108;&amp;#117;&amp;#116;&amp;#105;&amp;#111;&amp;#110;&amp;#97;&amp;#114;&amp;#116;&amp;#115;&amp;#46;&amp;#100;&amp;#101;&quot; class=&quot;mail&quot; title=&quot;&amp;#100;&amp;#111;&amp;#107;&amp;#117;&amp;#119;&amp;#105;&amp;#107;&amp;#105;&amp;#64;&amp;#114;&amp;#101;&amp;#118;&amp;#111;&amp;#108;&amp;#117;&amp;#116;&amp;#105;&amp;#111;&amp;#110;&amp;#97;&amp;#114;&amp;#116;&amp;#115;&amp;#46;&amp;#100;&amp;#101;&quot;&gt;Sascha Klawohn&lt;/a&gt;&lt;br/&gt;
Use the HTML &amp;lt;details&amp;gt; and &amp;lt;summary&amp;gt; tag for toggling information&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:htmlmetatags&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:htmlmetatags&quot; rel=&quot;ugc nofollow&quot;&gt;htmlmetatags plugin&lt;/a&gt; &lt;em&gt;2024-03-04&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#104;&amp;#101;&amp;#105;&amp;#107;&amp;#111;&amp;#46;&amp;#104;&amp;#101;&amp;#105;&amp;#110;&amp;#122;&amp;#64;&amp;#115;&amp;#111;&amp;#102;&amp;#116;&amp;#50;&amp;#99;&amp;#46;&amp;#100;&amp;#101;&quot; class=&quot;mail&quot; title=&quot;&amp;#104;&amp;#101;&amp;#105;&amp;#107;&amp;#111;&amp;#46;&amp;#104;&amp;#101;&amp;#105;&amp;#110;&amp;#122;&amp;#64;&amp;#115;&amp;#111;&amp;#102;&amp;#116;&amp;#50;&amp;#99;&amp;#46;&amp;#100;&amp;#101;&quot;&gt;Heiko Heinz&lt;/a&gt;&lt;br/&gt;
Set html and open graph meta tags.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:htmlok&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:htmlok&quot; rel=&quot;ugc nofollow&quot;&gt;htmlok plugin&lt;/a&gt; &lt;em&gt;2023-05-10&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#115;&amp;#97;&amp;#103;&amp;#103;&amp;#105;&amp;#64;&amp;#103;&amp;#109;&amp;#120;&amp;#46;&amp;#100;&amp;#101;&quot; class=&quot;mail&quot; title=&quot;&amp;#115;&amp;#97;&amp;#103;&amp;#103;&amp;#105;&amp;#64;&amp;#103;&amp;#109;&amp;#120;&amp;#46;&amp;#100;&amp;#101;&quot;&gt;saggi, glen&lt;/a&gt;&lt;br/&gt;
Allows embed HTML and PHP&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.dokuwiki.org/plugin:icons&quot; class=&quot;urlextern&quot; title=&quot;http://www.dokuwiki.org/plugin:icons&quot; rel=&quot;ugc nofollow&quot;&gt;Icons Plugin&lt;/a&gt; &lt;em&gt;2024-10-30&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#103;&amp;#105;&amp;#117;&amp;#115;&amp;#101;&amp;#112;&amp;#112;&amp;#101;&amp;#46;&amp;#100;&amp;#105;&amp;#116;&amp;#101;&amp;#114;&amp;#108;&amp;#105;&amp;#122;&amp;#122;&amp;#105;&amp;#64;&amp;#103;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot; class=&quot;mail&quot; title=&quot;&amp;#103;&amp;#105;&amp;#117;&amp;#115;&amp;#101;&amp;#112;&amp;#112;&amp;#101;&amp;#46;&amp;#100;&amp;#105;&amp;#116;&amp;#101;&amp;#114;&amp;#108;&amp;#105;&amp;#122;&amp;#122;&amp;#105;&amp;#64;&amp;#103;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot;&gt;Giuseppe Di Terlizzi&lt;/a&gt;&lt;br/&gt;
Embed icons in Dokuwiki&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:info&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:info&quot; rel=&quot;ugc nofollow&quot;&gt;Info Plugin&lt;/a&gt; &lt;em&gt;2020-06-04&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#97;&amp;#110;&amp;#100;&amp;#105;&amp;#64;&amp;#115;&amp;#112;&amp;#108;&amp;#105;&amp;#116;&amp;#98;&amp;#114;&amp;#97;&amp;#105;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&quot; class=&quot;mail&quot; title=&quot;&amp;#97;&amp;#110;&amp;#100;&amp;#105;&amp;#64;&amp;#115;&amp;#112;&amp;#108;&amp;#105;&amp;#116;&amp;#98;&amp;#114;&amp;#97;&amp;#105;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&quot;&gt;Andreas Gohr&lt;/a&gt;&lt;br/&gt;
Displays information about various DokuWiki internals&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:meta&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:meta&quot; rel=&quot;ugc nofollow&quot;&gt;Meta plugin&lt;/a&gt; &lt;em&gt;2024-08-07&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#109;&amp;#105;&amp;#99;&amp;#104;&amp;#97;&amp;#101;&amp;#108;&amp;#64;&amp;#99;&amp;#111;&amp;#110;&amp;#116;&amp;#101;&amp;#110;&amp;#116;&amp;#45;&amp;#115;&amp;#112;&amp;#97;&amp;#99;&amp;#101;&amp;#46;&amp;#100;&amp;#101;&quot; class=&quot;mail&quot; title=&quot;&amp;#109;&amp;#105;&amp;#99;&amp;#104;&amp;#97;&amp;#101;&amp;#108;&amp;#64;&amp;#99;&amp;#111;&amp;#110;&amp;#116;&amp;#101;&amp;#110;&amp;#116;&amp;#45;&amp;#115;&amp;#112;&amp;#97;&amp;#99;&amp;#101;&amp;#46;&amp;#100;&amp;#101;&quot;&gt;Michael Hamann&lt;/a&gt;&lt;br/&gt;
Set Metadata for the current page. (previous authors: Esther Brunner, Gina Häußge, Michael Klier)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:note&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:note&quot; rel=&quot;ugc nofollow&quot;&gt;Note Plugin&lt;/a&gt; &lt;em&gt;2024-04-15&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#99;&amp;#111;&amp;#110;&amp;#116;&amp;#114;&amp;#105;&amp;#98;&amp;#64;&amp;#97;&amp;#110;&amp;#97;&amp;#101;&amp;#108;&amp;#46;&amp;#101;&amp;#117;&quot; class=&quot;mail&quot; title=&quot;&amp;#99;&amp;#111;&amp;#110;&amp;#116;&amp;#114;&amp;#105;&amp;#98;&amp;#64;&amp;#97;&amp;#110;&amp;#97;&amp;#101;&amp;#108;&amp;#46;&amp;#101;&amp;#117;&quot;&gt;Anael Mobilia&lt;/a&gt;&lt;br/&gt;
Add Note/Important/Tip/Warning Capability (DIV+CSS box)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:pagelist&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:pagelist&quot; rel=&quot;ugc nofollow&quot;&gt;Pagelist Plugin&lt;/a&gt; &lt;em&gt;2023-08-27&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#109;&amp;#105;&amp;#99;&amp;#104;&amp;#97;&amp;#101;&amp;#108;&amp;#64;&amp;#99;&amp;#111;&amp;#110;&amp;#116;&amp;#101;&amp;#110;&amp;#116;&amp;#45;&amp;#115;&amp;#112;&amp;#97;&amp;#99;&amp;#101;&amp;#46;&amp;#100;&amp;#101;&quot; class=&quot;mail&quot; title=&quot;&amp;#109;&amp;#105;&amp;#99;&amp;#104;&amp;#97;&amp;#101;&amp;#108;&amp;#64;&amp;#99;&amp;#111;&amp;#110;&amp;#116;&amp;#101;&amp;#110;&amp;#116;&amp;#45;&amp;#115;&amp;#112;&amp;#97;&amp;#99;&amp;#101;&amp;#46;&amp;#100;&amp;#101;&quot;&gt;Matthias Schulte, Michael Hamann, Michael Klier, Gina Haeussge&lt;/a&gt;&lt;br/&gt;
Lists pages in a nice formatted way&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:phpwikify&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:phpwikify&quot; rel=&quot;ugc nofollow&quot;&gt;PHP Wikify&lt;/a&gt; &lt;em&gt;2020-06-05&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#116;&amp;#114;&amp;#97;&amp;#105;&amp;#108;&amp;#106;&amp;#101;&amp;#101;&amp;#112;&amp;#64;&amp;#103;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot; class=&quot;mail&quot; title=&quot;&amp;#116;&amp;#114;&amp;#97;&amp;#105;&amp;#108;&amp;#106;&amp;#101;&amp;#101;&amp;#112;&amp;#64;&amp;#103;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot;&gt;Trailjeep&lt;/a&gt;&lt;br/&gt;
Allows one the possibility of having output of PHP scripts parsed&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:rating&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:rating&quot; rel=&quot;ugc nofollow&quot;&gt;rating plugin&lt;/a&gt; &lt;em&gt;2016-01-13&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#103;&amp;#111;&amp;#104;&amp;#114;&amp;#64;&amp;#99;&amp;#111;&amp;#115;&amp;#109;&amp;#111;&amp;#99;&amp;#111;&amp;#100;&amp;#101;&amp;#46;&amp;#100;&amp;#101;&quot; class=&quot;mail&quot; title=&quot;&amp;#103;&amp;#111;&amp;#104;&amp;#114;&amp;#64;&amp;#99;&amp;#111;&amp;#115;&amp;#109;&amp;#111;&amp;#99;&amp;#111;&amp;#100;&amp;#101;&amp;#46;&amp;#100;&amp;#101;&quot;&gt;Andreas Gohr&lt;/a&gt;&lt;br/&gt;
Allows rating a page&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.dokuwiki.org/plugin:statdisplay&quot; class=&quot;urlextern&quot; title=&quot;http://www.dokuwiki.org/plugin:statdisplay&quot; rel=&quot;ugc nofollow&quot;&gt;DokuWiki statdisplay plugin&lt;/a&gt; &lt;em&gt;2022-12-12&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#100;&amp;#111;&amp;#107;&amp;#117;&amp;#119;&amp;#105;&amp;#107;&amp;#105;&amp;#64;&amp;#99;&amp;#111;&amp;#115;&amp;#109;&amp;#111;&amp;#99;&amp;#111;&amp;#100;&amp;#101;&amp;#46;&amp;#100;&amp;#101;&quot; class=&quot;mail&quot; title=&quot;&amp;#100;&amp;#111;&amp;#107;&amp;#117;&amp;#119;&amp;#105;&amp;#107;&amp;#105;&amp;#64;&amp;#99;&amp;#111;&amp;#115;&amp;#109;&amp;#111;&amp;#99;&amp;#111;&amp;#100;&amp;#101;&amp;#46;&amp;#100;&amp;#101;&quot;&gt;Andreas Gohr&lt;/a&gt;&lt;br/&gt;
Displays log statistics about your DokuWiki&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:stepbystep&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:stepbystep&quot; rel=&quot;ugc nofollow&quot;&gt;StepByStep plugin&lt;/a&gt; &lt;em&gt;2023-09-25&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#115;&amp;#97;&amp;#103;&amp;#103;&amp;#105;&amp;#64;&amp;#103;&amp;#109;&amp;#120;&amp;#46;&amp;#100;&amp;#101;&quot; class=&quot;mail&quot; title=&quot;&amp;#115;&amp;#97;&amp;#103;&amp;#103;&amp;#105;&amp;#64;&amp;#103;&amp;#109;&amp;#120;&amp;#46;&amp;#100;&amp;#101;&quot;&gt;saggi&lt;/a&gt;&lt;br/&gt;
Displays step-by-step tutorials, spoilers, or more information about a topic&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://dokuwiki.org/plugin:tablelayout&quot; class=&quot;urlextern&quot; title=&quot;https://dokuwiki.org/plugin:tablelayout&quot; rel=&quot;ugc nofollow&quot;&gt;tablelayout plugin&lt;/a&gt; &lt;em&gt;2022-03-28&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#100;&amp;#111;&amp;#107;&amp;#117;&amp;#119;&amp;#105;&amp;#107;&amp;#105;&amp;#64;&amp;#99;&amp;#111;&amp;#115;&amp;#109;&amp;#111;&amp;#99;&amp;#111;&amp;#100;&amp;#101;&amp;#46;&amp;#100;&amp;#101;&quot; class=&quot;mail&quot; title=&quot;&amp;#100;&amp;#111;&amp;#107;&amp;#117;&amp;#119;&amp;#105;&amp;#107;&amp;#105;&amp;#64;&amp;#99;&amp;#111;&amp;#115;&amp;#109;&amp;#111;&amp;#99;&amp;#111;&amp;#100;&amp;#101;&amp;#46;&amp;#100;&amp;#101;&quot;&gt;Michael Große&lt;/a&gt;&lt;br/&gt;
Set the width of table columns and set which lines to fix&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:tag&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:tag&quot; rel=&quot;ugc nofollow&quot;&gt;Tag Plugin&lt;/a&gt; &lt;em&gt;2023-10-17&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#109;&amp;#105;&amp;#99;&amp;#104;&amp;#97;&amp;#101;&amp;#108;&amp;#64;&amp;#99;&amp;#111;&amp;#110;&amp;#116;&amp;#101;&amp;#110;&amp;#116;&amp;#45;&amp;#115;&amp;#112;&amp;#97;&amp;#99;&amp;#101;&amp;#46;&amp;#100;&amp;#101;&quot; class=&quot;mail&quot; title=&quot;&amp;#109;&amp;#105;&amp;#99;&amp;#104;&amp;#97;&amp;#101;&amp;#108;&amp;#64;&amp;#99;&amp;#111;&amp;#110;&amp;#116;&amp;#101;&amp;#110;&amp;#116;&amp;#45;&amp;#115;&amp;#112;&amp;#97;&amp;#99;&amp;#101;&amp;#46;&amp;#100;&amp;#101;&quot;&gt;Michael Hamann, Gina Häussge, Christopher Smith, Michael Klier, Esther Brunner&lt;/a&gt;&lt;br/&gt;
tag wiki pages&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:translation&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:translation&quot; rel=&quot;ugc nofollow&quot;&gt;Translation Plugin&lt;/a&gt; &lt;em&gt;2025-05-20&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#97;&amp;#110;&amp;#100;&amp;#105;&amp;#64;&amp;#115;&amp;#112;&amp;#108;&amp;#105;&amp;#116;&amp;#98;&amp;#114;&amp;#97;&amp;#105;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&quot; class=&quot;mail&quot; title=&quot;&amp;#97;&amp;#110;&amp;#100;&amp;#105;&amp;#64;&amp;#115;&amp;#112;&amp;#108;&amp;#105;&amp;#116;&amp;#98;&amp;#114;&amp;#97;&amp;#105;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&quot;&gt;Andreas Gohr&lt;/a&gt;&lt;br/&gt;
Supports the easy setup of a multi-language wiki.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:typography&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:typography&quot; rel=&quot;ugc nofollow&quot;&gt;Typography plugin&lt;/a&gt; &lt;em&gt;2020-07-31&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#38;&amp;#108;&amp;#116;&amp;#59;&amp;#115;&amp;#97;&amp;#104;&amp;#97;&amp;#114;&amp;#97;&amp;#46;&amp;#115;&amp;#97;&amp;#116;&amp;#111;&amp;#115;&amp;#104;&amp;#105;&amp;#64;&amp;#103;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&amp;#38;&amp;#103;&amp;#116;&amp;#59;&quot; class=&quot;mail&quot; title=&quot;&amp;#38;&amp;#108;&amp;#116;&amp;#59;&amp;#115;&amp;#97;&amp;#104;&amp;#97;&amp;#114;&amp;#97;&amp;#46;&amp;#115;&amp;#97;&amp;#116;&amp;#111;&amp;#115;&amp;#104;&amp;#105;&amp;#64;&amp;#103;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&amp;#38;&amp;#103;&amp;#116;&amp;#59;&quot;&gt;Satoshi Sahara&lt;/a&gt;&lt;br/&gt;
Enable typesetting capabilities with CSS font properties such as font face, size, weight, and color of text&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/plugin:wrap&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/plugin:wrap&quot; rel=&quot;ugc nofollow&quot;&gt;Wrap Plugin&lt;/a&gt; &lt;em&gt;2023-08-13&lt;/em&gt;  — &lt;a href=&quot;mailto:&amp;#97;&amp;#110;&amp;#105;&amp;#107;&amp;#97;&amp;#64;&amp;#115;&amp;#101;&amp;#108;&amp;#102;&amp;#116;&amp;#104;&amp;#105;&amp;#110;&amp;#107;&amp;#101;&amp;#114;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&quot; class=&quot;mail&quot; title=&quot;&amp;#97;&amp;#110;&amp;#105;&amp;#107;&amp;#97;&amp;#64;&amp;#115;&amp;#101;&amp;#108;&amp;#102;&amp;#116;&amp;#104;&amp;#105;&amp;#110;&amp;#107;&amp;#101;&amp;#114;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&quot;&gt;Anika Henke&lt;/a&gt;&lt;br/&gt;
Universal plugin which combines functionalities of many other plugins. Wrap wiki text inside containers (divs or spans) and give them a class (choose from a variety of preset classes), a width and/or a language with its associated text direction.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435_\u043f\u043b\u0430\u0433\u0438\u043d\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:70,&amp;quot;secid&amp;quot;:87,&amp;quot;range&amp;quot;:&amp;quot;72189-&amp;quot;} --&gt;&lt;div class=&quot;footnotes&quot;&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__1&quot; id=&quot;fn__1&quot; class=&quot;fn_bot&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; 
&lt;div class=&quot;content&quot;&gt;Сноска — помещаемые внизу страницы примечание, ссылка, перевод.&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 07 Feb 2026 20:01:55 +0000</pubDate>
        </item>
        <item>
            <title>timezone_picker</title>
            <link>https://wwoss.ru/doku.php?id=timezone_picker&amp;rev=1768135035</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;выбор_часового_пояса&quot;&gt;Выбор часового пояса&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

&lt;iframe height=&quot;450&quot; style=&quot;width: 100%;&quot; scrolling=&quot;no&quot; title=&quot;Untitled&quot; src=&quot;./demo/code/timezone/timezone-picker/index.htm&quot; frameborder=&quot;no&quot; loading=&quot;lazy&quot; allowtransparency=&quot;true&quot; allowfullscreen=&quot;true&quot;&gt;
&lt;/iframe&gt;

&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://wwoss.ru/doku.php?id=tag:timezone&amp;amp;do=showtag&amp;amp;tag=timezone&quot; class=&quot;wikilink1&quot; title=&quot;tag:timezone&quot; rel=&quot;tag&quot;&gt;timezone&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 11 Jan 2026 12:37:15 +0000</pubDate>
        </item>
        <item>
            <title>tmp_12.07.2026</title>
            <link>https://wwoss.ru/doku.php?id=tmp_12.07.2026&amp;rev=1783859121</link>
            <description>
&lt;p&gt;
номер строки?
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 12 Jul 2026 12:25:21 +0000</pubDate>
        </item>
        <item>
            <title>tmp_20.05.26</title>
            <link>https://wwoss.ru/doku.php?id=tmp_20.05.26&amp;rev=1779275126</link>
            <description>
&lt;p&gt;
🔍 Шаг 1. смотрим диски
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;lsblk sdb&lt;/pre&gt;

&lt;p&gt;
🔍 Шаг 2. вставить скрипт
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_20.05.26&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_sh_&quot;&gt;builder.sh &lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;ol&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;cat &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;MAIN_EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; builder&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;sh&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;set &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;e&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# 0. ГЛОБАЛЬНАЯ ТЕХНИЧЕСКАЯ КОНФИГУРАЦИЯ СЕРВЕРА И ССЫЛОК&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;TARGET_FLASH&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;/dev/sdb&amp;quot;&lt;/span&gt;        &lt;span class=&quot;co2&quot;&gt;# Физический диск флешки, размечаемый в Ubuntu&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;SERVER_NAME&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;arch-server&amp;quot;&lt;/span&gt;      &lt;span class=&quot;co2&quot;&gt;# Имя хоста (hostname) будущего ПК&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;ADMIN_NAME&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;eva&amp;quot;&lt;/span&gt;               &lt;span class=&quot;co2&quot;&gt;# Логин администратора с доступом к sudo&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;ADMIN_PASS&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;65421&amp;quot;&lt;/span&gt;             &lt;span class=&quot;co2&quot;&gt;# Пароль администратора&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;ROOT_PASS&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;rootpassword&amp;quot;&lt;/span&gt;       &lt;span class=&quot;co2&quot;&gt;# Пароль суперпользователя (root)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;OFFLINE_MODE&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;YES&amp;quot;&lt;/span&gt;             &lt;span class=&quot;co2&quot;&gt;# Измените на &amp;quot;NO&amp;quot;, если на целевом ПК есть интернет&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Базовый образ Arch Linux&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;URL_BOOTSTRAP&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://mirror.yandex.ru/archlinux/iso/latest/archlinux-bootstrap-x86_64.tar.zst&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Официальные репозитории и зеркала (используются для скачивания и прописываются на ПК)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;URL_YANDEX&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://mirror.yandex.ru/archlinux/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;repo/os/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;arch&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;URL_PKGS&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://archlinux.pkgs.org/archlinux/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;repo/os/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;arch&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;URL_RACKSPACE&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;http://mirror.rackspace.com/archlinux/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;repo/os/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;arch&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;URL_PKGBUILD&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://geo.mirror.pkgbuild.com/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;repo/os/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;arch&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 1: Верификация безопасности накопителей&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 1: Верификация безопасности накопителей ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;UBUNTU_ROOT_DISK&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;lsblk &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;no PKNAME $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;findmnt &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;nvo SOURCE &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;z &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$UBUNTU_ROOT_DISK&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; then&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;    UBUNTU_ROOT_DISK&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;lsblk &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;dno NAME&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;MOUNTPOINTS &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; grep &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;E &lt;span class=&quot;st_h&quot;&gt;&#039;/$&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; awk &lt;span class=&quot;st_h&quot;&gt;&#039;{print $1}&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;fi&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;/dev/&lt;span class=&quot;es4&quot;&gt;$UBUNTU_ROOT_DISK&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; then&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;КРИТИЧЕСКАЯ ОШИБКА: Запрещено размечать диск запущенной Ubuntu (&lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt;)!&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;fi&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Целевой диск определен как безопасный: &lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ВНИМАНИЕ! Диск &lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt; будет тотально очищен через 5 секунд...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;a href=&quot;http://www.php.net/sleep&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;sleep&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1 ln-xtra&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 2: Принудительное уничтожение метаданных и разметки&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 2: Принудительное уничтожение метаданных и разметки ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo umount &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;f $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;TARGET_FLASH&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo wipefs &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;a &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;force &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo dd &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;zero of&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt;&amp;quot;&lt;/span&gt; bs&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;1M &lt;a href=&quot;http://www.php.net/count&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;count&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt; status&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;none&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo partprobe &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 3: Создание новой таблицы разделов GPT&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 3: Создание новой таблицы разделов GPT ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;a href=&quot;http://www.php.net/printf&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;printf&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;g&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;n&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;1&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;+512M&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;t&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;1&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;n&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;2&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;w&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; sudo fdisk &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;wipe always &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;wipe&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;partitions always &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo partprobe &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;nvme&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; then&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    PART1&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;${TARGET_FLASH}&lt;/span&gt;p1&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;    PART2&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;${TARGET_FLASH}&lt;/span&gt;p2&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    PART1&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;${TARGET_FLASH}&lt;/span&gt;1&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    PART2&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;${TARGET_FLASH}&lt;/span&gt;2&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;fi&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ожидание инициализации разделов ядром...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo partprobe &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sdb &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo udevadm settle &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;a href=&quot;http://www.php.net/sleep&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;sleep&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 4: Безусловное форматирование файловых систем&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 4: Безусловное форматирование файловых систем ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;sudo mkfs&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;vfat &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;F &lt;span class=&quot;nu0&quot;&gt;32&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$PART1&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo mkfs&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;ext4 &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;F &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$PART2&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 5: Развертывание структуры точек монтирования&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 5: Развертывание структуры точек монтирования ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo &lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo mount &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$PART2&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo &lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;sudo mount &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$PART1&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 6: Скачивание официального образа Arch Linux&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 6: Скачивание официального образа Arch Linux ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo apt update &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt install &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;y zstd wget&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;f archlinux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;bootstrap&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tar&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;zst &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; then&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    wget &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;timeout&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;tries&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$URL_BOOTSTRAP&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;fi&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;sudo tar &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;I zstd &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;xf archlinux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;bootstrap&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tar&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;zst &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;strip&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;components&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;C &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 7: Статическая генерация таблицы fstab флешки&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 7: Статическая генерация таблицы fstab флешки ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;EFI_UUID&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sudo blkid &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;s UUID &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;o value &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$PART1&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;ROOT_UUID&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sudo blkid &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;s UUID &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;o value &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$PART2&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo &lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;a href=&quot;http://www.php.net/printf&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;printf&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;UUID=&lt;span class=&quot;es6&quot;&gt;%s&lt;/span&gt; /boot vfat defaults 0 2&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;UUID=&lt;span class=&quot;es6&quot;&gt;%s&lt;/span&gt; / ext4 defaults 0 1&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$EFI_UUID&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$ROOT_UUID&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; sudo tee &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 8: Внедрение скрипта АВТОУСТАНОВКИ на флешку (ОФФЛАЙН МЕТОД)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 8: Внедрение скрипта АВТОУСТАНОВКИ на флешку ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;sudo &lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;root&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo cat &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; EOF &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; sudo tee &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;root&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;forest&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;install&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;sh &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;set &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;e&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== КОМБАЙН ЗАПУЩЁН ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;MY_DISK&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;\$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;lsblk &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;no PKNAME \$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;findmnt &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;nvo SOURCE &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;z &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;MY_DISK&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; then&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    MY_DISK&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;\$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;lsblk &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;no PKNAME &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bootmnt &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sdb&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;fi&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;TARGET_DISK&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;\$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;lsblk &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;dno NAME&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;TYPE &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; grep &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;v &lt;span class=&quot;st0&quot;&gt;&amp;quot;loop&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; grep &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;v &lt;span class=&quot;st0&quot;&gt;&amp;quot;rom&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; grep &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;v &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;MY_DISK&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; head &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;n1 &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; awk &lt;span class=&quot;st_h&quot;&gt;&#039;{print \$1}&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;TARGET&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;/dev/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TARGET_DISK&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;z &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TARGET_DISK&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; then&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;КРИТИЧЕСКАЯ ОШИБКА: Жёсткий диск ПК не найден!&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;fi&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Целевой жёсткий диск ПК определён: &lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TARGET. Уничтожаем старые данные...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;umount &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;f \$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;TARGET&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;wipefs &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;a &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;force &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TARGET&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;dd &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;zero of&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TARGET&amp;quot;&lt;/span&gt; bs&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;1M &lt;a href=&quot;http://www.php.net/count&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;count&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt; status&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;none&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;partprobe &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TARGET&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Разметка жёсткого диска ПК...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;a href=&quot;http://www.php.net/printf&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;printf&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;g&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;n&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;1&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;+512M&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;t&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;1&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;n&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;2&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;w&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; fdisk &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;wipe always &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;wipe&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;partitions always &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TARGET&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TARGET&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;nvme&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; then&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    TPART1&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;{TARGET}p1&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    TPART2&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;{TARGET}p2&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    TPART1&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;{TARGET}1&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    TPART2&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;{TARGET}2&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;fi&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Форматирование жёсткого диска ПК...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;mkfs&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;vfat &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;F &lt;span class=&quot;nu0&quot;&gt;32&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TPART1&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;mkfs&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;ext4 &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;F &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TPART2&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Монтирование дисков ПК под установку...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; mount &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TPART2&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; mount &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TPART1&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 8.1 ОФЛАЙН УСТАНОВКА С ОБНОВЛЕНИЕМ&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;${OFFLINE_MODE}&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;YES&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; then&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ВЫБРАН РЕЖИМ: ТОТАЛЬНЫЙ ОФЛАЙН ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Копируем автономный кэш пакетов с флешки на диск ПК...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;span class=&quot;co2&quot;&gt;# Пишем команду так, чтобы в ней не было круглых скобок $() и find&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    cp &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;R &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/.&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Переводим системный pacman флешки в автономный режим...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;span class=&quot;co2&quot;&gt;# Подменяем системный файл зеркал флешки, указывая вместо сайтов локальный путь file://&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Server = file:///var/cache/pacman/pkg&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Развертывание системы из локальных файлов без интернета...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;span class=&quot;co2&quot;&gt;# Теперь pacman -Syu прочитает родной конфиг, увидит тамfile:// и молча поставит пакеты из папки&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    pacman &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Syu &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;noconfirm &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;root &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;dbpath &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman base linux linux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;firmware openssh networkmanager sudo nano dosfstools mtools samba grub efibootmgr nginx php php&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;fpm&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 8.2 ОНЛАЙН УСТАНОВКА С ОБНОВЛЕНИЕМ&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ВЫБРАН РЕЖИМ: ОНЛАЙН УСТАНОВКА С ОБНОВЛЕНИЕМ ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Создаем чистые папки под кэш на жестком диске ПК...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	&lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;	&lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	&lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Записываем готовый адрес зеркала Яндекса в целевой ПК...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	&lt;span class=&quot;co2&quot;&gt;# Переменная URL_YANDEX уже содержит идеальную ссылку, просто убираем один лишний слэш перед arch&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;	&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Server = ${URL_YANDEX/&lt;span class=&quot;es1&quot;&gt;\\&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;arch/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;arch}&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	&lt;span class=&quot;co2&quot;&gt;# Записываем полученный адрес зеркала в зеркала целевого ПК&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Server = &lt;span class=&quot;es4&quot;&gt;${URL_YANDEX}&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Server = &lt;span class=&quot;es4&quot;&gt;${URL_PKGS}&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;	&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Server = &lt;span class=&quot;es4&quot;&gt;${URL_RACKSPACE}&lt;/span&gt;/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;repo/os/&lt;span class=&quot;es4&quot;&gt;$arch&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Server = &lt;span class=&quot;es4&quot;&gt;${URL_PKGBUILD}&lt;/span&gt;/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;repo/os/&lt;span class=&quot;es4&quot;&gt;$arch&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	&lt;span class=&quot;co2&quot;&gt;# Прописываем DNS Google прямо в сетевой конфиг запущенной флешки&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;nameserver 8.8.8.8&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;resolv&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;conf&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;	&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;nameserver 1.1.1.1&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;resolv&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;conf&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	cat &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;PAC_EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;install&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;conf&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;options&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	Architecture &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; auto&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;	SigLevel &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Required DatabaseOptional&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	LocalFileSigLevel &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Optional&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;core&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	&lt;span class=&quot;kw1&quot;&gt;Include&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;extra&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	&lt;span class=&quot;kw1&quot;&gt;Include&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;PAC_EOF&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Принудительно включаем DNS-серверы на запущенной флешке...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	cp &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;resolv&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;conf &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;resolv&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;conf&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;bak &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;nameserver 8.8.8.8&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;resolv&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;conf&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Скачиваем свежие базы репозиториев напрямую на жесткий диск ПК...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;span class=&quot;co2&quot;&gt;# ИСПРАВЛЕНИЕ: Этот шаг скачает файлы core.db и extra.db прямо на HDD компьютера&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;    pacman &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Sy &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;noconfirm &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;config &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;install&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;conf &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;dbpath &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Скачиваем свежие пакеты из интернета в кэш жесткого диска ПК...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	pacman &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Syw &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;noconfirm &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;config &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;install&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;conf &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;cachedir &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;dbpath &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;	base linux linux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;firmware openssh networkmanager sudo nano dosfstools mtools samba grub efibootmgr nginx php php&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;fpm&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Развертывание системы из скачанных из интернета файлов...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;span class=&quot;co2&quot;&gt;# Копируем созданный рабочий зеркальный лист в саму систему, чтобы она знала зеркала после перезагрузки&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    cp &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;bak&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;	pacman &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;U &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;noconfirm &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;root &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;dbpath &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;coMULTI&quot;&gt;/*.pkg.tar.zst&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;fi&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;umount /mnt/target/var/cache/pacman/pkg&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;Генерация таблицы fstab целевого ПК...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;printf &amp;quot;UUID=\$(blkid -s UUID -o value \$TPART2) / ext4 defaults 0 1\nUUID=\$(blkid -s UUID -o value \$TPART1) /boot vfat defaults 0 2\n&amp;quot; &amp;gt; /mnt/target/etc/fstab&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;Вход в chroot окружение ПК...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;/mnt/arch/bin/arch-chroot /mnt/target /bin/bash &amp;lt;&amp;lt; &#039;CHROOT_EOF&#039;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;set -e&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# Отключите автоматическую синхронизацию&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# Автоматическая настройка времени без пользовательского ввода&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# Вариант 1: Использовать UTC (рекомендуется)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;#echo &amp;quot;UTC&amp;quot; &amp;gt; /etc/timezone&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;#ln -sf /usr/share/zoneinfo/UTC /etc/localtime&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;#timedatectl set-local-rtc 0&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# Вариант 2: Использовать локальное время с материнки&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;hwclock --systohc&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;timedatectl set-local-rtc 1&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;Конфигурация пользователей...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;useradd -m -G wheel -s /bin/bash &amp;quot;${ADMIN_NAME}&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ЖЕСТКОЕ ПОДАВЛЕНИЕ СИНЕГО ЭКРАНА НА ЦЕЛЕВОМ ПК&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;en_US.UTF-8 UTF-8&amp;quot; &amp;gt; /etc/locale.gen&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;locale-gen&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;LANG=en_US.UTF-8&amp;quot; &amp;gt; /etc/locale.conf&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;KEYMAP=us&amp;quot; &amp;gt; /etc/vconsole.conf&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;${SERVER_NAME}&amp;quot; &amp;gt; /etc/hostname&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;systemd-machine-id-setup&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;ln -sf /dev/null /etc/systemd/system/systemd-firstboot.service&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sudo ln -sf /dev/null /mnt/arch/etc/systemd/system/systemd-firstboot.service&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;Конфигурация пользователей...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;useradd -m -G wheel -s /bin/bash &amp;quot;${ADMIN_NAME}&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;${ADMIN_NAME}:${ADMIN_PASS}&amp;quot; | chpasswd&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;root:${ROOT_PASS}&amp;quot; | chpasswd&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;%wheel ALL=(ALL:ALL) ALL&amp;quot; &amp;gt; /etc/sudoers.d/wheel&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;touch /etc/locale.conf&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;touch /etc/vconsole.conf&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;touch /etc/machine-id&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;Активация служб...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sed -i &#039;s/#PermitRootLogin prohibit-password/PermitRootLogin no/&#039; /etc/ssh/sshd_config&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;systemctl enable sshd NetworkManager&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;Установка загрузчика GRUB...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch_PC --recheck&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;grub-mkconfig -o /boot/grub/grub.cfg&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;CHROOT_EOF&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;printf &amp;quot;## Russia\nServer = %s\nServer = %s\n## International\nServer = %s\nServer = %s\n&amp;quot; \&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;&amp;quot;${URL_YANDEX}&amp;quot; &amp;quot;${URL_PKGS}&amp;quot; &amp;quot;${URL_RACKSPACE}&amp;quot; &amp;quot;${URL_PKGBUILD}&amp;quot; &amp;gt; /mnt/target/etc/pacman.d/mirrorlist&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;umount -R /mnt/target&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;Система успешно развёрнута автономно! Перезагрузка через 3 секунды...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sleep 3&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;reboot&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;EOF&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# Настройка прав доступа к файлу автоустановщика&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sudo chmod 755 /mnt/arch/root&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sudo chmod +x /mnt/arch/root/forest-install.sh&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sudo chmod 700 /mnt/arch/root&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ШАГ 9: Создание и регистрация фоновой службы systemd&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;=== ШАГ 9: Создание и регистрация фоновой службы systemd ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sudo cat &amp;lt;&amp;lt; &#039;SERVICE_EOF&#039; | sudo tee /mnt/arch/etc/systemd/system/forest-autoinstall.service &amp;gt; /dev/null&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;[Unit]&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;Description=Автоустановщик Arch Linux без монитора&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;After=multi-user.target&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;[Service]&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;Type=idle&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;ExecStart=/root/forest-install.sh&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;StandardOutput=tty&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;StandardError=tty&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;[Install]&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;WantedBy=multi-user.target&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;SERVICE_EOF&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sudo mkdir -p /mnt/arch/etc/systemd/system/multi-user.target.wants&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sudo ln -sf /etc/systemd/system/forest-autoinstall.service /mnt/arch/etc/systemd/system/multi-user.target.wants/forest-autoinstall.service&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ШАГ 10: Формирование чистых репозиториев для флешки&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;=== ШАГ 10: Формирование чистых репозиториев для флешки ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sudo mkdir -p /mnt/arch/etc/pacman.d&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;	cat &amp;lt;&amp;lt; MIRROR_EOF | sudo tee /mnt/arch/etc/pacman.d/mirrorlist &amp;gt; /dev/null&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;## Russia&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;Server = ${URL_YANDEX}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;Server = ${URL_PKGS}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;## International&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;Server = ${URL_RACKSPACE}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;Server = ${URL_PKGBUILD}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;MIRROR_EOF&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ШАГ 11: Подготовка локального репозитория на флешке&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;=== ШАГ 11: Подготовка локального репозитория ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sudo mkdir -p /mnt/arch/var/cache/pacman/pkg&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sudo mkdir -p /mnt/arch/var/lib/pacman&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sudo mkdir -p /mnt/arch/etc/pacman.d&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;Server = ${URL_YANDEX//\\\\\\$/\$}&amp;quot; | sudo tee /mnt/arch/etc/pacman.d/mirrorlist &amp;gt; /dev/null&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;	cat &amp;lt;&amp;lt; &#039;EOF&#039; | sudo tee /mnt/arch/etc/pacman.conf &amp;gt; /dev/null&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;	[options]&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;	Architecture = auto&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;	SigLevel = Required DatabaseOptional&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;	LocalFileSigLevel = Optional&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;	[core]&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;	Include = /etc/pacman.d/mirrorlist&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;	[extra]&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;	Include = /etc/pacman.d/mirrorlist&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;EOF&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ШАГ 12: Установка пакетов на флешку и кэширование пакетов для ПК&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;=== ШАГ 12: Накатывание пакетов и загрузчика на флешку ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;nameserver 8.8.8.8&amp;quot; | sudo tee /mnt/arch/etc/resolv.conf&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ДОБАВЛЕНО: Генерируем базовые конфиги флешки до chroot, чтобы заблокировать синий экран systemd-firstboot&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;en_US.UTF-8 UTF-8&amp;quot; | sudo tee /mnt/arch/etc/locale.gen&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;LANG=en_US.UTF-8&amp;quot; | sudo tee /mnt/arch/etc/locale.conf&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;KEYMAP=us&amp;quot; | sudo tee /mnt/arch/etc/vconsole.conf&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;arch-flash&amp;quot; | sudo tee /mnt/arch/etc/hostname&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sudo systemd-machine-id-setup --root=/mnt/arch&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ТОТ САМЫЙ КЛЮЧЕВОЙ КОСТЫЛЬ: Жестко блокируем запуск синего экрана на самой флешке&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sudo ln -sf /dev/null /mnt/arch/etc/systemd/system/systemd-firstboot.service&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# Возвращаем пути к зеркалам в стандартный вид для работы внутри самой флешки&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sudo sed -i &#039;s|/mnt/arch||g&#039; /mnt/arch/etc/pacman.conf&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sudo /mnt/arch/bin/arch-chroot /mnt/arch /bin/bash &amp;lt;&amp;lt; &#039;EOF&#039;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;set -e&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;pacman-key --init&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;pacman-key --populate archlinux&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# Обновляем базы пакетов&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# Объединяем обновление баз и скачивание пакетов в ОДНУ команду&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;pacman -Syuw --noconfirm base linux linux-firmware openssh networkmanager sudo nano dosfstools mtools nginx samba grub efibootmgr&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# Устанавливаем систему и загрузчик на флешку&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;pacman -S --noconfirm base linux linux-firmware openssh networkmanager sudo nano dosfstools mtools nginx grub efibootmgr&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# Принудительно генерируем локали&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;locale-gen&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# Настраиваем GRUB на флешке как съемный диск&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch_Flash --removable --recheck&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;grub-mkconfig -o /boot/grub/grub.cfg&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;EOF&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ШАГ 13: финальная проверка&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;echo &amp;quot;=== ШАГ 13: финальная проверка ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;# Размонтируем каталоги, если они еще примонтированы&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sudo umount -l /mnt/arch/dev || true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sudo umount -l /mnt/arch/proc || true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sudo umount -l /mnt/arch/sys || true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;sudo umount -l /mnt/arch || true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;MAIN_EOF&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
🔍 Шаг 4. Очистите его от символов Windows
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;s/\r$//&#039;&lt;/span&gt; builder.sh&lt;/pre&gt;

&lt;p&gt;
🔍 Шаг 5. Разрешите запуск
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x builder.sh &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; .&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;builder.sh&lt;/pre&gt;

&lt;p&gt;
🔍 Шаг 4. запустить скрипт
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;builder.sh&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 20 May 2026 11:05:26 +0000</pubDate>
        </item>
        <item>
            <title>tmp_24.05.26_3</title>
            <link>https://wwoss.ru/doku.php?id=tmp_24.05.26_3&amp;rev=1779737892</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;сборка_кастомного_headless_arch_iso_с_webui-инсталлятором&quot;&gt;Сборка кастомного Headless Arch ISO с WebUI-инсталлятором&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Professional-grade руководство по созданию универсального, автономного загрузочного ISO-образа Arch Linux на базе живой системы (Live-RAM) для «слепой» установки на сервера без интернета и мониторов.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0431\u043e\u0440\u043a\u0430 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e Headless Arch ISO \u0441 WebUI-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u043e\u043c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0431\u043e\u0440\u043a\u0430_\u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e_headless_arch_iso_\u0441_webui-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u043e\u043c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-437&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;введение_и_архитектура_стенда&quot;&gt;1. Введение и архитектура стенда&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;1.1. Назначение кастомного ISO:&lt;/strong&gt; Цели создания автономного Headless-образа, сценарии применения на изолированном оборудовании (Supermicro, HP) без графического вывода.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;1.2. Схема и конфигурация тестовой среды:&lt;/strong&gt; Распределение ролей между эталонным хостом (&lt;code&gt;tom_1&lt;/code&gt;), виртуальным диском флешки (&lt;code&gt;arch-flash-3&lt;/code&gt;) и изолированным целевым сервером (&lt;code&gt;tom_2&lt;/code&gt;).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0441\u0442\u0435\u043d\u0434\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435_\u0438_\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430_\u0441\u0442\u0435\u043d\u0434\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;438-1117&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;подготовка_эталонного_окружения_хост_tom_1&quot;&gt;2. Подготовка эталонного окружения (Хост tom_1)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;2.1. Актуализация и фиксация ядра:&lt;/strong&gt; Полное обновление индексов пакетов и системы, перезагрузка хоста, верификация и фиксация текущей активной версии ядра через &lt;code&gt;uname -r&lt;/code&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;2.2. Установка системных пакетов:&lt;/strong&gt; Инсталляция базовых инструментов сжатия и окружения: &lt;code&gt;squashfs-tools&lt;/code&gt;, &lt;code&gt;zram-generator&lt;/code&gt;, &lt;code&gt;nginx&lt;/code&gt;, &lt;code&gt;php-fpm&lt;/code&gt;, &lt;code&gt;xorriso&lt;/code&gt;, &lt;code&gt;samba&lt;/code&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;2.3. Конфигурация отказоустойчивой сети:&lt;/strong&gt; Создание универсального профиля &lt;code&gt;systemd-networkd&lt;/code&gt; по маске интерфейсов (&lt;code&gt;en*&lt;/code&gt;, &lt;code&gt;eth*&lt;/code&gt;) для автоматического подъема статического IP &lt;code&gt;192.168.1.150&lt;/code&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2. \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f (\u0425\u043e\u0441\u0442 tom_1)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_\u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u0433\u043e_\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f_\u0445\u043e\u0441\u0442_tom_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1118-2099&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;развертывание_и_настройка_веб-интерфейса_управления&quot;&gt;3. Развертывание и настройка веб-интерфейса управления&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;3.1. Системная безопасность и интеграция PHP-FPM:&lt;/strong&gt; Отключение контейнерной изоляции службы (&lt;code&gt;ProtectSystem=false&lt;/code&gt;) и добавление беспарольных прав в &lt;code&gt;sudoers&lt;/code&gt; для выполнения системных команд через &lt;code&gt;systemd-run&lt;/code&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;3.2. Конфигурация веб-сервера Nginx:&lt;/strong&gt; Настройка виртуального хоста бэкенда на порту &lt;code&gt;5000&lt;/code&gt; с обработкой динамических сценариев через UNIX-сокет PHP-FPM.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;3.3. Развертывание Samba для Windows-разработки:&lt;/strong&gt; Организация общего сетевого ресурса для прямой правки кода, запуск демонов и выставление корректных прав доступа (&lt;code&gt;775&lt;/code&gt; / &lt;code&gt;664&lt;/code&gt;) на файлы сайта для пользователя &lt;code&gt;http&lt;/code&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3. \u0420\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435_\u0438_\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430_\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;2100-3214&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;исходный_код_компонентов_webui-инсталлятора&quot;&gt;4. Исходный код компонентов WebUI-инсталлятора&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;4.1. Структура каталогов проекта:&lt;/strong&gt; Организация файлов и подпапок приложения внутри директории веб-сервера &lt;code&gt;/usr/share/nginx/html/&lt;/code&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;4.2. Фронтенд-интерфейс панели (index.html):&lt;/strong&gt; HTML5-разметка оконного интерфейса в стиле графической утилиты, таблиц данных и модальных форм.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;4.3. Стили оформления панели (css/style.css):&lt;/strong&gt; Стилизация визуальных компонентов интерфейса, адаптивных таблиц, кнопок управления и анимации всплывающих окон.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;4.4. Клиентские скрипты логики (js/app.js):&lt;/strong&gt; JavaScript-обработчик асинхронного обновления таблиц (AJAX/fetch), переключения контекста вкладок, фильтрации на лету и валидации форм.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;4.5. Серверный обработчик пользователей (api/users.php):&lt;/strong&gt; PHP-скрипт парсинга файла &lt;code&gt;/etc/passwd&lt;/code&gt; и обхода ограничений TTY для выполнения CRUD-операций над аккаунтами ОС.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;4.6. Серверный обработчик групп (api/groups.php):&lt;/strong&gt; PHP-компонент для чтения &lt;code&gt;/etc/group&lt;/code&gt; и нативного управления системными группами безопасности.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4. \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 WebUI-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439_\u043a\u043e\u0434_\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432_webui-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;3215-4907&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;консервация_операционной_системы_в_squashfs&quot;&gt;5. Консервация операционной системы в SquashFS&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;5.1. Изоляция дисковой разметки хоста:&lt;/strong&gt; Создание резервной копии и полное обнуление содержимого файла &lt;code&gt;/etc/fstab&lt;/code&gt; во избежание конфликтов UUID и UUID-зависимостей при live-загрузке на стороннем железе.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;5.2. Генерация монолитного SquashFS-слепка:&lt;/strong&gt; Сжатие корневой файловой системы хоста утилитой &lt;code&gt;mksquashfs&lt;/code&gt; с использованием алгоритма ZSTD и жестким исключением виртуальных директорий ядра.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;5.3. Немедленное восстановление хоста:&lt;/strong&gt; Возврат оригинального &lt;code&gt;/etc/fstab&lt;/code&gt; на эталонную машину для сохранения её работоспособности и передача прав на сгенерированный файл &lt;code&gt;airootfs.sfs&lt;/code&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;5. \u041a\u043e\u043d\u0441\u0435\u0440\u0432\u0430\u0446\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432 SquashFS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0441\u0435\u0440\u0432\u0430\u0446\u0438\u044f_\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439_\u0441\u0438\u0441\u0442\u0435\u043c\u044b_\u0432_squashfs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;4908-6020&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;формирование_структуры_iso_и_uefi-загрузчика&quot;&gt;6. Формирование структуры ISO и UEFI-загрузчика&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;6.1. Создание дерева каталогов загрузчика:&lt;/strong&gt; Развертывание строгой иерархии путей EFI и конфигурационных директорий внутри изолированной папки конструктора.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;6.2. Импорт оригинальных файлов загрузки:&lt;/strong&gt; Перенос бинарного загрузчика &lt;code&gt;BOOTX64.EFI&lt;/code&gt;, оригинального ядра Linux и соответствующего ему &lt;code&gt;initramfs-linux.img&lt;/code&gt; из живой хост-системы.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;6.3. Конфигурация загрузчика systemd-boot:&lt;/strong&gt; Настройка параметров ядра, привязка к глобальной метке &lt;code&gt;archisolabel=ARCH_202605&lt;/code&gt;, перенаправление вывода консоли в последовательный COM-порт (ttyS0) и подавление прерываний Hyper-V.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;6. \u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b ISO \u0438 UEFI-\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b_iso_\u0438_uefi-\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;6021-7084&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;финальная_сборка_перенос_и_тестирование_образа&quot;&gt;7. Финальная сборка, перенос и тестирование образа&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;7.1. Компиляция универсального ISO:&lt;/strong&gt; Упаковка структуры конструктора утилитой &lt;code&gt;xorriso&lt;/code&gt; с флагами гибридной разметки (Isohybrid GPT) и жестким вшиванием идентификатора тома &lt;code&gt;-volid&lt;/code&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;7.2. Экспорт ISO-образа в Windows:&lt;/strong&gt; Быстрое скачивание готового медиа-файла на рабочую станцию администратора средствами встроенной консоли PowerShell через &lt;code&gt;scp&lt;/code&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;7.3. Запись на физический носитель и развертывание в Hyper-V:&lt;/strong&gt; Пошаговая инструкция по прожигу образа в Rufus (схема GPT для UEFI) и запуску на изолированной виртуальной машине &lt;code&gt;tom_2&lt;/code&gt; для верификации WebUI панели.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;7. \u0424\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0431\u043e\u0440\u043a\u0430, \u043f\u0435\u0440\u0435\u043d\u043e\u0441 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f_\u0441\u0431\u043e\u0440\u043a\u0430_\u043f\u0435\u0440\u0435\u043d\u043e\u0441_\u0438_\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u043e\u0431\u0440\u0430\u0437\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;7085-8161&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit9&quot; id=&quot;сборка_кастомного_headless_arch_iso_с_webui-инсталлятором1&quot;&gt;Сборка кастомного Headless Arch ISO с WebUI-инсталлятором&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Это профессиональное руководство по созданию универсального, полностью автономного загрузочного ISO-образа Arch Linux на базе живой системы. Образ предназначен для «слепой» установки ОС на физические сервера (Supermicro, HP) без интернета и мониторов.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0431\u043e\u0440\u043a\u0430 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e Headless Arch ISO \u0441 WebUI-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u043e\u043c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0431\u043e\u0440\u043a\u0430_\u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e_headless_arch_iso_\u0441_webui-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u043e\u043c1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;8162-8705&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;вводные_данные_и_архитектура_стенда&quot;&gt;1. Вводные данные и Архитектура Стенда&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Установка и управление производятся удаленно: доступ к консоли осуществляется по SSH, а сам запуск развертывания — через веб-интерфейс, работающий прямо из оперативной памяти (Live-ОЗУ) флешки.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1. \u0412\u0432\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0421\u0442\u0435\u043d\u0434\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0432\u043e\u0434\u043d\u044b\u0435_\u0434\u0430\u043d\u043d\u044b\u0435_\u0438_\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430_\u0441\u0442\u0435\u043d\u0434\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;8706-9138&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;конфигурация_окружения&quot;&gt;Конфигурация окружения&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
* &lt;strong&gt;tom_1&lt;/strong&gt; — Эталонная виртуальная машина (хост) с доступом в интернет, где подготавливается слепок системы, настраивается веб-бэкенд и собирается финальный ISO.
* &lt;strong&gt;arch-flash-3&lt;/strong&gt; — Виртуальный диск (VHDX), на который через Rufus записывается готовый ISO-образ для тестирования.
* &lt;strong&gt;tom_2&lt;/strong&gt; — Изолированная тестовая виртуальная машина без интернета, на которой имитируется «слепой» сервер. При старте с флешки она автоматически поднимает сеть на IP &lt;strong&gt;192.168.1.150&lt;/strong&gt; и открывает порт веб-панели &lt;strong&gt;5000&lt;/strong&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f_\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;9139-10047&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit12&quot; id=&quot;этап_0_выравнивание_версий_и_подготовка_окружения_на_tom_1&quot;&gt;2. Этап 0. Выравнивание версий и подготовка окружения на tom_1&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Чтобы предотвратить конфликт драйверов и панику модуля ZRAM на ранних секундах загрузки флешки, ядро загрузчика и модули внутри SquashFS-слепка должны совпадать символ в символ.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2. \u042d\u0442\u0430\u043f 0. \u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0439 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043d\u0430 tom_1&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u044d\u0442\u0430\u043f_0_\u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435_\u0432\u0435\u0440\u0441\u0438\u0439_\u0438_\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f_\u043d\u0430_tom_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;10048-10485&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;шаг_21_тотальное_обновление_и_фиксация_ядра_хоста&quot;&gt;Шаг 2.1. Тотальное обновление и фиксация ядра хоста&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Зайдите на эталонный хост &lt;code&gt;tom_1&lt;/code&gt; по SSH и запустите полное обновление индекса пакетов, системных утилит и самого ядра:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo pacman -Syu --noconfirm&lt;/pre&gt;

&lt;p&gt;
Чтобы система полностью приняла новое ядро и зафиксировала его модули в оперативной памяти, отправьте виртуальную машину в перезагрузку:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo reboot&lt;/pre&gt;

&lt;p&gt;
Подождите 30 секунд, подключитесь заново по SSH и проверьте текущую активную версию ядра:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;uname -r&lt;/pre&gt;

&lt;p&gt;
Запомните этот индекс (например, &lt;code&gt;7.0.9-arch2-1&lt;/code&gt;) — файлы загрузки в конструкторе ISO мы будем брать строго под эту версию.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 2.1. \u0422\u043e\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u044f \u044f\u0434\u0440\u0430 \u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_21_\u0442\u043e\u0442\u0430\u043b\u044c\u043d\u043e\u0435_\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435_\u0438_\u0444\u0438\u043a\u0441\u0430\u0446\u0438\u044f_\u044f\u0434\u0440\u0430_\u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;10486-11522&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;шаг_22_установка_необходимых_пакетов_системного_окружения&quot;&gt;Шаг 2.2. Установка необходимых пакетов системного окружения&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Доставим на хост базовые инструменты сжатия, утилиту генерации разделов подкачки в ОЗУ, а также программную основу нашего будущего веб-инсталлятора (Nginx и PHP-FPM):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo pacman -S --noconfirm squashfs-tools zram-generator nginx php-fpm xorriso samba&lt;/pre&gt;

&lt;p&gt;
Активируем обработчик процессов PHP-FPM и добавим его в автозагрузку, чтобы при старте флешки сервис запустился сам:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo systemctl enable php-fpm&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 2.2. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_22_\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445_\u043f\u0430\u043a\u0435\u0442\u043e\u0432_\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e_\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;11523-12291&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit15&quot; id=&quot;шаг_23_создание_универсального_сетевого_конфига_флешки&quot;&gt;Шаг 2.3. Создание универсального сетевого конфига флешки&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы один и тот же ISO-образ молча поднимал сеть на любом «зоопарке» физических серверов (где имена карт могут разъехаться на eno1, enp2s0 или eth0), заставим службу &lt;code&gt;systemd-networkd&lt;/code&gt; применять настройки ко всем проводным интерфейсам по маске.
&lt;/p&gt;

&lt;p&gt;
Перепишем файл конфигурации сети, зашив туда статический адрес &lt;code&gt;192.168.1.150&lt;/code&gt;, который мы будем пинговать и открывать в браузере на целевом сервере:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cat &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039; | sudo tee /etc/systemd/network/20-wired.network &amp;gt; /dev/null
[Match]
Name=en* eth*

[Network]
Address=192.168.1.150/24
Gateway=192.168.1.1
DNS=1.1.1.1
EOF&lt;/pre&gt;

&lt;p&gt;
Включим автозапуск сетевых служб и резолвера имён внутри будущего слепка:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo systemctl enable systemd-networkd systemd-resolved&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 2.3. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0430 \u0444\u043b\u0435\u0448\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_23_\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0433\u043e_\u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e_\u043a\u043e\u043d\u0444\u0438\u0433\u0430_\u0444\u043b\u0435\u0448\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;12292-13480&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit16&quot; id=&quot;шаг_24_настройка_веб-сервера_и_системной_безопасности&quot;&gt;Шаг 2.4. Настройка веб-сервера и системной безопасности&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;отключение_системной_изоляции_php-fpm&quot;&gt;Отключение системной изоляции PHP-FPM&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В Arch Linux служба &lt;code&gt;php-fpm&lt;/code&gt; по умолчанию запущена в изолированном контейнере (ProtectSystem=full). Из-за этого PHP видит системные файлы пользователей только для чтения. Снимем это ограничение, чтобы веб-интерфейс имел физическое право вносить изменения в ОС из ОЗУ.
&lt;/p&gt;

&lt;p&gt;
Откройте переопределение настроек службы:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo systemctl edit php-fpm&lt;/pre&gt;

&lt;p&gt;
Вставьте в открывшееся окно три строки, сохраните (CTRL+O, Enter) и выйдите (CTRL+X):
&lt;/p&gt;
&lt;pre class=&quot;code text&quot;&gt;[Service]
ProtectSystem=false
ProtectHome=false&lt;/pre&gt;

&lt;p&gt;
Перезапустите службу:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo systemctl restart php-fpm&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;конфигурация_nginx_под_порт_5000&quot;&gt;Конфигурация Nginx под порт 5000&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Перепишем конфигурацию Nginx, настроив веб-сервер на порт 5000 и обработку PHP через UNIX-сокет:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cat &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039; | sudo tee /etc/nginx/nginx.conf &amp;gt; /dev/null
worker_processes 1;
events { worker_connections 1024; }
http {
    include mime.types;
    default_type application/octet-stream;
    sendfile on;
    keepalive_timeout 65;
    server {
        listen 5000;
        server_name localhost;
        root /usr/share/nginx/html;
        index index.html index.php;
        location / { try_files $uri $uri/ =404; }
        location ~ \.php$ {
            include fastcgi.conf;
            fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
        }
    }
}
EOF&lt;/pre&gt;

&lt;p&gt;
Включите автозапуск веб-сервера:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo systemctl enable nginx&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;настройка_беспарольного_доступа_в_sudoers&quot;&gt;Настройка беспарольного доступа в sudoers&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Чтобы PHP-скрипты могли вызывать утилиты управления аккаунтами без ввода пароля и без наличия текстового экрана (TTY), настроим правила безопасности. Команды будут пробрасываться во внешнюю систему через утилиту &lt;code&gt;systemd-run&lt;/code&gt; для обхода ограничений безопасности PHP.
&lt;/p&gt;

&lt;p&gt;
Откройте конфигурационный файл строго через visudo:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo EDITOR=nano visudo&lt;/pre&gt;

&lt;p&gt;
В самый конец файла добавьте следующие строки:
&lt;/p&gt;
&lt;pre class=&quot;code text&quot;&gt;http ALL=(ALL) NOPASSWD: /usr/bin/useradd, /usr/bin/userdel, /usr/bin/usermod, /usr/bin/chpasswd, /usr/bin/groupadd, /usr/bin/groupdel
http ALL=(ALL) NOPASSWD: /usr/bin/sh, /usr/bin/systemd-run, /usr/bin/sed
Defaults:http !requiretty&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 2.4. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_24_\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440\u0430_\u0438_\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439_\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;13481-16504&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit17&quot; id=&quot;шаг_25_настройка_samba-сервера_и_прав_для_windows-разработки&quot;&gt;Шаг 2.5. Настройка Samba-сервера и прав для Windows-разработки&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;настройка_файлового_сервера_samba&quot;&gt;Настройка файлового сервера Samba&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Для удобной правки файлов проекта напрямую из Windows через Проводник и Notepad++, настроим файловый сервер Samba.
&lt;/p&gt;

&lt;p&gt;
Создадим чистый конфигурационный файл:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo nano /etc/samba/smb.conf&lt;/pre&gt;

&lt;p&gt;
Вставьте в него следующий рабочий конфиг, который откроет доступ к папке Nginx с автоматическим наследованием безопасных прав доступа (775 для папок и 664 для файлов):
&lt;/p&gt;
&lt;pre class=&quot;code ini&quot;&gt;&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;global&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;re1&quot;&gt;workgroup&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt; WORKGROUP&lt;/span&gt;
    server string &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt; Arch Linux Tom1&lt;/span&gt;
    &lt;span class=&quot;re1&quot;&gt;security&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt; user&lt;/span&gt;
    map to guest &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt; Bad User&lt;/span&gt;
    log file &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt; /var/log/samba/%m.log&lt;/span&gt;
    max log size &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt; 50&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;nginx_html&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;re1&quot;&gt;path&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt; /usr/share/nginx/html&lt;/span&gt;
    &lt;span class=&quot;re1&quot;&gt;writable&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt; yes&lt;/span&gt;
    guest ok &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt; yes&lt;/span&gt;
    guest only &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt; yes&lt;/span&gt;
    force user &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt; http&lt;/span&gt;
    create mask &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt; 0664&lt;/span&gt;
    directory mask &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt; 0775&lt;/span&gt;
&amp;lt;/code &amp;gt;
&amp;nbsp;
Запустим службу Samba и добавим её в автозагрузку системы:
&amp;lt;code&amp;gt;
sudo systemctl enable --now smb&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;выставление_прав_доступа_на_папки_сайта&quot;&gt;Выставление прав доступа на папки сайта&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Передаем владение корневым каталогом сайта встроенному веб-пользователю &lt;code&gt;http&lt;/code&gt;. Задаем права &lt;code&gt;775&lt;/code&gt; для всех папок (чтобы Samba и Nginx могли создавать файлы) и &lt;code&gt;664&lt;/code&gt; для файлов (только чтение и запись, без флагов исполнения):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo chown -R http:http /usr/share/nginx/html/
sudo find /usr/share/nginx/html/ -type d -exec chmod 775 {} +
sudo find /usr/share/nginx/html/ -type f -exec chmod 664 {} +&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 2.5. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Samba-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u043f\u0440\u0430\u0432 \u0434\u043b\u044f Windows-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_25_\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_samba-\u0441\u0435\u0440\u0432\u0435\u0440\u0430_\u0438_\u043f\u0440\u0430\u0432_\u0434\u043b\u044f_windows-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:14,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;16505-18477&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit18&quot; id=&quot;структура_каталогов_и_исходный_код_веб-инсталлятора&quot;&gt;3. Структура каталогов и исходный код Веб-Инсталлятора&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Разверните структуру каталогов внутри папки веб-сервера &lt;code&gt;/usr/share/nginx/html/&lt;/code&gt;. Сделать это можно напрямую из Windows через сетевую Samba-папку. 
&lt;/p&gt;

&lt;p&gt;
Исходный код разделен по подпапкам по видам файлов:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;nginx_html/
├── index.html
├── api/
│   ├── users.php
│   └── groups.php
├── css/
│   └── style.css
└── js/
    └── app.js&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0412\u0435\u0431-\u0418\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430_\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432_\u0438_\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439_\u043a\u043e\u0434_\u0432\u0435\u0431-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:17,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;18478-19120&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit19&quot; id=&quot;шаг_31_главный_интерфейс_панели_indexhtml&quot;&gt;Шаг 3.1. Главный интерфейс панели (index.html)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создайте файл &lt;code&gt;index.html&lt;/code&gt; в корне сайта. Он формирует окно панели управления, вкладки переключения, таблицы и скрытые модальные формы:
&lt;/p&gt;
&lt;pre class=&quot;code html4strict&quot;&gt;&lt;span class=&quot;sc0&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ru&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/head.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;head&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/meta.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;meta&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;charset&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/meta.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;meta&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;viewport&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/title.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;title&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Control Panel&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/title.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;title&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/link.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;rel&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;css/style.css&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/head.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;head&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/body.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;body&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;window&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;header &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;window-header&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/span.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;span&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;title&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;Control Panel&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/span.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;span&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;window-controls&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;win-btn&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;?&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;win-btn&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;—&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;win-btn&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;⬜&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;win-btn close&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;×&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;header&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;window-body&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sc2&quot;&gt;&amp;lt;aside &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;sidebar&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;search-box&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/input.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;input&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text&amp;quot;&lt;/span&gt; placeholder&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;🔍 Search&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;nav &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu-group&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;^ File Sharing&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;#&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu-item&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;📁 Shared Folder&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;#&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu-item&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;⇆ File Services&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;#&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu-item active&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;👤 User &lt;span class=&quot;sc1&quot;&gt;&amp;amp; Group&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;menu-item&amp;quot;&amp;gt;🆔 Domain/LDAP&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;/aside&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;main class=&amp;quot;main-content&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;tabs&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button class=&amp;quot;tab active&amp;quot; id=&amp;quot;tab-user&amp;quot;&amp;gt;User&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button class=&amp;quot;tab&amp;quot; id=&amp;quot;tab-group&amp;quot;&amp;gt;Group&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;toolbar&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;div class=&amp;quot;actions&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;button class=&amp;quot;btn primary&amp;quot; id=&amp;quot;btn-create&amp;quot;&amp;gt;Create&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;button class=&amp;quot;btn&amp;quot; id=&amp;quot;btn-edit&amp;quot; disabled&amp;gt;Edit&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;button class=&amp;quot;btn&amp;quot; id=&amp;quot;btn-delete&amp;quot; disabled&amp;gt;Delete&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;div class=&amp;quot;filter&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;table-filter&amp;quot; placeholder=&amp;quot;∇ Filter&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;table-container&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;table id=&amp;quot;users-table&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;thead&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                            &amp;lt;tr&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;Name ▴&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;Email&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;2FA Status&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;Status&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                            &amp;lt;/tr&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;/thead&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;tbody&amp;gt;&amp;lt;/tbody&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;/table&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;footer class=&amp;quot;table-footer&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;span id=&amp;quot;items-count&amp;quot;&amp;gt;0 items&amp;lt;/span&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button id=&amp;quot;refresh-btn&amp;quot; class=&amp;quot;btn&amp;quot;&amp;gt;↻&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/footer&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;/main&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;        &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;!-- Модальное окно Пользователей --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;div class=&amp;quot;modal&amp;quot; id=&amp;quot;user-modal&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;        &amp;lt;div class=&amp;quot;modal-content&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;h3 id=&amp;quot;modal-title&amp;quot;&amp;gt;Create User&amp;lt;/h3&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;form id=&amp;quot;user-form&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;form-action&amp;quot; value=&amp;quot;create&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;old-username&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;form-group&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;label for=&amp;quot;username&amp;quot;&amp;gt;Имя пользователя:&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;username&amp;quot; required pattern=&amp;quot;^[a-z_][a-z0-9_-]*$&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;form-group&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;label for=&amp;quot;description&amp;quot;&amp;gt;Описание (GECOS):&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;description&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;form-group&amp;quot; id=&amp;quot;password-group&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;label for=&amp;quot;password&amp;quot;&amp;gt;Пароль:&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;input type=&amp;quot;password&amp;quot; id=&amp;quot;password&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;form-buttons&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button type=&amp;quot;button&amp;quot; class=&amp;quot;btn&amp;quot; id=&amp;quot;btn-modal-cancel&amp;quot;&amp;gt;Cancel&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button type=&amp;quot;submit&amp;quot; class=&amp;quot;btn primary&amp;quot;&amp;gt;Save&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;        &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;!-- Модальное окно Групп --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;div class=&amp;quot;modal&amp;quot; id=&amp;quot;group-modal&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;        &amp;lt;div class=&amp;quot;modal-content&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;h3&amp;gt;Create Group&amp;lt;/h3&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;form id=&amp;quot;group-form&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;form-group&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;label for=&amp;quot;group-name&amp;quot;&amp;gt;Имя группы:&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;group-name&amp;quot; required pattern=&amp;quot;^[a-z_][a-z0-9_-]*$&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;form-buttons&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button type=&amp;quot;button&amp;quot; class=&amp;quot;btn&amp;quot; id=&amp;quot;btn-group-cancel&amp;quot;&amp;gt;Cancel&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button type=&amp;quot;submit&amp;quot; class=&amp;quot;btn primary&amp;quot;&amp;gt;Save&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;        &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;script src=&amp;quot;js/app.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 3.1. \u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u0430\u043d\u0435\u043b\u0438 (index.html)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_31_\u0433\u043b\u0430\u0432\u043d\u044b\u0439_\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441_\u043f\u0430\u043d\u0435\u043b\u0438_indexhtml&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:18,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;19121-24304&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit20&quot; id=&quot;шаг_32_стили_оформления_интерфейса_css_stylecss&quot;&gt;Шаг 3.2. Стили оформления интерфейса (css/style.css)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создайте файл &lt;code&gt;css/style.css&lt;/code&gt; в подпапке &lt;code&gt;css/&lt;/code&gt;. Код задает внешний вид окна приложения, таблиц данных, кнопок управления и всплывающих модальных окон:
&lt;/p&gt;
&lt;pre class=&quot;code css&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;box-sizing&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;border-box&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;font-family&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; -apple-system&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; BlinkMacSystemFont&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Segoe UI&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; Roboto&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sans-serif&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
body &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;background-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f0f2f5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100vh&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.window&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1000px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;550px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;box-shadow&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;5px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;25px&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;rgba&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;flex-direction&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;overflow&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;hidden&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#dcdcdc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.window-header&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; space-between&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.window-header&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;.title&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;14px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#2d3748&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.window-controls&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;.win-btn&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;8px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#718096&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.window-body&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;flex&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;overflow&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;hidden&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.sidebar&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;230px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border-right&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.search-box&lt;/span&gt; input &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cbd5e0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.menu-group&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;11px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;text-transform&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;uppercase&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#a0aec0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.menu-item&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;block&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;8px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#4a5568&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;text-decoration&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.menu-item&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.active&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#ebf8ff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#2b6cb0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.main-content&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;flex&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;flex-direction&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;20px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.tabs&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;margin-top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.tab&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;20px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;14px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#718096&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.tab&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.active&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#3182ce&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;2px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#3182ce&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.toolbar&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; space-between&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.btn&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;14px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cbd5e0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#4a5568&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.btn&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#a0aec0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; not-allowed&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.btn&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;hover&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;not&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;disabled&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.btn&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.primary&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#3182ce&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#3182ce&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.filter&lt;/span&gt; input &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cbd5e0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.table-container&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;flex&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;overflow-y&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;auto&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;table&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border-collapse&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;collapse&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
th&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; td &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;text-align&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#edf2f7&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; user-select&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
th &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#4a5568&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
tbody tr &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
tbody tr&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;hover&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
tr&lt;span class=&quot;re1&quot;&gt;.selected-user&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e8f0fe&lt;/span&gt; !important&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.status-normal&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#38a169&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.status-deactivated&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e53e3e&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.table-footer&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex-end&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; gap&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#718096&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.modal&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;fixed&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;rgba&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;z-index&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.modal&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.open&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.modal-content&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;20px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;400px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;box-shadow&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;rgba&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.modal-content&lt;/span&gt; h3 &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#2d3748&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.form-group&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.form-group&lt;/span&gt; label &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;block&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#4a5568&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.form-group&lt;/span&gt; input &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;8px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cbd5e0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.form-buttons&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex-end&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; gap&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;margin-top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;18px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;lt;/code &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;====&lt;/span&gt; Шаг &lt;span class=&quot;nu0&quot;&gt;3.3&lt;/span&gt;. Серверный обработчик пользователей &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;api/users.php&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;====&lt;/span&gt;
Создайте файл &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;api/users.php&lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt; в подпапке &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;api/&lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;. Скрипт обрабатывает GET-запросы для вывода учетных записей &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;исключая технического &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;nobody&lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; и POST-запросы для выполнения атомарных операций через &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;systemd-run&lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt; в обход изоляции&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
&amp;lt;code php&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;lt;?php
header&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Content-Type: application/json; charset=utf-8&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
$input &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; json_decode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;file_get_contents&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;php://input&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; true&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$_SERVER&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;REQUEST_METHOD&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;GET&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    $usersList &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;is_readable&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;/etc/passwd&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        $lines &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;/etc/passwd&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        foreach &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$lines as $line&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            $parts &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; explode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;:&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $line&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;count&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$parts&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                $username &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; $parts&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; $uid &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;int&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;$parts&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; $description &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; $parts&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$uid &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; || $uid &lt;span class=&quot;sy0&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &amp;amp;&amp;amp; $username !&lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;nobody&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; || $username &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;guest&#039;&lt;/span&gt; || $username &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;admin&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    $usersList&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;name&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; $username&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;email&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;desc&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; $description&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;tfa&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Disabled&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;status&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Normal&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    echo json_encode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$usersList&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; JSON_UNESCAPED_UNICODE&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; exit&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$_SERVER&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;REQUEST_METHOD&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;POST&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    $action &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; $input&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    $username &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preg_replace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;/[^a-z0-9_-]/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $input&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    $description &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; $input&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;description&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    $password &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; $input&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;password&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    switch &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$action&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        case &lt;span class=&quot;st0&quot;&gt;&#039;create&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            $salt &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;$1$&#039;&lt;/span&gt; . substr&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;md5&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;uniqid&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rand&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; true&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; . &lt;span class=&quot;st0&quot;&gt;&#039;$&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            $hashed_password &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; crypt&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$password&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $salt&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            $uid_gid &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; rand&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1100&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1900&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
&amp;nbsp;
            $passwd_line &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;{$username}:x:{$uid_gid}:{$uid_gid}:{$description}:/home/{$username}:/bin/bash&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            $shadow_line &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;{$username}:{$hashed_password}:19500:0:99999:7:::&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            $group_line &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;{$username}:x:{$uid_gid}:&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            $system_cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;echo &#039;{$passwd_line}&#039; &amp;gt;&amp;gt; /etc/passwd &amp;amp;&amp;amp; echo &#039;{$shadow_line}&#039; &amp;gt;&amp;gt; /etc/shadow &amp;amp;&amp;amp; echo &#039;{$group_line}&#039; &amp;gt;&amp;gt; /etc/group &amp;amp;&amp;amp; mkdir -p /home/{$username} &amp;amp;&amp;amp; chown -R {$uid_gid}:{$uid_gid} /home/{$username}&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            $cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; . escapeshellarg&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$system_cmd&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; . &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            exec&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$cmd&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $o&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $r&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            echo json_encode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$r &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; implode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039; &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $o&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; break&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        case &lt;span class=&quot;st0&quot;&gt;&#039;update&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            $old_username &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preg_replace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;/[^a-z0-9_-]/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $input&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;old_username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            $clean_desc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; str_replace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;\/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $description&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            $update_cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sed -i -E &#039;s/^({$old_username}:[^:]*:[^:]*:[^:]*):[^:]*(:.*)/\&lt;span class=&quot;es2&quot;&gt;\1&lt;/span&gt;:{$clean_desc}\&lt;span class=&quot;es2&quot;&gt;\2&lt;/span&gt;/&#039; /etc/passwd&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;!&lt;span class=&quot;kw5&quot;&gt;empty&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$password&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                $salt &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;$1$&#039;&lt;/span&gt; . substr&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;md5&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;uniqid&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rand&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; true&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; . &lt;span class=&quot;st0&quot;&gt;&#039;$&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                $hashed_password &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; crypt&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$password&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $salt&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                $clean_hash &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; str_replace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;\/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $hashed_password&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                $update_cmd .&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;amp;&amp;amp; sed -i -E &#039;s/^({$old_username}:)[^:]*(:.*)/\&lt;span class=&quot;es2&quot;&gt;\1&lt;/span&gt;{$clean_hash}\&lt;span class=&quot;es2&quot;&gt;\2&lt;/span&gt;/&#039; /etc/shadow&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            $cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; . escapeshellarg&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$update_cmd&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; . &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            exec&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$cmd&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $o&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $r&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            echo json_encode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$r &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; implode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039; &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $o&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; break&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        case &lt;span class=&quot;st0&quot;&gt;&#039;delete&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$username &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;root&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; echo json_encode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; false&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Запрещено&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; exit&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            $delete_cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sed -i &#039;/^{$username}:/d&#039; /etc/passwd &amp;amp;&amp;amp; sed -i &#039;/^{$username}:/d&#039; /etc/shadow &amp;amp;&amp;amp; sed -i &#039;/^{$username}:/d&#039; /etc/group &amp;amp;&amp;amp; rm -rf /home/{$username}&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            $cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; . escapeshellarg&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$delete_cmd&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; . &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            exec&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$cmd&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $o&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $r&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            echo json_encode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$r &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; implode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039; &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $o&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; break&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    exit&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
?&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;lt;/code &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;====&lt;/span&gt; Шаг &lt;span class=&quot;nu0&quot;&gt;3.4&lt;/span&gt;. Серверный обработчик групп &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;api/groups.php&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;====&lt;/span&gt;
Создайте файл &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;api/groups.php&lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt; в подпапке &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;api/&lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;. Скрипт парсит системный файл &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;/etc/group&lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; выстраивает связи участников и нативно создаёт/удаляет группы в ОС через &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;systemd-run&lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
&amp;lt;code php&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;lt;?php
header&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Content-Type: application/json; charset=utf-8&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
$input &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; json_decode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;file_get_contents&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;php://input&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; true&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$_SERVER&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;REQUEST_METHOD&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;GET&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    $groupsList &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;is_readable&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;/etc/group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        $lines &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;/etc/group&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        foreach &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$lines as $line&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            $parts &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; explode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;:&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $line&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;count&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$parts&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                $group_name &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; $parts&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; $gid &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;int&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;$parts&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; $users &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; $parts&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$gid &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; || $gid &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;998&lt;/span&gt; || $gid &lt;span class=&quot;sy0&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &amp;amp;&amp;amp; $group_name !&lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;nobody&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    $groupsList&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;name&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; $group_name&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;gid&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; $gid&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;users&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;empty&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$users&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; ? &lt;span class=&quot;st0&quot;&gt;&#039;—&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; str_replace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;,&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;, &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $users&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;status&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Normal&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    echo json_encode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$groupsList&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; JSON_UNESCAPED_UNICODE&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; exit&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$_SERVER&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;REQUEST_METHOD&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;POST&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    $group_name &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preg_replace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;/[^a-z0-9_-]/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $input&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;group_name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$input&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;create&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        $cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; . escapeshellarg&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;groupadd {$group_name}&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; . &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; else &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$group_name &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;root&#039;&lt;/span&gt; || $group_name &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;wheel&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; echo json_encode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; false&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Запрещено&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; exit&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        $cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; . escapeshellarg&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;groupdel {$group_name}&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; . &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    exec&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$cmd&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $o&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $r&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    echo json_encode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$r &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; implode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039; &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; $o&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; exit&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
?&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;lt;/code &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;====&lt;/span&gt; Шаг &lt;span class=&quot;nu0&quot;&gt;3.5&lt;/span&gt;. Клиентские скрипты логики &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;js/app.js&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;====&lt;/span&gt;
Создайте файл &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;js/app.js&lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt; в подпапке &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;js/&lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;. Скрипт управляет асинхронным обновлением таблиц &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fetch&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; переключением контекста вкладок&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; фильтрацией на лету и валидацией полей ввода&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
&amp;lt;code javascript&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
document.addEventListener&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;DOMContentLoaded&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    const tableBody &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.querySelector&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;#users-table tbody&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    const itemsCount &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;items-count&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    const refreshBtn &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;refresh-btn&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    const filterInput &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;table-filter&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    const btnCreate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-create&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    const btnEdit &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-edit&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    const btnDelete &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-delete&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    const userModal &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;user-modal&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    const userForm &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;user-form&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    const modalTitle &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;modal-title&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    const btnModalCancel &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-modal-cancel&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    const tabUser &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tab-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    const tabGroup &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tab-group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    const tableHeader &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.querySelector&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;#users-table thead tr&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    const groupModal &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;group-modal&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    const groupForm &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;group-form&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    const btnGroupCancel &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-group-cancel&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    let currentTab &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;user&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; selectedUsername &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; null&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; selectedGroupName &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; null&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; selectedUserRow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; null&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    async function loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        try &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            const r &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await fetch&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;api/users.php&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; const d &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await r.json&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; renderTable&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;d&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; catch &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка сети&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    function renderTable&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;users&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        tableBody&lt;span class=&quot;re1&quot;&gt;.innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        users.forEach&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            const tr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.createElement&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tr&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; tr&lt;span class=&quot;re1&quot;&gt;.dataset&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; user.name&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; tr&lt;span class=&quot;re1&quot;&gt;.dataset&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.desc&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; user.desc&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tr&lt;span class=&quot;re1&quot;&gt;.innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `&amp;lt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&amp;lt;b&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;user.name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&amp;lt;/b&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&amp;lt;/td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&amp;lt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;user.email&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&amp;lt;/td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&amp;lt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;user.desc&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&amp;lt;/td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&amp;lt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;user.tfa&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&amp;lt;/td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&amp;lt;td class&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;${user.status === &#039;Normal&#039; ? &#039;status-normal&#039; : &#039;status-deactivated&#039;}&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;user.status&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&amp;lt;/td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;`&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tr.addEventListener&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                const &lt;span class=&quot;kw5&quot;&gt;active&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tableBody.querySelector&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;.selected-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;active&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; active&lt;span class=&quot;re1&quot;&gt;.classList&lt;/span&gt;.remove&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;selected-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;selectedUsername &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; user.name&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; else &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    selectedUsername &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; user.name&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; selectedUserRow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tr&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; tr&lt;span class=&quot;re1&quot;&gt;.classList&lt;/span&gt;.add&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;selected-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    btnEdit&lt;span class=&quot;re1&quot;&gt;.disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; false&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; btnDelete&lt;span class=&quot;re1&quot;&gt;.disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user&lt;span class=&quot;re1&quot;&gt;.name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;root&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tableBody.appendChild&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        itemsCount&lt;span class=&quot;re1&quot;&gt;.textContent&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;users.length&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; items`&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    async function loadGroups&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        try &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; const r &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await fetch&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;api/groups.php&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; const d &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await r.json&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; renderGroupsTable&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;d&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; catch &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    function renderGroupsTable&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;groups&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        tableBody&lt;span class=&quot;re1&quot;&gt;.innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        groups.forEach&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;group &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            const tr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.createElement&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tr&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tr&lt;span class=&quot;re1&quot;&gt;.innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `&amp;lt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&amp;lt;b&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;group.name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&amp;lt;/b&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&amp;lt;/td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&amp;lt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;group.gid&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&amp;lt;/td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&amp;lt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;group.users&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&amp;lt;/td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&amp;lt;td class&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;status-normal&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;group.status&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&amp;lt;/td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;`&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tr.addEventListener&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                const &lt;span class=&quot;kw5&quot;&gt;active&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tableBody.querySelector&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;.selected-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;active&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; active&lt;span class=&quot;re1&quot;&gt;.classList&lt;/span&gt;.remove&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;selected-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;selectedGroupName &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; group.name&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; selectedGroupName &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; null&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; btnDelete&lt;span class=&quot;re1&quot;&gt;.disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; true&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; else &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    selectedGroupName &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; group.name&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; tr&lt;span class=&quot;re1&quot;&gt;.classList&lt;/span&gt;.add&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;selected-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    btnEdit&lt;span class=&quot;re1&quot;&gt;.disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; true&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; btnDelete&lt;span class=&quot;re1&quot;&gt;.disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;group&lt;span class=&quot;re1&quot;&gt;.name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;root&#039;&lt;/span&gt; || group&lt;span class=&quot;re1&quot;&gt;.name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;wheel&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tableBody.appendChild&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        itemsCount&lt;span class=&quot;re1&quot;&gt;.textContent&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;groups.length&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; items`&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    function resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; selectedUsername &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; null&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; selectedGroupName &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; null&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; selectedUserRow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; null&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; btnEdit&lt;span class=&quot;re1&quot;&gt;.disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; true&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; btnDelete&lt;span class=&quot;re1&quot;&gt;.disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; true&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    tabUser.addEventListener&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; tabGroup&lt;span class=&quot;re1&quot;&gt;.classList&lt;/span&gt;.remove&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; tabUser&lt;span class=&quot;re1&quot;&gt;.classList&lt;/span&gt;.add&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; currentTab &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;user&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; tableHeader&lt;span class=&quot;re1&quot;&gt;.innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `&amp;lt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Name ▴&amp;lt;/th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&amp;lt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Email&amp;lt;/th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&amp;lt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Description&amp;lt;/th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&amp;lt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;2FA Status&amp;lt;/th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&amp;lt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Status&amp;lt;/th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;`&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    tabGroup.addEventListener&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; tabUser&lt;span class=&quot;re1&quot;&gt;.classList&lt;/span&gt;.remove&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; tabGroup&lt;span class=&quot;re1&quot;&gt;.classList&lt;/span&gt;.add&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; currentTab &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;group&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; tableHeader&lt;span class=&quot;re1&quot;&gt;.innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `&amp;lt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Group Name ▴&amp;lt;/th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&amp;lt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;GID&amp;lt;/th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&amp;lt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Members &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Users&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&amp;lt;/th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&amp;lt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Status&amp;lt;/th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;`&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; loadGroups&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    filterInput.addEventListener&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;input&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        const v &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; e&lt;span class=&quot;re1&quot;&gt;.target&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.value&lt;/span&gt;.toLowerCase&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        Array.from&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tableBody.querySelectorAll&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tr&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.forEach&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tr &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; tr&lt;span class=&quot;re1&quot;&gt;.style&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.display&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tr&lt;span class=&quot;re1&quot;&gt;.textContent&lt;/span&gt;.toLowerCase&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.includes&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;v&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; ? &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;none&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    btnCreate.addEventListener&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;currentTab &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; userForm.reset&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;form-action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;create&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; false&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;password-group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.style&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.display&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;block&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; modalTitle&lt;span class=&quot;re1&quot;&gt;.textContent&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Create User&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; userModal&lt;span class=&quot;re1&quot;&gt;.classList&lt;/span&gt;.add&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        else &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; groupForm.reset&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; groupModal&lt;span class=&quot;re1&quot;&gt;.classList&lt;/span&gt;.add&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    btnEdit.addEventListener&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;currentTab !&lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;user&#039;&lt;/span&gt; || !selectedUsername&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; return&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        userForm.reset&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;form-action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;update&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;old-username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; selectedUsername&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        const uInput &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; uInput&lt;span class=&quot;re1&quot;&gt;.value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; selectedUsername&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; uInput&lt;span class=&quot;re1&quot;&gt;.disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; true&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;description&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; selectedUserRow&lt;span class=&quot;re1&quot;&gt;.dataset&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.desc&lt;/span&gt; || &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        modalTitle&lt;span class=&quot;re1&quot;&gt;.textContent&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Edit User&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; userModal&lt;span class=&quot;re1&quot;&gt;.classList&lt;/span&gt;.add&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    btnDelete.addEventListener&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; async &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;currentTab &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;user&#039;&lt;/span&gt; &amp;amp;&amp;amp; selectedUsername&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;confirm&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;`Удалить $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;selectedUsername&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;?`&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; await sendAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; action&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;delete&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; username&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; selectedUsername &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;currentTab &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;group&#039;&lt;/span&gt; &amp;amp;&amp;amp; selectedGroupName&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;confirm&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;`Удалить группу $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;selectedGroupName&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;?`&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; await sendGroupAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; action&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;delete&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; group_name&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; selectedGroupName &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    userForm.addEventListener&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;submit&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; async &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        e.preventDefault&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        await sendAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; action&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;form-action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; username&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; description&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;description&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; password&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;password&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; old_username&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;old-username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.value&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        userModal&lt;span class=&quot;re1&quot;&gt;.classList&lt;/span&gt;.remove&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    groupForm.addEventListener&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;submit&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; async &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        e.preventDefault&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; await sendGroupAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; action&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;create&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; group_name&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;group-name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.value&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; groupModal&lt;span class=&quot;re1&quot;&gt;.classList&lt;/span&gt;.remove&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    async function sendAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        const r &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await fetch&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;api/users.php&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; method&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;POST&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; headers&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Content-Type&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;application/json&#039;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; body&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; JSON.stringify&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        const res &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await r.json&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;res.success&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; else alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка: &#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; res.error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    async function sendGroupAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        const r &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await fetch&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;api/groups.php&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; method&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;POST&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; headers&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Content-Type&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;application/json&#039;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; body&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; JSON.stringify&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        const res &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await r.json&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;res.success&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; loadGroups&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; else alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка: &#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; res.error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    btnModalCancel.addEventListener&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; userModal&lt;span class=&quot;re1&quot;&gt;.classList&lt;/span&gt;.remove&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    btnGroupCancel.addEventListener&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; groupModal&lt;span class=&quot;re1&quot;&gt;.classList&lt;/span&gt;.remove&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    refreshBtn.addEventListener&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;currentTab &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; else loadGroups&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    function escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;t&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; if &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;!t&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; return &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; return t.toString&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.replace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;/&amp;amp;/g&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;amp;amp;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.replace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;/&amp;lt;/g&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;amp;lt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.replace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;/&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;/g&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;amp;gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;lt;/code &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;=====&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;. Подготовка слепка системы и консервация в SquashFS &lt;span class=&quot;sy0&quot;&gt;=====&lt;/span&gt;
&amp;nbsp;
Чтобы живой Live-образ без ошибок загружался целиком в оперативную память на любом стороннем оборудовании&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; мы должны временно очистить конфигурацию точек монтирования хоста перед сборкой&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; исключив привязку к его локальным жестким UUID.
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;====&lt;/span&gt; Шаг &lt;span class=&quot;nu0&quot;&gt;4.1&lt;/span&gt;. Временное обнуление таблицы разделов &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fstab&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;====&lt;/span&gt;
Сделайте резервную копию рабочей таблицы разделов вашего хоста &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;tom_1&lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
&amp;lt;code&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
sudo cp /etc/fstab /etc/fstab.bak&lt;/pre&gt;

&lt;p&gt;
Полностью очистите оригинальный конфигурационный файл &lt;code&gt;/etc/fstab&lt;/code&gt;, чтобы инициализация systemd Live-образа не спотыкалась о чужую дисковую разметку:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo truncate -s 0 /etc/fstab&lt;/pre&gt;

&lt;p&gt;
Убедитесь, что оригинальный файл гарантированно стал пустым:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cat /etc/fstab&lt;/pre&gt;

&lt;p&gt;
Команда должна вернуть абсолютно пустую строку, подтверждая успешность операции.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 3.2. \u0421\u0442\u0438\u043b\u0438 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 (css\/style.css)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_32_\u0441\u0442\u0438\u043b\u0438_\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f_\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430_css_stylecss&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:19,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;24305-44173&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit21&quot; id=&quot;шаг_42_запаковка_файловой_системы_в_squashfs&quot;&gt;Шаг 4.2. Запаковка файловой системы в SquashFS&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Запустите ресурсоемкую команду создания монолитного сжатого слепка системы. Утилита полностью проигнорирует виртуальные папки (`/proc`, `/sys`), временные ресурсы и файлы резервных копий дисков:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo mksquashfs / ~/custom_iso/arch/x86_64/airootfs.sfs -e /proc /sys /dev /run /tmp /mnt /media /lost+found ~/archlinux-x86_64.iso ~/custom_iso -comp zstd -b 1M&lt;/pre&gt;

&lt;p&gt;
Дождитесь полного завершения операции, пока на экране снова не появится приглашение командной строки вашего пользователя.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 4.2. \u0417\u0430\u043f\u0430\u043a\u043e\u0432\u043a\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432 SquashFS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_42_\u0437\u0430\u043f\u0430\u043a\u043e\u0432\u043a\u0430_\u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439_\u0441\u0438\u0441\u0442\u0435\u043c\u044b_\u0432_squashfs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:22,&amp;quot;secid&amp;quot;:21,&amp;quot;range&amp;quot;:&amp;quot;44174-45012&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit22&quot; id=&quot;шаг_43_немедленное_восстановление_хоста&quot;&gt;Шаг 4.3. Немедленное восстановление хоста&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Как только упаковщик &lt;code&gt;mksquashfs&lt;/code&gt; завершит свою работу, незамедлительно верните оригинальную таблицу разделов на место, чтобы хост &lt;code&gt;tom_1&lt;/code&gt; сохранил работоспособность при следующем перезапуске:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo mv /etc/fstab.bak /etc/fstab&lt;/pre&gt;

&lt;p&gt;
Проверьте, что Btrfs-субтома и UEFI-разделы хоста вернулись на свои места:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cat /etc/fstab&lt;/pre&gt;

&lt;p&gt;
Передайте права владения на созданный файл слепка текущему рабочему пользователю:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo chown eva:eva ~/custom_iso/arch/x86_64/airootfs.sfs&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 4.3. \u041d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_43_\u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0435_\u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435_\u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:23,&amp;quot;secid&amp;quot;:22,&amp;quot;range&amp;quot;:&amp;quot;45013-45877&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit23&quot; id=&quot;формирование_структуры_конструктора_iso_и_загрузчика_uefi&quot;&gt;5. Формирование структуры конструктора ISO и Загрузчика UEFI&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Чтобы материнские платы Supermicro, HP и ноунеймы поняли, как запускать наш кастомный образ, внутри папки конструктора должна лежать строгая структура файлов UEFI-загрузчика systemd-boot. Копирование файлов ядра и initramfs производится строго из родного каталога самого обновленного хоста.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;5. \u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 ISO \u0438 \u0417\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 UEFI&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b_\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430_iso_\u0438_\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430_uefi&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:26,&amp;quot;secid&amp;quot;:23,&amp;quot;range&amp;quot;:&amp;quot;45878-46499&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit24&quot; id=&quot;шаг_51_создание_структуры_каталогов_загрузчика&quot;&gt;Шаг 5.1. Создание структуры каталогов загрузчика&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создаем дерево изолированных путей для ядра и конфигурационных файлов UEFI внутри папки конструктора:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;mkdir -p ~/custom_iso/EFI/BOOT/ ~/custom_iso/loader/entries/ ~/custom_iso/arch/boot/x86_64/&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 5.1. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_51_\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b_\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432_\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:26,&amp;quot;secid&amp;quot;:24,&amp;quot;range&amp;quot;:&amp;quot;46500-46891&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit25&quot; id=&quot;шаг_52_копирование_родных_файлов_загрузки_и_ядра&quot;&gt;Шаг 5.2. Копирование родных файлов загрузки и ядра&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Копируем сам бинарник загрузчика, родное ядро Linux и сгенерированный под него виртуальный диск (initramfs) из живой системы &lt;code&gt;tom_1&lt;/code&gt; напрямую в конструктор:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cp /boot/EFI/BOOT/BOOTX64.EFI ~/custom_iso/EFI/BOOT/BOOTX64.EFI
cp /boot/vmlinuz-linux ~/custom_iso/arch/boot/x86_64/vmlinuz-linux
cp /boot/initramfs-linux.img ~/custom_iso/arch/boot/x86_64/initramfs-linux.img&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 5.2. \u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u043e\u0434\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u044f\u0434\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_52_\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u0440\u043e\u0434\u043d\u044b\u0445_\u0444\u0430\u0439\u043b\u043e\u0432_\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438_\u0438_\u044f\u0434\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:27,&amp;quot;secid&amp;quot;:25,&amp;quot;range&amp;quot;:&amp;quot;46892-47487&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit26&quot; id=&quot;шаг_53_перезапись_конфигурации_загрузчика_по_логике_label&quot;&gt;Шаг 5.3. Перезапись конфигурации загрузчика по логике LABEL&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создаем конфигурационный файл загрузки ядра. Зашиваем туда жесткую глобальную метку тома &lt;code&gt;archisolabel=ARCH_202605&lt;/code&gt;, чтобы ядро искало флешку не по уникальному UUID, а по имени. 
&lt;/p&gt;

&lt;p&gt;
Помня про отсутствие монитора на реальных серверах, сразу активируем вывод ядерной консоли в последовательный COM-порт и глушим ложные прерывания виртуализации Hyper-V флагом &lt;code&gt;unknown_nmi_panic=0&lt;/code&gt; для стабильного прохождения тестов:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cat &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039; &amp;gt; ~/custom_iso/loader/entries/01-archiso-linux.conf
title Arch Linux install medium (x86_64, UEFI)
linux /arch/boot/x86_64/vmlinuz-linux
initrd /arch/boot/x86_64/initramfs-linux.img
options archisobasedir=arch archisolabel=ARCH_202605 console=tty0 console=ttyS0,115200 unknown_nmi_panic=0
EOF&lt;/pre&gt;

&lt;p&gt;
Параллельно создаем глобальный конфигурационный файл загрузчика:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cat &amp;lt;&amp;lt; &amp;#039;EOF&amp;#039; &amp;gt; ~/custom_iso/loader/loader.conf
timeout 3
default 01-archiso-linux.conf
EOF&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 5.3. \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 \u043f\u043e \u043b\u043e\u0433\u0438\u043a\u0435 LABEL&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_53_\u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044c_\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438_\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430_\u043f\u043e_\u043b\u043e\u0433\u0438\u043a\u0435_label&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:28,&amp;quot;secid&amp;quot;:26,&amp;quot;range&amp;quot;:&amp;quot;47488-48862&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit27&quot; id=&quot;финальная_сборка_и_развертывание_кастомного_iso&quot;&gt;6. Финальная сборка и развертывание кастомного ISO&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Структура папок конструктора полностью готова к финальной упаковке. Осталось запустить утилиту &lt;code&gt;xorriso&lt;/code&gt;, чтобы собрать папки и настроенный слепок в один готовый загрузочный файл.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;6. \u0424\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0431\u043e\u0440\u043a\u0430 \u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e ISO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f_\u0441\u0431\u043e\u0440\u043a\u0430_\u0438_\u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435_\u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:30,&amp;quot;secid&amp;quot;:27,&amp;quot;range&amp;quot;:&amp;quot;48863-49293&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit28&quot; id=&quot;шаг_61_упаковка_универсального_образа_через_xorriso&quot;&gt;Шаг 6.1. Упаковка универсального образа через xorriso&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Запустите команду сборки. В ней мы жёстко привязываем идентификатор тома к нашей глобальной метке тома (параметр &lt;code&gt;-volid «ARCH_202605»&lt;/code&gt;), чтобы загрузчик ядра не потерял флешку при запуске «вслепую»:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;xorriso -as mkisofs \
  -iso-level 3 \
  -full-iso9660-filenames \
  -volid &amp;quot;ARCH_202605&amp;quot; \
  -eltorito-alt-boot \
  -e &amp;quot;EFI/BOOT/BOOTX64.EFI&amp;quot; \
  -no-emul-boot \
  -isohybrid-gpt-basdat \
  -output ~/arch_custom.iso \
  ~/custom_iso&lt;/pre&gt;

&lt;p&gt;
Убедитесь, что утилита вывела сообщение о為 успешном завершении, и проверьте точный физический размер созданного образа (он должен быть в районе 1.6–1.8 ГБ):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;ls -lh ~/arch_custom.iso&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 6.1. \u0423\u043f\u0430\u043a\u043e\u0432\u043a\u0430 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 \u0447\u0435\u0440\u0435\u0437 xorriso&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_61_\u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0430_\u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0433\u043e_\u043e\u0431\u0440\u0430\u0437\u0430_\u0447\u0435\u0440\u0435\u0437_xorriso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:30,&amp;quot;secid&amp;quot;:28,&amp;quot;range&amp;quot;:&amp;quot;49294-50316&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit29&quot; id=&quot;шаг_62_перенос_iso_в_среду_windows&quot;&gt;Шаг 6.2. Перенос ISO в среду Windows&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы забрать готовый файл образа на рабочую Windows-машину без использования стороннего софта, откройте встроенную консоль &lt;strong&gt;PowerShell&lt;/strong&gt; на вашем ПК и выполните команду безопасного копирования (замените IP на текущий адрес вашей ВМ &lt;code&gt;tom_1&lt;/code&gt;):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;scp eva@192.168.1.72:~/arch_custom.iso $home\Downloads\arch_custom.iso&lt;/pre&gt;

&lt;p&gt;
Введите пароль пользователя &lt;code&gt;eva&lt;/code&gt;. Образ моментально скачается в вашу системную папку «Загрузки».
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 6.2. \u041f\u0435\u0440\u0435\u043d\u043e\u0441 ISO \u0432 \u0441\u0440\u0435\u0434\u0443 Windows&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_62_\u043f\u0435\u0440\u0435\u043d\u043e\u0441_iso_\u0432_\u0441\u0440\u0435\u0434\u0443_windows&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:32,&amp;quot;secid&amp;quot;:29,&amp;quot;range&amp;quot;:&amp;quot;50317-51068&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit30&quot; id=&quot;шаг_63_запись_образа_на_флешку_и_запуск_в_hyper-v&quot;&gt;Шаг 6.3. Запись образа на флешку и запуск в Hyper-V&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
1. Откройте утилиту &lt;strong&gt;Rufus&lt;/strong&gt; на Windows. Выберите скачанный файл &lt;code&gt;arch_custom.iso&lt;/code&gt;.
2. Выставили параметры разметки: Схема раздела — &lt;strong&gt;GPT&lt;/strong&gt;, Целевая система — &lt;strong&gt;UEFI (не-CSM)&lt;/strong&gt;. Метка тома автоматически встанет как &lt;strong&gt;ARCH_202605&lt;/strong&gt;. Нажмите «Старт» для записи.
3. Отсоедините виртуальный диск флешки через окно «Управление дисками» Windows (Правый клик по плашке диска → Отсоединить виртуальный жесткий диск).
4. Зайдите в параметры изолированной ВМ &lt;code&gt;tom_2&lt;/code&gt; в Диспетчере Hyper-V, добавьте жесткий диск, указав файл вашей флешки, и поднимите его на первое место в списке загрузки (Firmware). Галочка Secure Boot должна быть снята.
&lt;/p&gt;

&lt;p&gt;
Запустите машину &lt;code&gt;tom_2&lt;/code&gt;. Система загрузится из Live-ОЗУ флешки, поднимет статику &lt;strong&gt;192.168.1.150&lt;/strong&gt;, и вы сможете управлять её пользователями и группами с любого устройства в локальной сети, просто открыв в браузере адрес: &lt;strong&gt;&lt;a href=&quot;http://192.168.1.150:5000&quot; class=&quot;urlextern&quot; title=&quot;http://192.168.1.150:5000&quot; rel=&quot;ugc nofollow&quot;&gt;http://192.168.1.150:5000&lt;/a&gt;&lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 6.3. \u0417\u0430\u043f\u0438\u0441\u044c \u043e\u0431\u0440\u0430\u0437\u0430 \u043d\u0430 \u0444\u043b\u0435\u0448\u043a\u0443 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a \u0432 Hyper-V&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_63_\u0437\u0430\u043f\u0438\u0441\u044c_\u043e\u0431\u0440\u0430\u0437\u0430_\u043d\u0430_\u0444\u043b\u0435\u0448\u043a\u0443_\u0438_\u0437\u0430\u043f\u0443\u0441\u043a_\u0432_hyper-v&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:33,&amp;quot;secid&amp;quot;:30,&amp;quot;range&amp;quot;:&amp;quot;51069-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 25 May 2026 19:38:12 +0000</pubDate>
        </item>
        <item>
            <title>tmp_26.05.26_frontend</title>
            <link>https://wwoss.ru/doku.php?id=tmp_26.05.26_frontend&amp;rev=1779822614</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;разработка_веб-фронтенда&quot;&gt;Разработка Веб-Фронтенда&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
На нашем будущем сервере будет постоянно запущен веб-сервер Nginx. Он предоставит пользователю возможность управлять системой через веб-приложение в окне браузера по временному порту 7000. Если пользователь захочет использовать собственный веб-сервер, в приложении ему будет доступен веб-сервер Apache2 с поддержкой PHP. Службы OpenSSH и Samba, автозапуск которых настраивается для создания веб-приложения, также будут по умолчанию отключены с возможностью их постоянного включения через панель управления.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0412\u0435\u0431-\u0424\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430_\u0432\u0435\u0431-\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-973&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;настройка_nginx_на_обработку_php&quot;&gt;Настройка Nginx на обработку PHP&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Nginx \u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 PHP&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_nginx_\u043d\u0430_\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443_php&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;974-1037&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;файл_nginxconf&quot;&gt;Файл nginx.conf&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Мы перепишем конфигурационный файл nginx.conf, добавив правильный блок location ~ \.php$, работающий через UNIX-сокет.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;tee&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx.conf &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null
worker_processes  &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;;
&amp;nbsp;
events &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    worker_connections  &lt;span class=&quot;nu0&quot;&gt;1024&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
http &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    include       mime.types;
    default_type  application&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;octet-stream;
    sendfile        on;
    keepalive_timeout  &lt;span class=&quot;nu0&quot;&gt;65&lt;/span&gt;;
&amp;nbsp;
    server &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        listen       &lt;span class=&quot;nu0&quot;&gt;7000&lt;/span&gt;;
        server_name  localhost;
        root         &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html;
        index        index.html index.htm index.php;
&amp;nbsp;
        location &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            try_files &lt;span class=&quot;re1&quot;&gt;$uri&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$uri&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; =&lt;span class=&quot;nu0&quot;&gt;404&lt;/span&gt;;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        location ~ \.php$ &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            include        fastcgi.conf;
            fastcgi_pass   unix:&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;php-fpm&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;php-fpm.sock;
            fastcgi_index  index.php;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_237.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_237.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_237.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;тестирование_синтаксиса_nginxconf&quot;&gt;Тестирование синтаксиса nginx.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Нам нужно протестировать синтаксис Nginx, чтобы убедиться, что все скобки закрыты и сокет прописан без ошибок.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; nginx &lt;span class=&quot;re5&quot;&gt;-t&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_150.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_150.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_150.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Тест пройден успешно (syntax is ok, test is successful). Предупреждение о types_hash — это стандартный информационный ворнинг, на работу он не влияет.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_содержимого_файла_nginxconf&quot;&gt;Проверка содержимого файла nginx.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-n&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_238.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_238.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_238.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;перезапуск_веб-сервера&quot;&gt;Перезапуск веб-сервера&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl restart nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_153.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_153.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_153.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_статуса_службы&quot;&gt;Проверка статуса службы&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=4&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl status nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_155.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_155.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_155.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0424\u0430\u0439\u043b nginx.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u0430\u0439\u043b_nginxconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1038-3337&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;проверим_директорию&quot;&gt;Проверим директорию&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы не запутаться в структуре бэкенда и фронтенда, давайте сначала проверим, что сейчас вообще находится внутри корневой папки Nginx на tom_1.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=5&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_142.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_142.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_142.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Проверим запуск и работу веб-сервера на порту 7000 в браузере на странице &lt;a href=&quot;http://192.168.1.72:7000/&quot; class=&quot;urlextern&quot; title=&quot;http://192.168.1.72:7000/&quot; rel=&quot;ugc nofollow&quot;&gt;http://192.168.1.72:7000/&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_239.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_239.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_239.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c_\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3338-4142&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;проверяем_автозапуск_службы_php-fpm&quot;&gt;Проверяем автозапуск службы php-fpm&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Убедимся, что служба PHP-FPM активирована в автозапуске, чтобы при старте флешки в ОЗУ она запустилась сама вместе с Nginx.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=6&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_114.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_114.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_114.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Примечание: статус disabled - выключена)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;включаем_службу_php-fpm_в_автозапуск&quot;&gt;Включаем службу php-fpm в автозапуск&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Включим службу PHP-FPM в автозапуске, чтобы при старте флешки в ОЗУ она запустилась сама вместе с Nginx.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=7&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_115.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_115.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_115.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Примечание: созданы системные симлинки)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_статус_автозапуска_службы_php-fpm&quot;&gt;Проверяем статус автозапуска службы php-fpm&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что служба PHP-FPM активирована в автозапуске, чтобы при старте флешки в ОЗУ она запустилась сама вместе с Nginx. Убедимся, что система теперь рапортует правильный статус.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=8&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Примечание: статус enabled - включена)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;снятие_системной_изоляции_с_php&quot;&gt;Снятие системной изоляции с PHP&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В Arch Linux служба &lt;code&gt;php-fpm&lt;/code&gt; по умолчанию заперта (ProtectSystem=full). Из-за этого PHP видит системные файлы пользователей как Read-Only. Снимем это ограничение.
&lt;/p&gt;

&lt;p&gt;
Откройте переопределение настроек службы:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=9&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl edit php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Вставте свои строки строго между первой и второй строками комментариев (обычно там есть явная подсказка ### Lines below this comment will be discarded или аналогичная).:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=10&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;ini&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code text&quot;&gt;[Service]
ProtectSystem=false
ProtectHome=false&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_240.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_240.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_240.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Ctrl+O для сохранения, затем Enter и Ctrl+X для выхода)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_241.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_241.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_241.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Вывод означает правильно отредактированную конфигурацию, и systemd успешно создал конфигурационный файл (drop-in файл) с вашими настройками по пути /etc/systemd/system/php-fpm.service.d/override.conf)&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Перезапустите службу:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo systemctl restart php-fpm&lt;/pre&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_242.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_242.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_242.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a \u0441\u043b\u0443\u0436\u0431\u044b php-fpm&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c_\u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a_\u0441\u043b\u0443\u0436\u0431\u044b_php-fpm&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;4143-7433&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;настройка_samba-сервера&quot;&gt;Настройка Samba-сервера&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверяем_состояние_samba-сервера_на_tom_1&quot;&gt;Проверяем состояние Samba-сервера на tom_1&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Нам нужно узнать, запущен ли демон Samba (smb), чтобы понять, сможем ли мы сразу подключить сетевой диск в Windows.&lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=12&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl status smb&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_243.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_243.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_243.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что служба установлена в системе, но её автозапуск отключен и в данный момент служба не запущена (остановлена))&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создание_конфигурационного_файла_smbconf&quot;&gt;Создание конфигурационного файла smb.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Создадим конфигурационный файл в редакторе nano. &lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=13&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;samba&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;smb.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Файл пустой и готов к заполнению. Вставьте в него следующий минимальный рабочий конфиг, чтобы открыть доступ к директории Nginx (/usr/share/nginx/html) с автоматическим наследованием безопасных прав доступа (775 для папок и 664 для файлов):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=14&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;ini&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;global&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    workgroup = WORKGROUP
    server string = Arch Linux Tom1
    security = user
    map to guest = Bad User
    log &lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;log&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;samba&lt;span class=&quot;sy0&quot;&gt;/%&lt;/span&gt;m.log
    max log &lt;span class=&quot;kw2&quot;&gt;size&lt;/span&gt; = &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;nginx_html&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    path = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html
    writable = &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
    guest ok = &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
    guest only = &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
    force user = http
    create mask = 0664
    directory mask = 0775&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_246.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_246.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_246.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Файл изменен. Нажмите последовательно:CTRL + O, затем клавишу Enter (для записи файла).CTRL + X (для выхода из редактора nano)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_синтаксиса&quot;&gt;Проверка синтаксиса&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
выполните встроенную команду Samba для проверки синтаксиса файла конфигурации:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=15&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;testparm &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_247.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_247.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_247.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Тест синтаксиса пройден успешно (Loaded services file OK). Ошибок в файле smb.conf нет. Сетевая папка nginx_html определена верно.&lt;br/&gt;

Следующий шаг — запуск и добавление службы Samba в автозагрузку.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=16&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--now&lt;/span&gt; smb&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_124.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_124.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_124.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Симлинк успешно создан, служба добавлена в автозапуск.)&lt;/em&gt;
&lt;br/&gt;
 Следующий шаг — обязательная проверка статуса запущенного демона Samba.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_статуса&quot;&gt;Проверка статуса&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=17&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl status smb&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_125.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_125.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_125.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Служба smb работает в режиме active (running) и полностью готова принимать сетевые подключения.)&lt;/em&gt;
&lt;br/&gt;

Службы настроены. Передаем владение корневым каталогом сайта встроенному веб-пользователю http. Задаем права 775 для всех папок (чтобы Samba и Nginx могли создавать файлы) и 664 для файлов (только чтение и запись, без флагов исполнения):.&lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=18&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chown&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; http:http &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-type&lt;/span&gt; d &lt;span class=&quot;re5&quot;&gt;-exec&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;775&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; +
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-type&lt;/span&gt; f &lt;span class=&quot;re5&quot;&gt;-exec&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;664&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; +&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_248.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_248.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_248.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Права 777/664 назначены успешно.)&lt;/em&gt;
&lt;br/&gt;

Следующий обязательный шаг по нашему плану — проверка того, как система применила эти права к содержимому каталога.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=19&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_249.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_249.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_249.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Проверка прав прошла успешно. Строки drwxrwxr-x для текущей папки (.) и -rw-rw-r– для файлов index.html и 50x.html подтверждают, что доступ полностью открыт на чтение, запись для пользователей системы.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;подключение_сетевой_папки_в_windows&quot;&gt;Подключение сетевой папки в Windows&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h5 id=&quot;получим_точный_текущий_ip-адрес_сервера_tom_1&quot;&gt;Получим точный текущий IP-адрес сервера tom_1&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=20&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ip&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-br&lt;/span&gt; address show scope global &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $3}&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cut&lt;/span&gt; -d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f1&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Теперь папка готова к подключению в качестве сетевого диска в среде Windows, чтобы вы могли открыть её через Notepad++.
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте Проводник (Этот компьютер) на вашей Windows-машине.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В верхнем меню нажмите кнопку «Подключить сетевой диск» (или нажмите правой кнопкой мыши по «Этот компьютер» → «Подключить сетевой диск»).&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_137.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_137.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_137.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В поле «Папка» введите сетевой путь, используя IP-адрес вашего сервера tom_1 (из логов PuTTY: 192.168.1.72 или через кнопку обзор)&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_139.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_139.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_139.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Введите сетевые учетные данные
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_140.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_140.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_140.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Зайдите через проводник
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_141.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_141.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_141.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(В корне /usr/share/nginx/html/ только файлы 50x.html и index.html.)&lt;/em&gt;
&lt;br/&gt;

Разворачиваем структуру каталогов для нашего веб-интерфейса. Создадим стандартные папки для стилей, скриптов и серверной логики.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Samba-\u0441\u0435\u0440\u0432\u0435\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_samba-\u0441\u0435\u0440\u0432\u0435\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;7434-14549&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;системный_пользователь_http&quot;&gt;Системный пользователь http&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Пользователь http в Arch Linux — это встроенный системный пользователь, от имени которого по умолчанию работают веб-серверы (например, Apache или Nginx) и сопутствующие им службы.
&lt;br/&gt;
 Он создается автоматически при установке этих программ для изоляции процессов и обеспечения безопасности.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;назначение&quot;&gt;Назначение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Безопасность: Веб-серверы не должны работать под правами суперпользователя (root). Если злоумышленник найдет уязвимость в вашем сайте, он получит доступ только к файлам с правами пользователя http, что убережет остальную систему от взлома.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Права на файлы: Этот пользователь владеет файлами и папками, к которым сервер имеет доступ (обычно они расположены в директории /srv/http/).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Группа http: Для удобства существует одноименная группа http, в которую могут входить другие пользователи, чтобы иметь возможность редактировать файлы сайта без изменения прав доступа к ним через sudo&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;применение&quot;&gt;Применение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Размещение сайтов: При настройке Nginx, Apache или PHP-FPM часто требуется указывать, что процесс должен запускаться от имени http.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Настройка разрешений (Permissions): Если сайт выдает ошибку доступа (например, 403 Forbidden), обычно это означает, что у пользователя http нет прав на чтение нужных файлов или папок.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Безопасность каталогов: Если скриптам на сайте нужно загружать файлы на сервер, папке загрузки необходимо выдать права (владельца) для пользователя http&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;вывод_строк_пользователей_системы&quot;&gt;Вывод строк пользователей системы&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выводим строки трех нами известных пользователей из базы данных.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=21&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;^(root|eva|http):&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;shadow&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_169.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_169.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_169.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;root:$y$j9T$…:20594:::::&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Второе поле — длинный хэш $y$…. Это зашифрованный пароль суперпользователя.Число 20594 — дата последнего изменения пароля (в днях от 1970 года).В конце строки — пустые поля. Это значит, что для root нет никаких ограничений.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;strong&gt;eva:$y$j9T$…:20594:0:99999:7:::&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Тоже видим хэш личного пароля.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Параметры 0:99999:7 означают стандартные правила пользователя: пароль можно менять сразу (0), он действует 99999 дней, а за 7 дней до истечения система начнет предупреждать. Восьмое поле пустое — аккаунт не блокируется.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;strong&gt;http:!*:20594::::::1:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Второе поле содержит !*. Это маркер того, что пароль заблокирован (вход по паролю невозможен, учетка техническая).Внимание в самый конец строки: ::::::1:&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На предпоследней позиции (8-е поле) стоит цифра 1. В системе Linux это означает, что учетная запись принудительно заблокирована подсистемой безопасности PAM через 1 день после начала эпохи Unix (то есть 2 января 1970 года). &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;изменяем_параметры_пользователя_http&quot;&gt;Изменяем параметры пользователя http&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Уберем эту единицу из конца строки, чтобы сделать учетную запись бессрочной.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=22&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; chage &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-1&lt;/span&gt; http&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_170.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_170.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_170.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_изменений_в_файле_etc_shadow&quot;&gt;Проверка изменений в файле /etc/shadow&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=23&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;^http:&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;shadow&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_171.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_171.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_171.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Строка завершается чистыми двоеточиями (::::::), что означает: блокировка PAM полностью снята, аккаунт http стал бессрочным)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c http&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c_http&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:21,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;14550-19819&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;настройка_беспарольного_доступа_в_sudoers&quot;&gt;Настройка беспарольного доступа в sudoers&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы PHP-скрипты могли вызывать утилиты управления аккаунтами без ввода пароля и без наличия текстового экрана (TTY), настроим правила безопасности. Команды будут пробрасываться во внешнюю систему через утилиту &lt;code&gt;systemd-run&lt;/code&gt; для обхода ограничений безопасности PHP.
&lt;/p&gt;

&lt;p&gt;
Откройте конфигурационный файл строго через visudo:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=24&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;EDITOR&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; visudo&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_244.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_244.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_244.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
В самый конец файла добавьте следующие строки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=25&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;Defaults:http &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;requiretty
http &lt;span class=&quot;re2&quot;&gt;ALL&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ALL&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; NOPASSWD: &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd-run &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;, &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_253.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_253.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_253.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;обновление_контекста_php-fpm&quot;&gt;Обновление контекста PHP-FPM&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Так как PHP кэширует права сессий для вызова exec(), обязательно примените изменения через перезапуск служб, поочередно введя 3 команды:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=26&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl daemon-reload
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl restart php-fpm
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl restart nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_254.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_254.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_254.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0431\u0435\u0441\u043f\u0430\u0440\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0432 sudoers&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u0431\u0435\u0441\u043f\u0430\u0440\u043e\u043b\u044c\u043d\u043e\u0433\u043e_\u0434\u043e\u0441\u0442\u0443\u043f\u0430_\u0432_sudoers&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:24,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;19820-21519&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;схема_веб-панели_управления_в_основной_системе_tom_1&quot;&gt;Схема веб-панели управления в основной системе (tom_1)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Папка веб-сервера nginx_html находится по пути /usr/share/nginx/html/ и имеет следующую структуру файлов бэкенда (PHP) и фронтенда (JS/&lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;/usr/share/nginx/html/               # Корневая директория веб-сервера Nginx
├── index.html                       # Главный интерфейс панели (вкладки, таблицы, модальные окна)
├── css/
│   └── style.css                    # Стили оформления интерфейса панели управления
├── js/
│   └── app.js                       # Клиентская логика (асинхронные Fetch-запросы к API, фильтры)
└── api/
    ├── users.php                    # Серверный обработчик для системных пользователей (/etc/passwd)
    └── groups.php                   # Серверный обработчик для системных групп (/etc/group)&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0445\u0435\u043c\u0430 \u0432\u0435\u0431-\u043f\u0430\u043d\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 (tom_1)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0445\u0435\u043c\u0430_\u0432\u0435\u0431-\u043f\u0430\u043d\u0435\u043b\u0438_\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f_\u0432_\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439_\u0441\u0438\u0441\u0442\u0435\u043c\u0435_tom_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:27,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;21520-22731&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;создание_директорий&quot;&gt;Создание директорий&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Временно изменим права для работы в консоли
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=28&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chown&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; http:http &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-type&lt;/span&gt; d &lt;span class=&quot;re5&quot;&gt;-exec&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;775&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; +&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_250.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_250.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_250.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Выполните в терминале PuTTY одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=29&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;css,js,api,assets&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_143.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_143.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_143.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Папки созданы. Теперь обязательный шаг контроля: проверяем, какие права доступа и владельцы назначены для новых директорий, чтобы Windows-пользователь Samba и веб-сервер Nginx могли с ними работать.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;контроль_папок&quot;&gt;Контроль папок&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=30&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_144.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_144.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_144.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Папки создались под пользователем eva, но у них стоят ограниченные права drwxr-xr-x. Из-за этого Windows через Samba не сможет создавать или изменять файлы внутри этих подкаталогов.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;права_доступа_к_файлам&quot;&gt;Права доступа к файлам&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=31&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-type&lt;/span&gt; f &lt;span class=&quot;re5&quot;&gt;-exec&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;664&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; +&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_назначения_прав_пользователя&quot;&gt;Проверка назначения прав пользователя&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=32&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_251.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_251.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_251.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Права drwxrwxr-x (775) успешно применились ко всем новым директориям (api, assets, css, js) - подсвечены синим, и -rw-rw-r– к файлам они подсвечены белым. Теперь пользователи eva и системный пользователь http, и Samba имеют полный доступ.)&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Прверим создание папок в Проводнике виндовс и откроем его в редакторе notepad++
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_252.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_252.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_252.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:28,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;22732-25278&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;главный_интерфейс_панели_indexhtml&quot;&gt;Главный интерфейс панели (index.html)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Сейчас мы с вами создадим тестовое приложение для нашего сервера, которое подтвердить правильность наших действий по настройке беспарольного доступа в sudoers и отключение системной изоляции PHP-FPM, а так же настройки сервера и прав на папки и файлы.
&lt;br/&gt;

Сейчас мы не будем разбирать html, php и javascript тестового приложения, т.к. наша главная задача собрать iso - образ и при установке с флешки на сервер, убедиться в том, что все настройки сохранились и приложение взаимодействует с сервером, а написание всего web-приложения нас ждет позже,  после тестирования iso-образа.
&lt;br/&gt;

Отредактируйте файл index.html в редакторе. Целиком замените дефолтный код файла на приведенный ниже. Он формирует окно панели управления, вкладки переключения, таблицы и скрытые модальные формы:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=33&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_html&quot;&gt;index.html&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code html4strict&quot;&gt;&lt;span class=&quot;sc0&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ru&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/head.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;head&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/meta.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;meta&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;charset&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/meta.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;meta&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;viewport&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/title.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;title&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Control Panel&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/title.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;title&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/link.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;rel&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;css/style.css&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/head.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;head&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/body.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;body&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;window&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;header &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;window-header&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/span.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;span&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;title&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;Control Panel&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/span.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;span&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;window-controls&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;win-btn&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;?&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;win-btn&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;—&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;win-btn&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;⬜&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;win-btn close&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;×&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;header&amp;gt;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;window-body&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sc2&quot;&gt;&amp;lt;aside &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;sidebar&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;search-box&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/input.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;input&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text&amp;quot;&lt;/span&gt; placeholder&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;🔍 Search&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;nav &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu-group&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;^ File Sharing&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;#&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu-item&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;📁 Shared Folder&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;#&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu-item&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;⇆ File Services&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;#&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu-item active&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;👤 User &lt;span class=&quot;sc1&quot;&gt;&amp;amp; Group&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;menu-item&amp;quot;&amp;gt;🆔 Domain/LDAP&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;div class=&amp;quot;menu-group&amp;quot;&amp;gt;^ Connectivity&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;menu-item&amp;quot;&amp;gt;🌐 External Access&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;menu-item&amp;quot;&amp;gt;🏠 Network&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;menu-item&amp;quot;&amp;gt;🛡️ Security&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;menu-item&amp;quot;&amp;gt;🐚 Terminal &amp;amp; SNMP&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;/aside&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;main class=&amp;quot;main-content&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;tabs&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button class=&amp;quot;tab active&amp;quot; id=&amp;quot;tab-user&amp;quot;&amp;gt;User&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;					&amp;lt;button class=&amp;quot;tab&amp;quot; id=&amp;quot;tab-group&amp;quot;&amp;gt;Group&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button class=&amp;quot;tab&amp;quot;&amp;gt;Advanced&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;toolbar&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;div class=&amp;quot;actions&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;button class=&amp;quot;btn primary&amp;quot; id=&amp;quot;btn-create&amp;quot;&amp;gt;Create&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;button class=&amp;quot;btn&amp;quot; id=&amp;quot;btn-edit&amp;quot; disabled&amp;gt;Edit&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;button class=&amp;quot;btn&amp;quot; id=&amp;quot;btn-delete&amp;quot; disabled&amp;gt;Delete&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;button class=&amp;quot;btn&amp;quot;&amp;gt;Export ▾&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;button class=&amp;quot;btn&amp;quot;&amp;gt;Delegate ▾&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;div class=&amp;quot;filter&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;table-filter&amp;quot; placeholder=&amp;quot;∇ Filter&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;table-container&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;table id=&amp;quot;users-table&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;thead&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                            &amp;lt;tr&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;Name ▴&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;Email&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;2FA Status&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;Status&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                            &amp;lt;/tr&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;/thead&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;tbody&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                            &amp;lt;!-- Данные загружаются через JS --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;/tbody&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;/table&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;footer class=&amp;quot;table-footer&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;span id=&amp;quot;items-count&amp;quot;&amp;gt;0 items&amp;lt;/span&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button id=&amp;quot;refresh-btn&amp;quot; class=&amp;quot;btn&amp;quot;&amp;gt;↻&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/footer&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;/main&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;        &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;!-- Модальное окно Создания / Редактирования --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;div class=&amp;quot;modal&amp;quot; id=&amp;quot;user-modal&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;        &amp;lt;div class=&amp;quot;modal-content&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;h3 id=&amp;quot;modal-title&amp;quot;&amp;gt;Create User&amp;lt;/h3&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;form id=&amp;quot;user-form&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;form-action&amp;quot; value=&amp;quot;create&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;old-username&amp;quot;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;form-group&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;label for=&amp;quot;username&amp;quot;&amp;gt;Имя пользователя:&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;username&amp;quot; required pattern=&amp;quot;^[a-z_][a-z0-9_-]*$&amp;quot; title=&amp;quot;Маленькие латинские буквы и цифры&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;form-group&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;label for=&amp;quot;description&amp;quot;&amp;gt;Описание (GECOS):&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;description&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;form-group&amp;quot; id=&amp;quot;password-group&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;label for=&amp;quot;password&amp;quot;&amp;gt;Пароль:&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;input type=&amp;quot;password&amp;quot; id=&amp;quot;password&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;form-buttons&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button type=&amp;quot;button&amp;quot; class=&amp;quot;btn&amp;quot; id=&amp;quot;btn-modal-cancel&amp;quot;&amp;gt;Cancel&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button type=&amp;quot;submit&amp;quot; class=&amp;quot;btn primary&amp;quot;&amp;gt;Save&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;        &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;	&amp;lt;!-- Модальное окно Групп --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;	&amp;lt;div class=&amp;quot;modal&amp;quot; id=&amp;quot;group-modal&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;		&amp;lt;div class=&amp;quot;modal-content&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;			&amp;lt;h3&amp;gt;Create Group&amp;lt;/h3&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;			&amp;lt;form id=&amp;quot;group-form&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;				&amp;lt;div class=&amp;quot;form-group&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;					&amp;lt;label for=&amp;quot;group-name&amp;quot;&amp;gt;Имя группы:&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;					&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;group-name&amp;quot; required pattern=&amp;quot;^[a-z_][a-z0-9_-]*$&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;				&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;				&amp;lt;div class=&amp;quot;form-buttons&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;					&amp;lt;button type=&amp;quot;button&amp;quot; class=&amp;quot;btn&amp;quot; id=&amp;quot;btn-group-cancel&amp;quot;&amp;gt;Cancel&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;					&amp;lt;button type=&amp;quot;submit&amp;quot; class=&amp;quot;btn primary&amp;quot;&amp;gt;Save&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;				&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;			&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;		&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;	&amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;script src=&amp;quot;js/app.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u0430\u043d\u0435\u043b\u0438 (index.html)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0433\u043b\u0430\u0432\u043d\u044b\u0439_\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441_\u043f\u0430\u043d\u0435\u043b\u0438_indexhtml&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:33,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;25279-32276&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;стили_оформления_интерфейса_css_stylecss&quot;&gt;Стили оформления интерфейса (css/style.css)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создайте файл css/style.css в подпапке css/. Код задает внешний вид окна приложения, таблиц данных, кнопок управления и всплывающих модальных окон:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=34&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_css&quot;&gt;style.css&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code css&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;box-sizing&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;border-box&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-family&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; -apple-system&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; BlinkMacSystemFont&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Segoe UI&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; Roboto&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sans-serif&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
body &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f0f2f5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100vh&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.window&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1000px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;550px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;box-shadow&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;5px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;25px&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;rgba&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;flex-direction&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;overflow&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;hidden&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#dcdcdc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.window-header&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; space-between&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.window-header&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;.title&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;14px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#2d3748&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.window-controls&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;.win-btn&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;8px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#718096&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.window-body&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;flex&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;overflow&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;hidden&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;coMULTI&quot;&gt;/* Навигация */&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.sidebar&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;230px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-right&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.search-box&lt;/span&gt; input &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cbd5e0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.menu-group&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;11px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;text-transform&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;uppercase&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#a0aec0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.menu-item&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;block&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;8px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#4a5568&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;text-decoration&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.menu-item&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.active&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#ebf8ff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#2b6cb0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;coMULTI&quot;&gt;/* Основная рабочая область */&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.main-content&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;flex&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;flex-direction&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;20px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.tabs&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin-top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.tab&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;20px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;14px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#718096&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.tab&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.active&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#3182ce&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;2px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#3182ce&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.toolbar&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; space-between&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.btn&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;14px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cbd5e0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#4a5568&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.btn&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#a0aec0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; not-allowed&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.btn&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;hover&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;not&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;disabled&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.btn&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.primary&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#3182ce&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#3182ce&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.btn&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.primary&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;hover&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#2b6cb0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.filter&lt;/span&gt; input &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cbd5e0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;coMULTI&quot;&gt;/* Таблица */&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.table-container&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;flex&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;overflow-y&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;auto&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;table&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-collapse&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;collapse&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
th&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; td &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;text-align&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#edf2f7&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    user-select&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
th &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#4a5568&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
tbody tr &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
tbody tr&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;hover&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
tr&lt;span class=&quot;re1&quot;&gt;.selected-user&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e8f0fe&lt;/span&gt; !important&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.status-deactivated&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e53e3e&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.status-normal&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#38a169&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.table-footer&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex-end&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    gap&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#718096&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;coMULTI&quot;&gt;/* Модальные окна */&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.modal&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;fixed&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;rgba&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;z-index&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.modal&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.open&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.modal-content&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;20px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;400px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;box-shadow&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;rgba&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.modal-content&lt;/span&gt; h3 &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#2d3748&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.form-group&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.form-group&lt;/span&gt; label &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;block&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#4a5568&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.form-group&lt;/span&gt; input &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;8px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cbd5e0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.form-buttons&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex-end&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    gap&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin-top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;18px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0442\u0438\u043b\u0438 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 (css\/style.css)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0442\u0438\u043b\u0438_\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f_\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430_css_stylecss&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:34,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;32277-37154&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;шаг_33_серверный_обработчик_пользователей_api_usersphp&quot;&gt;Шаг 3.3. Серверный обработчик пользователей (api/users.php)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создайте файл &lt;code&gt;api/users.php&lt;/code&gt; в подпапке &lt;code&gt;api/&lt;/code&gt;. Скрипт обрабатывает GET-запросы для вывода учетных записей (исключая технического &lt;code&gt;nobody&lt;/code&gt;) и POST-запросы для выполнения атомарных операций через &lt;code&gt;systemd-run&lt;/code&gt; в обход изоляции:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=35&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;users.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;a href=&quot;http://www.php.net/header&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;header&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;Content-Type: application/json; charset=utf-8&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// Обработка получения списка (GET)&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_SERVER&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;REQUEST_METHOD&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;GET&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$usersList&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/is_readable&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;is_readable&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/etc/passwd&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$lines&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/file&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/etc/passwd&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FILE_IGNORE_NEW_LINES &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; FILE_SKIP_EMPTY_LINES&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$lines&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/explode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;explode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;:&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/count&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;count&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$uid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;int&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$description&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;co1&quot;&gt;// Выводим root (UID 0), системных и обычных пользователей (UID &amp;gt;= 1000)&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$uid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$uid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;nobody&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;guest&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;admin&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
                    &lt;span class=&quot;co1&quot;&gt;// Сопоставление статуса активности учетной записи&lt;/span&gt;
                    &lt;span class=&quot;re0&quot;&gt;$status&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Normal&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;guest&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                        &lt;span class=&quot;re0&quot;&gt;$status&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Deactivated&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
                    &lt;span class=&quot;re0&quot;&gt;$usersList&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;
                        &lt;span class=&quot;st_h&quot;&gt;&#039;name&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;st_h&quot;&gt;&#039;email&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;st_h&quot;&gt;&#039;desc&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$description&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;st_h&quot;&gt;&#039;tfa&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Disabled&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;st_h&quot;&gt;&#039;status&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$status&lt;/span&gt;
                    &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$usersList&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; JSON_UNESCAPED_UNICODE&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// Обработка действий создания/изменения/удаления (POST)&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_SERVER&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;REQUEST_METHOD&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;POST&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_decode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_decode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/file_get_contents&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file_get_contents&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;php://input&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;a href=&quot;http://www.php.net/isset&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;isset&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Отсутствует действие&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;re0&quot;&gt;$action&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/preg_replace&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;preg_replace&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/[^a-z0-9_-]/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$description&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/escapeshellarg&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;escapeshellarg&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;description&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$password&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;password&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Некорректное имя пользователя&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;switch&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$action&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;create&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Некорректное имя пользователя&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Генерируем хэш пароля&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$salt&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;$1$&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/substr&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;substr&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/md5&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;md5&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/uniqid&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;uniqid&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/rand&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;rand&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;$&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$hashed_password&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/crypt&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;crypt&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$password&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$salt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$uid_gid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/rand&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;rand&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1100&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1900&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
&amp;nbsp;
            &lt;span class=&quot;re0&quot;&gt;$passwd_line&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:x:&lt;span class=&quot;es4&quot;&gt;{$uid_gid}&lt;/span&gt;:&lt;span class=&quot;es4&quot;&gt;{$uid_gid}&lt;/span&gt;:&lt;span class=&quot;es4&quot;&gt;{$description}&lt;/span&gt;:/home/&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:/bin/bash&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$shadow_line&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:&lt;span class=&quot;es4&quot;&gt;{$hashed_password}&lt;/span&gt;:19500:0:99999:7:::&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$group_line&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:x:&lt;span class=&quot;es4&quot;&gt;{$uid_gid}&lt;/span&gt;:&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Собираем все команды в одну строку для запуска через bash&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$system_cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;echo &#039;&lt;span class=&quot;es4&quot;&gt;{$passwd_line}&lt;/span&gt;&#039; &amp;gt;&amp;gt; /etc/passwd &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;echo &#039;&lt;span class=&quot;es4&quot;&gt;{$shadow_line}&lt;/span&gt;&#039; &amp;gt;&amp;gt; /etc/shadow &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;echo &#039;&lt;span class=&quot;es4&quot;&gt;{$group_line}&lt;/span&gt;&#039; &amp;gt;&amp;gt; /etc/group &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;mkdir -p /home/&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt; &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;chown -R &lt;span class=&quot;es4&quot;&gt;{$uid_gid}&lt;/span&gt;:&lt;span class=&quot;es4&quot;&gt;{$uid_gid}&lt;/span&gt; /home/&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Вызываем встроенную службу systemd-run. Флаг -G заставляет её отработать от root наружу.&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/escapeshellarg&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;escapeshellarg&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$system_cmd&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;a href=&quot;http://www.php.net/exec&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$err&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/implode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;implode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039; &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ошибка запуска: &lt;span class=&quot;es4&quot;&gt;{$err}&lt;/span&gt; (Код: &lt;span class=&quot;es4&quot;&gt;{$return_var}&lt;/span&gt;)&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;update&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;// Читаем параметры из JSON-запроса от браузера&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$old_username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/preg_replace&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;preg_replace&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/[^a-z0-9_-]/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;old_username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$new_description&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;description&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$new_password&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;password&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$old_username&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Не указан пользователь для редактирования&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Экранируем описание, чтобы оно не сломало синтаксис команды sed&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$clean_desc&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/str_replace&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;str_replace&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;\/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$new_description&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// 1. Команда для обновления описания (GECOS) в /etc/passwd&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$update_cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sed -i -E &#039;s/^(&lt;span class=&quot;es4&quot;&gt;{$old_username}&lt;/span&gt;:[^:]*:[^:]*:[^:]*):[^:]*(:.*)/&lt;span class=&quot;es1&quot;&gt;\\&lt;/span&gt;1:&lt;span class=&quot;es4&quot;&gt;{$clean_desc}&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\\&lt;/span&gt;2/&#039; /etc/passwd&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// 2. Если в форму ввели новый пароль — добавляем команду обновления хэша в /etc/shadow&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$new_password&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$salt&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;$1$&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/substr&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;substr&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/md5&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;md5&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/uniqid&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;uniqid&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/rand&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;rand&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;$&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$hashed_password&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/crypt&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;crypt&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$new_password&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$salt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$clean_hash&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/str_replace&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;str_replace&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;\/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$hashed_password&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;re0&quot;&gt;$update_cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;amp;&amp;amp; sed -i -E &#039;s/^(&lt;span class=&quot;es4&quot;&gt;{$old_username}&lt;/span&gt;:)[^:]*(:.*)/&lt;span class=&quot;es1&quot;&gt;\\&lt;/span&gt;1&lt;span class=&quot;es4&quot;&gt;{$clean_hash}&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\\&lt;/span&gt;2/&#039; /etc/shadow&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Вызываем итоговую команду через systemd-run наружу от root&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/escapeshellarg&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;escapeshellarg&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$update_cmd&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;a href=&quot;http://www.php.net/exec&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$err&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/implode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;implode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039; &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ошибка обновления: &lt;span class=&quot;es4&quot;&gt;{$err}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;delete&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;root&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Удаление root запрещено&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Формируем команды для полной очистки записей из passwd, shadow, group и удаления папки&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$delete_cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sed -i &#039;/^&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:/d&#039; /etc/passwd &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;sed -i &#039;/^&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:/d&#039; /etc/shadow &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;sed -i &#039;/^&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:/d&#039; /etc/group &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;rm -rf /home/&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Вызываем команду через systemd-run наружу от имени root&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/escapeshellarg&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;escapeshellarg&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$delete_cmd&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;a href=&quot;http://www.php.net/exec&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$err&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/implode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;implode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039; &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ошибка удаления: &lt;span class=&quot;es4&quot;&gt;{$err}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Неизвестная операция&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 3.3. \u0421\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 (api\/users.php)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_33_\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439_\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439_api_usersphp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:35,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;37155-45300&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;шаг_34_серверный_обработчик_групп_api_groupsphp&quot;&gt;Шаг 3.4. Серверный обработчик групп (api/groups.php)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создайте файл &lt;code&gt;api/groups.php&lt;/code&gt; в подпапке &lt;code&gt;api/&lt;/code&gt;. Скрипт парсит системный файл &lt;code&gt;/etc/group&lt;/code&gt;, выстраивает связи участников и нативно создаёт/удаляет группы в ОС через &lt;code&gt;systemd-run&lt;/code&gt;:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=36&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;groups.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;a href=&quot;http://www.php.net/header&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;header&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;Content-Type: application/json; charset=utf-8&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_decode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_decode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/file_get_contents&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file_get_contents&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;php://input&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$action&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;re0&quot;&gt;$_SERVER&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;REQUEST_METHOD&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// --- ОБРАБОТКА ПОЛУЧЕНИЯ СПИСКА ГРУПП (GET) ---&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$action&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;GET&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$groupsList&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/is_readable&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;is_readable&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/etc/group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$lines&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/file&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/etc/group&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FILE_IGNORE_NEW_LINES &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; FILE_SKIP_EMPTY_LINES&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$lines&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;// Формат /etc/group: имя_группы:пароль:GID:список_пользователей&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/explode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;explode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;:&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/count&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;count&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$gid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;int&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$users&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Пользователи через запятую&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;co1&quot;&gt;// Фильтруем системные группы, оставляем root (GID 0), wheel и кастомные (GID &amp;gt;= 1000)&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$gid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$gid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;998&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$gid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    &lt;span class=&quot;co1&quot;&gt;// Исключаем технического nobody&lt;/span&gt;
                    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;nobody&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                        &lt;span class=&quot;re0&quot;&gt;$groupsList&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;
                            &lt;span class=&quot;st_h&quot;&gt;&#039;name&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                            &lt;span class=&quot;st_h&quot;&gt;&#039;gid&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$gid&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                            &lt;span class=&quot;st_h&quot;&gt;&#039;users&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$users&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; ? &lt;span class=&quot;st_h&quot;&gt;&#039;—&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;a href=&quot;http://www.php.net/str_replace&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;str_replace&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;,&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;, &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$users&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                            &lt;span class=&quot;st_h&quot;&gt;&#039;status&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Normal&#039;&lt;/span&gt;
                        &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$groupsList&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; JSON_UNESCAPED_UNICODE&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// --- ОБРАБОТКА ИЗМЕНЕНИЙ (POST) ---&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_SERVER&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;REQUEST_METHOD&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;POST&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/preg_replace&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;preg_replace&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/[^a-z0-9_-]/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;group_name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Некорректное имя группы&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;switch&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;create&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;// Создание группы через systemd-run наружу от root&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/escapeshellarg&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;escapeshellarg&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;groupadd &lt;span class=&quot;es4&quot;&gt;{$group_name}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;a href=&quot;http://www.php.net/exec&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$err&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/implode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;implode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039; &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ошибка создания группы: &lt;span class=&quot;es4&quot;&gt;{$err}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;delete&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;root&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;wheel&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Удаление системных групп запрещено&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;// Удаление группы&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/escapeshellarg&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;escapeshellarg&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;groupdel &lt;span class=&quot;es4&quot;&gt;{$group_name}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;a href=&quot;http://www.php.net/exec&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$err&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/implode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;implode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039; &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ошибка удаления группы: &lt;span class=&quot;es4&quot;&gt;{$err}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Неизвестная операция&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 3.4. \u0421\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0433\u0440\u0443\u043f\u043f (api\/groups.php)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_34_\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439_\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a_\u0433\u0440\u0443\u043f\u043f_api_groupsphp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:36,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;45301-49287&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit15&quot; id=&quot;клиентские_скрипты_логики_js_appjs&quot;&gt;Клиентские скрипты логики (js/app.js)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создайте файл &lt;code&gt;js/app.js&lt;/code&gt; в подпапке &lt;code&gt;js/&lt;/code&gt;. Скрипт управляет асинхронным обновлением таблиц (fetch), переключением контекста вкладок, фильтрацией на лету и валидацией полей ввода:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=37&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;app.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code javascript&quot;&gt;document.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;DOMContentLoaded&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; tableBody &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;querySelector&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;#users-table tbody&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; itemsCount &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;items-count&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; refreshBtn &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;refresh-btn&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; filterInput &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;table-filter&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Кнопки управления&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; btnCreate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-create&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; btnEdit &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-edit&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; btnDelete &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-delete&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Элементы модального окна&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; userModal &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;user-modal&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; userForm &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;user-form&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; modalTitle &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;modal-title&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; btnModalCancel &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-modal-cancel&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    let selectedUsername &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    let selectedUserRow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Загрузка данных&lt;/span&gt;
    async &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; response &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await fetch&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;api/users.php&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;response.&lt;span class=&quot;me1&quot;&gt;ok&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;throw&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;new&lt;/span&gt; Error&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка сервера&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await response.&lt;span class=&quot;me1&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            renderTable&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Не удалось обновить список пользователей&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; renderTable&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;users&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        tableBody.&lt;span class=&quot;me1&quot;&gt;innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        users.&lt;span class=&quot;me1&quot;&gt;forEach&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; tr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;createElement&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tr&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tr.&lt;span class=&quot;me1&quot;&gt;dataset&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; user.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tr.&lt;span class=&quot;me1&quot;&gt;dataset&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;desc&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; user.&lt;span class=&quot;me1&quot;&gt;desc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; statusClass &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; user.&lt;span class=&quot;me1&quot;&gt;status&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Normal&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;status-normal&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;status-deactivated&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            tr.&lt;span class=&quot;me1&quot;&gt;innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;b&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;b&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user.&lt;span class=&quot;me1&quot;&gt;email&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user.&lt;span class=&quot;me1&quot;&gt;desc&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user.&lt;span class=&quot;me1&quot;&gt;tfa&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td &lt;span class=&quot;kw5&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;${statusClass}&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user.&lt;span class=&quot;me1&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            `&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Логика выбора строки кликом&lt;/span&gt;
            tr.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;selectedUserRow&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; selectedUserRow.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;selected-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;selectedUsername &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; user.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    selectedUsername &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; user.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    selectedUserRow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tr&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    tr.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;selected-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    btnEdit.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    &lt;span class=&quot;co1&quot;&gt;// Запрещаем удалять root-пользователя напрямую из UI ради безопасности&lt;/span&gt;
                    btnDelete.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;root&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            tableBody.&lt;span class=&quot;me1&quot;&gt;appendChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        itemsCount.&lt;span class=&quot;me1&quot;&gt;textContent&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;users.&lt;span class=&quot;me1&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; items`&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        selectedUsername &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        selectedUserRow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        btnEdit.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        btnDelete.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Фильтрация таблицы&lt;/span&gt;
    filterInput.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;input&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; value &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; e.&lt;span class=&quot;me1&quot;&gt;target&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;toLowerCase&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw4&quot;&gt;Array&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tableBody.&lt;span class=&quot;me1&quot;&gt;querySelectorAll&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tr&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;forEach&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tr &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; match &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tr.&lt;span class=&quot;me1&quot;&gt;textContent&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;toLowerCase&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;includes&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;value&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tr.&lt;span class=&quot;me1&quot;&gt;style&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;display&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; match &lt;span class=&quot;sy0&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;none&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Открытие модального окна создания&lt;/span&gt;
    btnCreate.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        userForm.&lt;span class=&quot;me1&quot;&gt;reset&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;form-action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;create&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;password-group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;style&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;display&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;block&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        modalTitle.&lt;span class=&quot;me1&quot;&gt;textContent&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Create User&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        userModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Открытие модального окна редактирования&lt;/span&gt;
    btnEdit.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;selectedUsername&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        userForm.&lt;span class=&quot;me1&quot;&gt;reset&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;form-action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;update&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;old-username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; selectedUsername&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; usernameInput &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        usernameInput.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; selectedUsername&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        usernameInput.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Имя пользователя в Linux менять через useradd напрямую нельзя&lt;/span&gt;
&amp;nbsp;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;description&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; selectedUserRow.&lt;span class=&quot;me1&quot;&gt;dataset&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;desc&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;password-group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;style&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;display&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;block&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Пароль заполнять по желанию&lt;/span&gt;
&amp;nbsp;
        modalTitle.&lt;span class=&quot;me1&quot;&gt;textContent&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Edit User&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        userModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Обработка кнопки удаления&lt;/span&gt;
    btnDelete.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; async &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;selectedUsername&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;confirm&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;`Вы уверены&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; что хотите удалить пользователя $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;selectedUsername&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; вместе с домашней директорией&lt;span class=&quot;sy0&quot;&gt;?&lt;/span&gt;`&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            await sendAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; action&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;delete&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; username&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; selectedUsername &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Закрытие модального окна&lt;/span&gt;
    btnModalCancel.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; userModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Отправка формы (Создание / Изменение)&lt;/span&gt;
    userForm.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;submit&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; async &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        e.&lt;span class=&quot;me1&quot;&gt;preventDefault&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; action &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;form-action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; payload &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            action&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; action&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            username&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            description&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;description&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            password&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;password&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            old_username&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;old-username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        await sendAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;payload&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        userModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    async &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; sendAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; response &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await fetch&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;api/users.php&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                method&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;POST&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                headers&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Content-Type&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;application/json&#039;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                body&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; JSON.&lt;span class=&quot;me1&quot;&gt;stringify&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await response.&lt;span class=&quot;me1&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result.&lt;span class=&quot;me1&quot;&gt;success&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка: &#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; result.&lt;span class=&quot;me1&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка сети при отправке запроса&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; text.&lt;span class=&quot;me1&quot;&gt;toString&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;/&amp;amp;/g&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;amp;amp;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;/&amp;lt;/g&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;amp;lt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;/&amp;gt;/g&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;amp;gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    refreshBtn.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// --- ЛОГИКА ВКЛАДКИ GROUP ---&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; tabUser &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tab-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; tabGroup &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tab-group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; tableHeader &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;querySelector&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;#users-table thead tr&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; groupModal &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;group-modal&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; groupForm &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;group-form&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; btnGroupCancel &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-group-cancel&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    let currentTab &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;user&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Храним активную вкладку (&#039;user&#039; или &#039;group&#039;)&lt;/span&gt;
    let selectedGroupName &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Переключение на вкладку User&lt;/span&gt;
    tabUser.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        tabGroup.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        tabUser.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        currentTab &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;user&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        tableHeader.&lt;span class=&quot;me1&quot;&gt;innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Name ▴&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Email&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Description&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;2FA Status&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Status&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        `&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Вызываем старую функцию загрузки пользователей&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Переключение на вкладку Group&lt;/span&gt;
    tabGroup.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        tabUser.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        tabGroup.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        currentTab &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;group&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        tableHeader.&lt;span class=&quot;me1&quot;&gt;innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Group Name ▴&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;GID&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Members &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Users&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Status&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        `&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        loadGroups&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Загрузка групп с бэкенда&lt;/span&gt;
    async &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; loadGroups&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; response &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await fetch&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;api/groups.php&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; groups &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await response.&lt;span class=&quot;me1&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            renderGroupsTable&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;groups&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка загрузки групп&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; renderGroupsTable&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;groups&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        tableBody.&lt;span class=&quot;me1&quot;&gt;innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        groups.&lt;span class=&quot;me1&quot;&gt;forEach&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;group &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; tr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;createElement&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tr&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tr.&lt;span class=&quot;me1&quot;&gt;innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;b&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;group.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;b&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;group.&lt;span class=&quot;me1&quot;&gt;gid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;group.&lt;span class=&quot;me1&quot;&gt;users&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td &lt;span class=&quot;kw5&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;status-normal&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;group.&lt;span class=&quot;me1&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            `&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            tr.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;selectedUserRow&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; selectedUserRow.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;selected-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;selectedGroupName &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; group.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    selectedGroupName &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    selectedUserRow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    btnDelete.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    selectedGroupName &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; group.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    selectedUserRow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tr&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    tr.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;selected-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    btnEdit.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Для групп редактирование отключим&lt;/span&gt;
                    btnDelete.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;group.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;root&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; group.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;wheel&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tableBody.&lt;span class=&quot;me1&quot;&gt;appendChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        itemsCount.&lt;span class=&quot;me1&quot;&gt;textContent&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;groups.&lt;span class=&quot;me1&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; items`&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Модифицируем общие кнопки под контекст активной вкладки&lt;/span&gt;
    btnCreate.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;currentTab &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            e.&lt;span class=&quot;me1&quot;&gt;stopPropagation&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Останавливаем открытие модалки пользователей&lt;/span&gt;
            groupForm.&lt;span class=&quot;me1&quot;&gt;reset&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            groupModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    btnDelete.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; async &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;currentTab &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;group&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; selectedGroupName&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;confirm&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;`Удалить группу $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;selectedGroupName&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;?&lt;/span&gt;`&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                await sendGroupAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; action&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;delete&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; group_name&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; selectedGroupName &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    btnGroupCancel.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; groupModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    groupForm.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;submit&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; async &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        e.&lt;span class=&quot;me1&quot;&gt;preventDefault&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        await sendGroupAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            action&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;create&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            group_name&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;group-name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        groupModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    async &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; sendGroupAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; response &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await fetch&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;api/groups.php&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                method&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;POST&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                headers&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Content-Type&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;application/json&#039;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                body&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; JSON.&lt;span class=&quot;me1&quot;&gt;stringify&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await response.&lt;span class=&quot;me1&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result.&lt;span class=&quot;me1&quot;&gt;success&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                loadGroups&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка: &#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; result.&lt;span class=&quot;me1&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка сети при обработке группы&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Модифицируем круглую кнопку обновления (↻)&lt;/span&gt;
    refreshBtn.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;currentTab &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; loadGroups&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Сохраним файлы и проверим в окне браузера, перейдя по ссылке &lt;a href=&quot;http://192.168.1.72:7000/&quot; class=&quot;urlextern&quot; title=&quot;http://192.168.1.72:7000/&quot; rel=&quot;ugc nofollow&quot;&gt;http://192.168.1.72:7000/&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_255.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_255.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_255.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
мы видим вывод в таблице наших пользователей root и eva, проверим работу web-страницы на предмет добавления пользователя irina с описанием new user и alisa / admin
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_256.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_256.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_256.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Проверим новых пользователей в консоли 
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=38&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;^root|^eva|^irina|^alisa|:[0-9]{4}:&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;passwd&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_257.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_257.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_257.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Внимание! Пользователей root и eva не удаляем, иначе консоль отключиться и мы с вами больше не попадем в управление сервером, а без пользователей с правами суперпользователей система нас просто не пустит. &lt;br/&gt;

Удалим строго только новых пользователей в веб-приложении.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_258.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_258.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_258.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
И снова проверим консоль
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_26.05.26_frontend&amp;amp;codeblock=39&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;^root|^eva|^irina|^alisa|:[0-9]{4}:&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;passwd&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_26.05.26_frontend&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_259.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_259.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_259.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u043b\u043e\u0433\u0438\u043a\u0438 (js\/app.js)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435_\u0441\u043a\u0440\u0438\u043f\u0442\u044b_\u043b\u043e\u0433\u0438\u043a\u0438_js_appjs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:37,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;49288-63478&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit16&quot; id=&quot;разработка_веб-фронтенда1&quot;&gt;!!!!!!!!!!!! Разработка Веб-Фронтенда !!!!!!!!!!!!&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
!!!!!! Убрать перед сборкой iso !!!!!!!!
Проверить версии linux
Драйверы сетевой карты реального сервера
Изменить временно на 192.168.1.150
Стереть sfid
&lt;/p&gt;

&lt;p&gt;
запись исо
Изменить постоянно на 192.168.1.72
Вернуть sfid  
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;!!!!!!!!!!!! \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0412\u0435\u0431-\u0424\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 !!!!!!!!!!!!&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430_\u0432\u0435\u0431-\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u04301&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:40,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;63479-63916&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit17&quot; id=&quot;переходим_к_iso&quot;&gt;!!!!!!!!!!!! переходим к iso !!!!!!!!!!!!&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;!!!!!!!!!!!! \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a iso !!!!!!!!!!!!&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c_\u043a_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:40,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;63917-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 26 May 2026 19:10:14 +0000</pubDate>
        </item>
        <item>
            <title>tmp_27.06.2026</title>
            <link>https://wwoss.ru/doku.php?id=tmp_27.06.2026&amp;rev=1782563707</link>
            <description>
&lt;p&gt;
&lt;em&gt; assets/js/app.js

document.addEventListener(&amp;#039;DOMContentLoaded&amp;#039;, function() {
     &lt;/em&gt; — НАДЕЖНОЕ УПРАВЛЕНИЕ МОДАЛКОЙ С ДЕБАГ-МАЯКОМ —
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  // --- УПРАВЛЕНИЕ ЗАГРУЗЧИКОМ ПРОЕКТОВ ---
  const btnCreateProject   = document.getElementById(&amp;#039;btn-create-project&amp;#039;);
  const projectModal       = document.getElementById(&amp;#039;project-modal&amp;#039;);
  const btnModalCancel     = document.getElementById(&amp;#039;btn-modal-cancel&amp;#039;);
  const btnModalSubmit     = document.getElementById(&amp;#039;btn-modal-submit&amp;#039;);
  const newProjectName     = document.getElementById(&amp;#039;new-project-name&amp;#039;);
  const modalErrorBox      = document.getElementById(&amp;#039;modal-error-box&amp;#039;);
  
  const folderInput        = document.getElementById(&amp;#039;project-folder-input&amp;#039;);
  const btnSelectFolder    = document.getElementById(&amp;#039;btn-select-folder&amp;#039;);
  const folderStatus       = document.getElementById(&amp;#039;selected-folder-status&amp;#039;);&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;  if (btnCreateProject &amp;amp;&amp;amp; projectModal) {
      
      // Функция проверки условий для активации кнопки &amp;quot;Загрузить&amp;quot;
      function checkInputsValidity() {
          const nameVal = newProjectName.value.trim();
          const hasFiles = folderInput.files &amp;amp;&amp;amp; folderInput.files.length &amp;gt; 0;
          
          if (nameVal !== &amp;quot;&amp;quot; &amp;amp;&amp;amp; hasFiles) {
              btnModalSubmit.disabled = false; // Включаем кнопку
              btnModalSubmit.style.opacity = &amp;quot;1&amp;quot;;
          } else {
              btnModalSubmit.disabled = true;  // Выключаем кнопку
              btnModalSubmit.style.opacity = &amp;quot;0.6&amp;quot;;
          }
      }&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;      // Следим за вводом имени
      newProjectName.addEventListener(&amp;#039;input&amp;#039;, checkInputsValidity);&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;      // Клик по кастомной кнопке -&amp;gt; триггерим скрытый системный инпут выбора папки
      btnSelectFolder.addEventListener(&amp;#039;click&amp;#039;, function() {
          folderInput.click();
      });&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;      // Следим за тем, что пользователь выбрал папку на ПК
      folderInput.addEventListener(&amp;#039;change&amp;#039;, function() {
          if (this.files &amp;amp;&amp;amp; this.files.length &amp;gt; 0) {
              // Берем имя корневой папки, которую выбрал юзер
              const firstFile = this.files[0];
              const rootFolderName = firstFile.webkitRelativePath.split(&amp;#039;/&amp;#039;)[0];
              folderStatus.innerHTML = `Выбрано файлов: &amp;lt;strong&amp;gt;${this.files.length}&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;font-size:11px; color:#2da44e;&amp;quot;&amp;gt;(из папки: ${rootFolderName})&amp;lt;/span&amp;gt;`;
          } else {
              folderStatus.textContent = &amp;quot;Папка не выбрана&amp;quot;;
          }
          checkInputsValidity();
      });&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;      // Открытие модалки
      btnCreateProject.addEventListener(&amp;#039;click&amp;#039;, function() {
          newProjectName.value = &amp;#039;&amp;#039;;
          folderInput.value = &amp;#039;&amp;#039;; // Сбрасываем выбранные файлы
          folderStatus.textContent = &amp;quot;Папка не выбрана&amp;quot;;
          if (modalErrorBox) modalErrorBox.classList.add(&amp;#039;hidden&amp;#039;);
          btnModalSubmit.disabled = true;
          btnModalSubmit.style.opacity = &amp;quot;0.6&amp;quot;;
          projectModal.classList.remove(&amp;#039;hidden&amp;#039;);
          newProjectName.focus();
      });&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;      // Отмена
      btnModalCancel.addEventListener(&amp;#039;click&amp;#039;, function() {
          projectModal.classList.add(&amp;#039;hidden&amp;#039;);
      });&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;      // Нажатие на кнопку &amp;quot;Загрузить&amp;quot; -&amp;gt; отправка терабайтов кода по AJAX
      btnModalSubmit.addEventListener(&amp;#039;click&amp;#039;, async function() {
          const projectName = newProjectName.value.trim();
          if (modalErrorBox) modalErrorBox.classList.add(&amp;#039;hidden&amp;#039;);&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;          const formData = new FormData();
          formData.append(&amp;#039;name&amp;#039;, projectName);&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;          // КРИТИЧЕСКИ ВАЖНО: Пакуем файлы вместе с их путями вложения
          for (let i = 0; i &amp;lt; folderInput.files.length; i++) {
              let file = folderInput.files[i];
              formData.append(&amp;#039;project_files[]&amp;#039;, file);
              // Передаем бэкенду относительный путь (например: &amp;quot;my_proj/src/main.php&amp;quot;)
              formData.append(&amp;#039;project_paths[]&amp;#039;, file.webkitRelativePath);
          }&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;          // Меняем статус кнопки на время тяжелой загрузки
          btnModalSubmit.disabled = true;
          btnModalSubmit.textContent = &amp;quot;Загрузка...&amp;quot;;&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;          try {
              const response = await fetch(&amp;#039;backend/router.php?action=create_project&amp;#039;, {
                  method: &amp;#039;POST&amp;#039;,
                  body: formData
              });
              const result = await response.json();
              
              if (result.success) {
                  projectModal.classList.add(&amp;#039;hidden&amp;#039;);
                  btnModalSubmit.textContent = &amp;quot;Загрузить&amp;quot;;
                  location.reload();
              } else {
                  btnModalSubmit.disabled = false;
                  btnModalSubmit.textContent = &amp;quot;Загрузить&amp;quot;;
                  if (modalErrorBox) {
                      modalErrorBox.textContent = result.error;
                      modalErrorBox.classList.remove(&amp;#039;hidden&amp;#039;);
                  }
              }
          } catch (error) {
              // Возвращаем кнопку в исходное рабочее состояние
              btnModalSubmit.disabled = false;
              btnModalSubmit.textContent = &amp;quot;Загрузить&amp;quot;;
              
              // КРАСИВО ВЫВОДИМ ОШИБКУ СЕТИ В ТВОЮ ПЛАШКУ БЕЗ ВСЯКИХ АЛЕРТОВ
              if (modalErrorBox) {
                  modalErrorBox.textContent = &amp;quot;Критическая ошибка отправки файлов на сервер.&amp;quot;;
                  modalErrorBox.classList.remove(&amp;#039;hidden&amp;#039;);
              }
          }
      });
  }&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;  // Локальное хранилище для текстов текущего выбранного релиза,
  // чтобы переключать вкладки мгновенно без повторных запросов к серверу
  let currentReleaseTexts = {
      readme: &amp;#039;&amp;#039;,
      license: &amp;#039;&amp;#039;,
      comment: &amp;#039;&amp;#039;,
      log: &amp;#039;Здесь будет выводиться лог действий (100 строк)...&amp;#039;
  };&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;  /**
   * Отрисовка таблицы файлов в верхнем окне
   * @param {Array} files Массив файлов из JSON
   */
  function renderFilesTable(files) {
      if (!files || files.length === 0) {
          filesList.innerHTML = `&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;4&amp;quot; class=&amp;quot;text-center text-muted&amp;quot;&amp;gt;В данном релизе нет файлов для скачивания.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;`;
          return;
      }&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;      let html = &amp;#039;&amp;#039;;
      files.forEach(file =&amp;gt; {
          const icon = file.is_dir ? &amp;#039;📁&amp;#039; : &amp;#039;📄&amp;#039;;
          html += `
              &amp;lt;tr&amp;gt;
                  &amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;margin-right: 8px;&amp;quot;&amp;gt;${icon}&amp;lt;/span&amp;gt; ${escapeHtml(file.name)}&amp;lt;/td&amp;gt;
                  &amp;lt;td class=&amp;quot;text-muted&amp;quot;&amp;gt;—&amp;lt;/td&amp;gt; &amp;lt;!-- Примечания (коммиты) прикрутим позже через .meta.json --&amp;gt;
                  &amp;lt;td class=&amp;quot;text-muted&amp;quot;&amp;gt;${file.date}&amp;lt;/td&amp;gt;
                  &amp;lt;td style=&amp;quot;text-align: right;&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;text-muted&amp;quot; style=&amp;quot;font-size: 12px;&amp;quot;&amp;gt;${file.size}&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;
              &amp;lt;/tr&amp;gt;
          `;
      });
      filesList.innerHTML = html;
  }&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;  // Вспомогательная функция защиты от XSS при отрисовке имен файлов
  function escapeHtml(string) {
      return String(string).replace(/&amp;amp;/g, &amp;#039;&amp;amp;amp;&amp;#039;).replace(/&amp;lt;/g, &amp;#039;&amp;amp;lt;&amp;#039;).replace(/&amp;gt;/g, &amp;#039;&amp;amp;gt;&amp;#039;).replace(/&amp;quot;/g, &amp;#039;&amp;amp;quot;&amp;#039;);
  }&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;  // 1. СЛУШАЕМ ВЫБОР РЕЛИЗА В ВЫПАДАЮЩЕМ СПИСКЕ
  releasesDropdown.addEventListener(&amp;#039;change&amp;#039;, async function() {
      const selectedRelease = this.value;&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;      if (!selectedRelease) {
          // Если сбросили выбор — возвращаем интерфейс в исходное состояние
          btnDownloadZip.disabled = true;
          filesList.innerHTML = `&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;4&amp;quot; class=&amp;quot;text-center text-muted&amp;quot;&amp;gt;Выберите релиз из списка выше для просмотра файлов...&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;`;
          textEditor.value = &amp;#039;Текст файла отсутствует или релиз не выбран...&amp;#039;;
          return;
      }&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;      filesList.innerHTML = `&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;4&amp;quot; class=&amp;quot;text-center text-muted&amp;quot;&amp;gt;Загрузка данных релиза...&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;`;&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;      // Дергаем наш апи-модуль
      const result = await Api.getReleaseData(selectedRelease);&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;      if (result.success) {
          // Активируем кнопку ZIP
          btnDownloadZip.disabled = false;
          
          // Сохраняем тексты в память для вкладок
          currentReleaseTexts.readme = result.texts.readme || &amp;#039;Файл README.txt пуст.&amp;#039;;
          currentReleaseTexts.license = result.texts.license || &amp;#039;Файл LICENSE.txt пуст.&amp;#039;;
          currentReleaseTexts.comment = result.texts.comment || &amp;#039;Файл COMMENT.txt пуст.&amp;#039;;
          
          // Отрисовываем файлы в таблице верхнего окна
          renderFilesTable(result.files);&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;          // Автоматически показываем текст той вкладки, которая сейчас активна (по умолчанию README)
          const activeTab = document.querySelector(&amp;#039;.tab-btn.active&amp;#039;).getAttribute(&amp;#039;data-target&amp;#039;);
          textEditor.value = currentReleaseTexts[activeTab];
      } else {
          alert(&amp;quot;Ошибка загрузки: &amp;quot; + result.error);
          filesList.innerHTML = `&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;4&amp;quot; class=&amp;quot;text-center&amp;quot; style=&amp;quot;color: #cf222e;&amp;quot;&amp;gt;${result.error}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;`;
      }
  });&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;  // 2. СЛУШАЕМ ПЕРЕКЛЮЧЕНИЕ ВКЛАДОК НИЖНЕГО ОКНА
  tabButtons.forEach(button =&amp;gt; {
      button.addEventListener(&amp;#039;click&amp;#039;, function() {
          tabButtons.forEach(btn =&amp;gt; btn.classList.remove(&amp;#039;active&amp;#039;));
          this.classList.add(&amp;#039;active&amp;#039;);
          
          const targetTab = this.getAttribute(&amp;#039;data-target&amp;#039;);
          
          // Вытаскиваем текст из памяти без лишних запросов к PHP
          textEditor.value = currentReleaseTexts[targetTab] || `Текст для вкладки ${targetTab.toUpperCase()} отсутствует.`;
      });
  });&lt;/pre&gt;

&lt;p&gt;
});
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 27 Jun 2026 12:35:07 +0000</pubDate>
        </item>
        <item>
            <title>tmp_29.05.2026</title>
            <link>https://wwoss.ru/doku.php?id=tmp_29.05.2026&amp;rev=1780007390</link>
            <description>
&lt;p&gt;
вытаскиваем официальный образ/ обновляем и запаковываем
&lt;/p&gt;

&lt;p&gt;
Шаг 1. Копируем файлы ISO в рабочую папку
Создадим рабочую директорию и скопируем туда файлы, чтобы их можно было редактировать:
&lt;/p&gt;

&lt;p&gt;
mkdir ~/custom_iso
cp -a /home/eva/original_iso_image/mnt/. ~/custom_iso/
&lt;/p&gt;

&lt;p&gt;
Шаг 2. Распаковываем внутреннюю файловую систему
у нас на вм 10гб озу и 6 вирт ядер
Распакуем сжатый образ airootfs.sfs, где живет сама система Arch Linux:
&lt;/p&gt;

&lt;p&gt;
mkdir ~/extracted_fs
sudo unsquashfs -d ~/extracted_fs/rootfs ~/custom_iso/arch/x86_64/airootfs.sfs
&lt;/p&gt;

&lt;p&gt;
Шаг 3. Обновляем ядро внутри образаТак как у вас в основной системе уже стоит 
ядро 7.0.10-arch1-1, мы можем просто скопировать готовые файлы ядра и модулей 
прямо из вашей рабочей системы внутрь распакованного образа. Это быстрее и 
надежнее, чем скачивать через pacman.
&lt;/p&gt;

&lt;p&gt;
# 1. Копируем модули ядра вашей системы (7.0.10-arch1-1) внутрь образа
sudo cp -a /usr/lib/modules/7.0.10-arch1-1 ~/extracted_fs/rootfs/usr/lib/modules/
&lt;/p&gt;

&lt;p&gt;
# 2. Генерация файла initramfs 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;   Создаем файл инициализации для ядра 7.0.10-arch1-1 
 напрямую в корень вашей домашней папки:
 sudo mkinitcpio -k 7.0.10-arch1-1 -g /home/eva/initramfs-linux.img&lt;/pre&gt;

&lt;p&gt;
# 3. Копируем само ядро и образ инициализации в загрузочную папку системы образа
sudo cp /boot/vmlinuz-linux ~/extracted_fs/rootfs/boot/vmlinuz-linux
sudo cp /home/eva/initramfs-linux.img ~/extracted_fs/rootfs/boot/initramfs-linux.img
&lt;/p&gt;

&lt;p&gt;
Шаг 4. Обновляем ядро для загрузчика ISO Ядро на Arch ISO дублируется. 
Его также нужно обновить в папке самого загрузчика диска:
&lt;/p&gt;

&lt;p&gt;
sudo cp /boot/vmlinuz-linux ~/custom_iso/arch/boot/x86_64/vmlinuz-linux
sudo cp /home/eva/initramfs-linux.img ~/custom_iso/arch/boot/x86_64/initramfs-linux.img
&lt;/p&gt;

&lt;p&gt;
изменено на это обновление из интернета
#
&lt;/p&gt;

&lt;h4 id=&quot;шаг_4_исправленный&quot;&gt;ШАГ 4 (ИСПРАВЛЕННЫЙ)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
# 1. Создаем папку кэша и сразу вложенную папку для базы данных
mkdir -p /tmp/pacman-cache/db
&lt;/p&gt;

&lt;p&gt;
# 2. Запускаем изолированный pacman
sudo pacman -Syu –root /home/eva/extracted_fs/rootfs –cachedir /tmp/pacman-cache –dbpath /tmp/pacman-cache/db –noconfirm
&lt;/p&gt;

&lt;p&gt;
sudo pacman -S linux linux-firmware –root /home/eva/extracted_fs/rootfs –cachedir /tmp/pacman-cache –dbpath /tmp/pacman-cache/db –needed –overwrite «*» –noconfirm
&lt;/p&gt;

&lt;p&gt;
 результате файл initramfs-linux.img внутри rootfs либо не создался, 
 либо собрался битым. Если сейчас упаковать ISO, целевой сервер не сможет з
 агрузиться.Давайте исправим эту ошибку генерации initramfs на Шаге 4 
 прямой командой, открыв утилите доступ к системным потокам хоста.
 Выполните эту команду, чтобы принудительно и правильно пересобрать 
 образ инициализации прямо внутри вашей папки rootfs:
&lt;/p&gt;

&lt;p&gt;
sudo MODULEDIR=/home/eva/extracted_fs/rootfs/usr/lib/modules/7.0.10-arch1-1 mkinitcpio –config /home/eva/extracted_fs/rootfs/etc/mkinitcpio.conf –kernel 7.0.10-arch1-1 –generate /home/eva/extracted_fs/rootfs/boot/initramfs-linux.img
&lt;/p&gt;

&lt;p&gt;
Мы явно указали mkinitcpio использовать файлы конфигурации и модули 
ядра 7.0.10 прямо из папки rootfs.Она запустится в контексте хоста tom1, 
без проблем прочитает /dev/stdin и сгенерирует идеальный, рабочий файл 
initramfs-linux.img прямо по нужному адресу.
&lt;/p&gt;

&lt;p&gt;
tar -xOf /tmp/pacman-cache/linux-7.0.10.arch1-1-x86_64.pkg.tar.zst usr/lib/modules/7.0.10-arch1-1/vmlinuz | sudo tee /home/eva/extracted_fs/rootfs/boot/vmlinuz-linux &amp;gt; /dev/null
&lt;/p&gt;

&lt;p&gt;
проверить что смонтированно, иначе 
sudo mount -o loop /home/eva/original_iso_image/archlinux-x86_64.iso /home/eva/original_iso_image/mnt
&lt;/p&gt;

&lt;p&gt;
2. Копируем структуру в пустой конструктор custom_iso
cp -a /home/eva/original_iso_image/mnt/. /home/eva/custom_iso/
&lt;/p&gt;

&lt;p&gt;
3. Выполняем Шаг 5 (Теперь файлы ядра скопируются идеально)
sudo cp /home/eva/extracted_fs/rootfs/boot/vmlinuz-linux /home/eva/custom_iso/arch/boot/x86_64/vmlinuz-linux
sudo cp /home/eva/extracted_fs/rootfs/boot/initramfs-linux.img /home/eva/custom_iso/arch/boot/x86_64/initramfs-linux.img
&lt;/p&gt;

&lt;p&gt;
Шаг 5. Собираем образ SquashFS обратно
Удаляем старый сжатый образ и упаковываем измененную 
систему заново (это может занять пару минут):
&lt;/p&gt;

&lt;p&gt;
sudo rm -f /home/eva/custom_iso/arch/x86_64/airootfs.sfs
sudo mksquashfs /home/eva/extracted_fs/rootfs /home/eva/custom_iso/arch/x86_64/airootfs.sfs -comp xz
&lt;/p&gt;

&lt;p&gt;
isohdpfx.bin не оказалось на диске
Выполните команду для поиска :
&lt;/p&gt;

&lt;p&gt;
find ~/custom_iso -name «isohdpfx.bin»
&lt;/p&gt;

&lt;p&gt;
Отлично, файл isohdpfx.bin нашёлся прямо внутри вашего образа [archlinux.org]!
Раз он лежит по пути /home/eva/custom_iso/boot/syslinux/isohdpfx.bin, мы просто 
скормим его утилите xorrisofs [archlinux.org].Выполните эту команду, 
и сборка наконец-то завершится успехом:
&lt;/p&gt;

&lt;p&gt;
Шаг 6. Создаем финальный .iso файл Собираем всё обратно в загрузочный ISO-образ. 
Файл new_arch.iso появится в вашей домашней папке:
&lt;/p&gt;

&lt;p&gt;
xorrisofs -joliet -rock -volid «ARCH_CUSTOM» -output /home/eva/new_arch.iso /home/eva/custom_iso
&lt;/p&gt;

&lt;p&gt;
Шаг 7. Проверим версию ядра после обновления
&lt;/p&gt;

&lt;p&gt;
sudo umount /home/eva/original_iso_image/mnt 2&amp;gt;/dev/null
sudo mount -o loop ~/new_arch.iso /home/eva/original_iso_image/mnt
file /home/eva/original_iso_image/mnt/arch/boot/x86_64/vmlinuz-linux
&lt;/p&gt;

&lt;p&gt;
Проверка подтверждает: version 7.0.10-arch1-1. Вы успешно пересобрали 
ISO-образ, обновили ядро, укротили unsquashfs и победили капризные 
пути в xorriso без захламления основной системы.Теперь этот образ 
готов к использованию. Чтобы безопасно очистить временные файлы на 
виртуальной машине, которые занимают место, выполните:
&lt;/p&gt;

&lt;p&gt;
sudo umount /home/eva/original_iso_image/mnt
sudo rm -rf ~/custom_iso ~/extracted_fs ~/initramfs-linux.img
&lt;/p&gt;

&lt;p&gt;
Шаг 8. 
# 1. Размонтируем старый образ, если он еще висит
sudo umount /home/eva/original_iso_image/mnt 2&amp;gt;/dev/null
&lt;/p&gt;

&lt;p&gt;
# 2. Монтируем ваш СВЕЖЕСОБРАННЫЙ new_arch.iso в папку mnt
sudo mount -o loop /home/eva/new_arch.iso /home/eva/original_iso_image/mnt
&lt;/p&gt;

&lt;p&gt;
# 3. Считываем метаданные ядра напрямую из нового образа
file /home/eva/original_iso_image/mnt/arch/boot/x86_64/vmlinuz-linux
&lt;/p&gt;

&lt;p&gt;
Шаг 9. Вытащить образ в Windows
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 28 May 2026 22:29:50 +0000</pubDate>
        </item>
        <item>
            <title>tmp_full</title>
            <link>https://wwoss.ru/doku.php?id=tmp_full&amp;rev=1779092889</link>
            <description>&lt;pre class=&quot;code&quot;&gt;=== index.html
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&amp;quot;ru&amp;quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;
    &amp;lt;title&amp;gt;Мастер установки Сервера&amp;lt;/title&amp;gt;
    &amp;lt;!-- Подключаем чистый современный стиль --&amp;gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;assets/bootstrap.min.css&amp;quot;&amp;gt;
    &amp;lt;style&amp;gt;
        body { background: #f4f6f9; min-height: 100vh; display: flex; align-items: center; justify-content: center; }
        .wizard-card { background: white; border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,0.05); width: 650px; min-height: 450px; display: flex; flex-direction: column; justify-content: space-between; padding: 40px; }
        .step { display: none; }
        .step.active { display: block; }
        .step-header { border-bottom: 2px solid #efefef; padding-bottom: 15px; margin-bottom: 25px; }
    &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;div class=&amp;quot;wizard-card&amp;quot;&amp;gt;
    &amp;lt;div class=&amp;quot;wizard-content&amp;quot;&amp;gt;
        
        &amp;lt;!-- 1.2.1 Окно приветствия --&amp;gt;
        &amp;lt;div id=&amp;quot;step-1&amp;quot; class=&amp;quot;step active&amp;quot;&amp;gt;
            &amp;lt;div class=&amp;quot;step-header&amp;quot;&amp;gt;&amp;lt;h4&amp;gt;Шаг 1: Приветствие&amp;lt;/h4&amp;gt;&amp;lt;/div&amp;gt;
            &amp;lt;p class=&amp;quot;lead&amp;quot;&amp;gt;Добро пожаловать в веб-инсталлятор вашего нового сервера!&amp;lt;/p&amp;gt;
            &amp;lt;p&amp;gt;Этот мастер поможет развернуть и настроить операционную систему без подключения монитора к серверу. Все действия выполняются удаленно через этот браузер.&amp;lt;/p&amp;gt;
        &amp;lt;/div&amp;gt;

        &amp;lt;!-- 1.2.2 Выбор языка --&amp;gt;
        &amp;lt;div id=&amp;quot;step-2&amp;quot; class=&amp;quot;step&amp;quot;&amp;gt;
            &amp;lt;div class=&amp;quot;step-header&amp;quot;&amp;gt;&amp;lt;h4&amp;gt;Шаг 2: Язык системы&amp;lt;/h4&amp;gt;&amp;lt;/div&amp;gt;
            &amp;lt;label class=&amp;quot;form-label&amp;quot;&amp;gt;Выберите основной язык для устанавливаемой ОС:&amp;lt;/label&amp;gt;
            &amp;lt;select id=&amp;quot;sys_lang&amp;quot; class=&amp;quot;form-select form-select-lg&amp;quot;&amp;gt;
                &amp;lt;option value=&amp;quot;ru_RU.UTF-8&amp;quot;&amp;gt;Русский (ru_RU)&amp;lt;/option&amp;gt;
                &amp;lt;option value=&amp;quot;en_US.UTF-8&amp;quot;&amp;gt;English (en_US)&amp;lt;/option&amp;gt;
            &amp;lt;/select&amp;gt;
        &amp;lt;/div&amp;gt;

        &amp;lt;!-- 1.2.3 Выбор раскладки клавиатуры --&amp;gt;
        &amp;lt;div id=&amp;quot;step-3&amp;quot; class=&amp;quot;step&amp;quot;&amp;gt;
            &amp;lt;div class=&amp;quot;step-header&amp;quot;&amp;gt;&amp;lt;h4&amp;gt;Шаг 3: Раскладка клавиатуры&amp;lt;/h4&amp;gt;&amp;lt;/div&amp;gt;
            &amp;lt;label class=&amp;quot;form-label&amp;quot;&amp;gt;Выберите раскладку клавиатуры по умолчанию:&amp;lt;/label&amp;gt;
            &amp;lt;select id=&amp;quot;sys_layout&amp;quot; class=&amp;quot;form-select form-select-lg&amp;quot;&amp;gt;
                &amp;lt;option value=&amp;quot;ru&amp;quot;&amp;gt;Русская (ru)&amp;lt;/option&amp;gt;
                &amp;lt;option value=&amp;quot;us&amp;quot;&amp;gt;Английская (us)&amp;lt;/option&amp;gt;
            &amp;lt;/select&amp;gt;
        &amp;lt;/div&amp;gt;

        &amp;lt;!-- 1.2.4 Выбор часового пояса --&amp;gt;
        &amp;lt;div id=&amp;quot;step-4&amp;quot; class=&amp;quot;step&amp;quot;&amp;gt;
            &amp;lt;div class=&amp;quot;step-header&amp;quot;&amp;gt;&amp;lt;h4&amp;gt;Шаг 4: Часовой пояс&amp;lt;/h4&amp;gt;&amp;lt;/div&amp;gt;
            &amp;lt;label class=&amp;quot;form-label&amp;quot;&amp;gt;Укажите ваш часовой пояс:&amp;lt;/label&amp;gt;
            &amp;lt;select id=&amp;quot;sys_timezone&amp;quot; class=&amp;quot;form-select form-select-lg&amp;quot;&amp;gt;
                &amp;lt;option value=&amp;quot;Europe/Moscow&amp;quot;&amp;gt;Москва (GMT+3)&amp;lt;/option&amp;gt;
                &amp;lt;option value=&amp;quot;Europe/Kaliningrad&amp;quot;&amp;gt;Калининград (GMT+2)&amp;lt;/option&amp;gt;
                &amp;lt;option value=&amp;quot;Asia/Yekaterinburg&amp;quot;&amp;gt;Екатеринбург (GMT+5)&amp;lt;/option&amp;gt;
                &amp;lt;option value=&amp;quot;UTC&amp;quot;&amp;gt;UTC (Универсальное время)&amp;lt;/option&amp;gt;
            &amp;lt;/select&amp;gt;
        &amp;lt;/div&amp;gt;

        &amp;lt;!-- 1.2.5 Имя компьютера --&amp;gt;
        &amp;lt;div id=&amp;quot;step-5&amp;quot; class=&amp;quot;step&amp;quot;&amp;gt;
			&amp;lt;div class=&amp;quot;step-header&amp;quot;&amp;gt;&amp;lt;h4&amp;gt;Шаг 5: Сетевое имя (Hostname)&amp;lt;/h4&amp;gt;&amp;lt;/div&amp;gt;
			&amp;lt;label class=&amp;quot;form-label&amp;quot;&amp;gt;Введите имя вашего будущего сервера:&amp;lt;/label&amp;gt;
			&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;sys_hostname&amp;quot; class=&amp;quot;form-control form-control-lg&amp;quot; value=&amp;quot;my-cool-server&amp;quot; oninput=&amp;quot;validateHostname(this)&amp;quot;&amp;gt;
			&amp;lt;div class=&amp;quot;form-text text-danger&amp;quot;&amp;gt;Разрешена только латиница (a-z), цифры и дефис.&amp;lt;/div&amp;gt;
		&amp;lt;/div&amp;gt;


                &amp;lt;!-- 1.2.6 Разбивка диска и RAID --&amp;gt;
        &amp;lt;div id=&amp;quot;step-6&amp;quot; class=&amp;quot;step&amp;quot;&amp;gt;
            &amp;lt;div class=&amp;quot;step-header&amp;quot;&amp;gt;&amp;lt;h4&amp;gt;Шаг 6: Разметка накопителей&amp;lt;/h4&amp;gt;&amp;lt;/div&amp;gt;
            &amp;lt;label class=&amp;quot;form-label&amp;quot;&amp;gt;Выберите конфигурацию дисковой подсистемы:&amp;lt;/label&amp;gt;
            &amp;lt;div class=&amp;quot;form-check mb-3&amp;quot;&amp;gt;
                &amp;lt;input class=&amp;quot;form-check-input&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;disk_mode&amp;quot; id=&amp;quot;disk_default&amp;quot; value=&amp;quot;default&amp;quot; checked&amp;gt;
                &amp;lt;label class=&amp;quot;form-check-label&amp;quot; for=&amp;quot;disk_default&amp;quot;&amp;gt;
                    &amp;lt;strong&amp;gt;Режим по умолчанию:&amp;lt;/strong&amp;gt; Система + 25GB под установку, остальное в резерв под домашнюю папку пользователя
                &amp;lt;/label&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div class=&amp;quot;form-check mb-4&amp;quot;&amp;gt;
                &amp;lt;input class=&amp;quot;form-check-input&amp;quot; type=&amp;quot;radio&amp;quot; name=&amp;quot;disk_mode&amp;quot; id=&amp;quot;disk_raid&amp;quot; value=&amp;quot;raid1&amp;quot;&amp;gt;
                &amp;lt;label class=&amp;quot;form-check-label&amp;quot; for=&amp;quot;disk_raid&amp;quot;&amp;gt;
                    &amp;lt;strong&amp;gt;Программный RAID-1 (Зеркало):&amp;lt;/strong&amp;gt; Объединить два диска для отказоустойчивости
                &amp;lt;/label&amp;gt;
            &amp;lt;/div&amp;gt;

            &amp;lt;!-- ВОТ ЭТОТ БЛОК КРИТИЧЕСКИ НЕОБХОДИМ ДЛЯ ИСПРАВЛЕНИЯ ОШИБКИ 444 --&amp;gt;
            &amp;lt;div id=&amp;quot;disks_selection_zone&amp;quot; class=&amp;quot;p-3 bg-light border rounded mb-4&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;
                &amp;lt;h6&amp;gt;Доступные физические диски для построения RAID-1 массивов:&amp;lt;/h6&amp;gt;
                &amp;lt;div id=&amp;quot;disks_list&amp;quot; class=&amp;quot;mt-2&amp;quot;&amp;gt;
                    &amp;lt;div class=&amp;quot;text-muted small&amp;quot;&amp;gt;Опрос накопителей контроллером...&amp;lt;/div&amp;gt;
                &amp;lt;/div&amp;gt;
                &amp;lt;div class=&amp;quot;form-text text-muted mt-2&amp;quot;&amp;gt;Для активации зеркалирования (RAID-1) выберите ровно два одинаковых накопителя.&amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;

            &amp;lt;div class=&amp;quot;alert alert-danger mt-4 d-flex align-items-center&amp;quot;&amp;gt;
                &amp;lt;div class=&amp;quot;me-3&amp;quot; style=&amp;quot;font-size: 24px;&amp;quot;&amp;gt;⚠️&amp;lt;/div&amp;gt;
                &amp;lt;div&amp;gt;
                    &amp;lt;strong&amp;gt;ВНИМАНИЕ:&amp;lt;/strong&amp;gt; Все существующие данные (включая Windows или старые ОС) на выбранных накопителях будут &amp;lt;strong&amp;gt;полностью и безвозвратно удалены&amp;lt;/strong&amp;gt;. Разделы будут переформатированы!
                &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div class=&amp;quot;form-check mb-3&amp;quot;&amp;gt;
                &amp;lt;input class=&amp;quot;form-check-input border-danger&amp;quot; type=&amp;quot;checkbox&amp;quot; id=&amp;quot;confirm_erase&amp;quot; onchange=&amp;quot;toggleNextButton()&amp;quot;&amp;gt;
                &amp;lt;label class=&amp;quot;form-check-label text-danger fw-bold&amp;quot; for=&amp;quot;confirm_erase&amp;quot;&amp;gt;
                    Я понимаю риски. Подтверждаю полное уничтожение данных и форматирование дисков.
                &amp;lt;/label&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;

    
		        &amp;lt;!-- 1.2.7 Создание пользователя --&amp;gt;
        &amp;lt;div id=&amp;quot;step-7&amp;quot; class=&amp;quot;step&amp;quot;&amp;gt;
            &amp;lt;div class=&amp;quot;step-header&amp;quot;&amp;gt;&amp;lt;h4&amp;gt;Шаг 7: Учетная запись администратора&amp;lt;/h4&amp;gt;&amp;lt;/div&amp;gt;
            &amp;lt;div class=&amp;quot;mb-3&amp;quot;&amp;gt;
                &amp;lt;label class=&amp;quot;form-label&amp;quot;&amp;gt;Имя пользователя (Логин):&amp;lt;/label&amp;gt;
                &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;username&amp;quot; class=&amp;quot;form-control&amp;quot; value=&amp;quot;eva&amp;quot; oninput=&amp;quot;validateUsername(this)&amp;quot; placeholder=&amp;quot;только маленькие латинские буквы&amp;quot;&amp;gt;
                &amp;lt;div class=&amp;quot;form-text text-muted&amp;quot;&amp;gt;Используйте исключительно маленькие английские буквы (a-z).&amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div class=&amp;quot;row mb-3&amp;quot;&amp;gt;
                &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
                    &amp;lt;label class=&amp;quot;form-label&amp;quot;&amp;gt;Пароль:&amp;lt;/label&amp;gt;
                    &amp;lt;input type=&amp;quot;password&amp;quot; id=&amp;quot;password&amp;quot; class=&amp;quot;form-control&amp;quot; oninput=&amp;quot;this.value = this.value.replace(/[а-яА-ЯёЁ]/g, &amp;#039;&amp;#039;); checkPasswordStrength(this.value)&amp;quot;&amp;gt;
                    &amp;lt;div class=&amp;quot;form-text text-danger fw-bold&amp;quot; style=&amp;quot;font-size: 13px;&amp;quot;&amp;gt;⚠️ Ввод строго на АНГЛИЙСКОЙ раскладке! Русский язык запрещен.&amp;lt;/div&amp;gt;
                    &amp;lt;div class=&amp;quot;progress mt-2&amp;quot; style=&amp;quot;height: 6px;&amp;quot;&amp;gt;
                        &amp;lt;div id=&amp;quot;pass_progress&amp;quot; class=&amp;quot;progress-bar bg-danger&amp;quot; style=&amp;quot;width: 0%&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
                    &amp;lt;/div&amp;gt;
                    &amp;lt;div id=&amp;quot;pass_status&amp;quot; class=&amp;quot;small text-muted mt-1&amp;quot;&amp;gt;Сложность: слишком слабый&amp;lt;/div&amp;gt;
                &amp;lt;/div&amp;gt;
                &amp;lt;div class=&amp;quot;col&amp;quot;&amp;gt;
                    &amp;lt;label class=&amp;quot;form-label&amp;quot;&amp;gt;Подтверждение пароля:&amp;lt;/label&amp;gt;
                    &amp;lt;input type=&amp;quot;password&amp;quot; id=&amp;quot;password_confirm&amp;quot; class=&amp;quot;form-control&amp;quot; oninput=&amp;quot;this.value = this.value.replace(/[а-яА-ЯёЁ]/g, &amp;#039;&amp;#039;); validatePasswordMatch()&amp;quot;&amp;gt;
                    &amp;lt;div id=&amp;quot;match_status&amp;quot; class=&amp;quot;small text-danger mt-1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
                &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
            
            &amp;lt;div class=&amp;quot;p-3 bg-light border rounded mb-3&amp;quot;&amp;gt;
                &amp;lt;h6 class=&amp;quot;mb-2&amp;quot; style=&amp;quot;font-size: 14px;&amp;quot;&amp;gt;Критерии надежности пароля:&amp;lt;/h6&amp;gt;
                &amp;lt;ul class=&amp;quot;password-rules-list mb-0&amp;quot;&amp;gt;
                    &amp;lt;li id=&amp;quot;rule_len&amp;quot; class=&amp;quot;text-danger&amp;quot;&amp;gt;❌ Не менее 8 symbols&amp;lt;/li&amp;gt;
                    &amp;lt;li id=&amp;quot;rule_upper&amp;quot; class=&amp;quot;text-danger&amp;quot;&amp;gt;❌ Минимум одна заглавная буква (A-Z)&amp;lt;/li&amp;gt;
                    &amp;lt;li id=&amp;quot;rule_number&amp;quot; class=&amp;quot;text-danger&amp;quot;&amp;gt;❌ Минимум одна цифра (0-9)&amp;lt;/li&amp;gt;
                    &amp;lt;li id=&amp;quot;rule_symbol&amp;quot; class=&amp;quot;text-danger&amp;quot;&amp;gt;❌ Минимум один спецсимвол (@, #, $, !)&amp;lt;/li&amp;gt;
                &amp;lt;/ul&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;

        &amp;lt;!-- НОВЫЙ ШАГ 8: Окно Двухфакторной аутентификации (2FA) --&amp;gt;
        &amp;lt;div id=&amp;quot;step-8&amp;quot; class=&amp;quot;step&amp;quot;&amp;gt;
            &amp;lt;div class=&amp;quot;step-header&amp;quot;&amp;gt;&amp;lt;h4&amp;gt;Шаг 8: Безопасность аккаунта (2FA)&amp;lt;/h4&amp;gt;&amp;lt;/div&amp;gt;
            &amp;lt;div class=&amp;quot;p-3 bg-light border rounded&amp;quot;&amp;gt;
                &amp;lt;h5&amp;gt;Настройка Двухфакторной аутентификации&amp;lt;/h5&amp;gt;
                &amp;lt;p class=&amp;quot;small text-muted mb-2&amp;quot;&amp;gt;Отсканируйте этот QR-код мобильным приложением перед началом развертывания системы:&amp;lt;/p&amp;gt;
                
                &amp;lt;div class=&amp;quot;mb-3 small text-secondary&amp;quot;&amp;gt;
                    &amp;lt;strong&amp;gt;Поддерживаемые приложения на телефоне:&amp;lt;/strong&amp;gt;
                    &amp;lt;ul class=&amp;quot;mb-2 mt-1 ps-3&amp;quot;&amp;gt;
                        &amp;lt;li&amp;gt;Google Authenticator (iOS / Android)&amp;lt;/li&amp;gt;
                        &amp;lt;li&amp;gt;Yandex Key / Яндекс Ключ&amp;lt;/li&amp;gt;
                        &amp;lt;li&amp;gt;Microsoft Authenticator&amp;lt;/li&amp;gt;
                        &amp;lt;li&amp;gt;2FAS / Aegis / Икс-Ключ&amp;lt;/li&amp;gt;
                    &amp;lt;/ul&amp;gt;
                    &amp;lt;span class=&amp;quot;text-warning fw-bold&amp;quot;&amp;gt;⚠️ Внимание:&amp;lt;/span&amp;gt; Сохраните этот аккаунт в приложении на телефоне. Код потребуется при каждом входе на сервер.
                &amp;lt;/div&amp;gt;

                &amp;lt;div id=&amp;quot;qrcode_container&amp;quot; class=&amp;quot;text-center py-2&amp;quot;&amp;gt;
                    &amp;lt;img id=&amp;quot;qr-image&amp;quot; 
						 src=&amp;quot;about:blank&amp;quot; 
						 onload=&amp;quot;if(this.src==&amp;#039;about:blank&amp;#039;) { this.src=&amp;#039;api/2fa.php?username=&amp;#039; + encodeURIComponent(document.getElementById(&amp;#039;username&amp;#039;).value) + &amp;#039;&amp;amp;hostname=&amp;#039; + encodeURIComponent(document.getElementById(&amp;#039;sys_hostname&amp;#039;).value); }&amp;quot; 
						 alt=&amp;quot;QR-код для 2FA&amp;quot; 
						 class=&amp;quot;img-fluid&amp;quot;&amp;gt;
				&amp;lt;!-- Временный вывод для тестирования шага 8 --&amp;gt;
				&amp;lt;div id=&amp;quot;qr-debug-zone&amp;quot; class=&amp;quot;mt-3 p-3 bg-light border rounded small text-muted text-start&amp;quot; style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;
					&amp;lt;strong&amp;gt;Отладка перед отправкой в API:&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;
					Логин пользователя: &amp;lt;span id=&amp;quot;debug-qr-user&amp;quot; class=&amp;quot;fw-bold text-primary&amp;quot;&amp;gt;ожидание...&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;
					Имя сервера (Host): &amp;lt;span id=&amp;quot;debug-qr-host&amp;quot; class=&amp;quot;fw-bold text-primary&amp;quot;&amp;gt;ожидание...&amp;lt;/span&amp;gt;
				&amp;lt;/div&amp;gt;
				&amp;lt;!-- конец Временный вывод для тестирования шага 8 --&amp;gt;
				
				&amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;

		&amp;lt;!-- НОВЫЙ ШАГ 9: ЭКРАН КОНТРОЛЯ КОНФИГУРАЦИИ --&amp;gt;
		&amp;lt;div id=&amp;quot;step-9&amp;quot; class=&amp;quot;step&amp;quot;&amp;gt;
			&amp;lt;h4 class=&amp;quot;mb-3 text-primary&amp;quot;&amp;gt;📊 Шаг 9: Проверка конфигурации сервера&amp;lt;/h4&amp;gt;
			&amp;lt;p class=&amp;quot;text-muted small&amp;quot;&amp;gt;Внимательно проверьте параметры. После перехода к следующему шагу диски будут принудительно отформатированы, а данные перезаписаны!&amp;lt;/p&amp;gt;
			
			&amp;lt;div class=&amp;quot;mt-3 text-start&amp;quot;&amp;gt;
				&amp;lt;label class=&amp;quot;form-label fw-bold text-secondary&amp;quot;&amp;gt;Содержимое файла install_config.txt:&amp;lt;/label&amp;gt;
				&amp;lt;!-- Текстовая область, имитирующая файл конфигурации --&amp;gt;
				&amp;lt;textarea id=&amp;quot;config-preview-zone&amp;quot; 
						  class=&amp;quot;form-control bg-light border-primary&amp;quot; 
						  rows=&amp;quot;9&amp;quot; 
						  readonly 
						  style=&amp;quot;font-family: monospace; font-size: 13px; color: #2c3e50; font-weight: bold; background-color: #f8f9fa !important; box-shadow: inset 0 1px 3px rgba(0,0,0,0.1);&amp;quot;&amp;gt;&amp;lt;/textarea&amp;gt;
			&amp;lt;/div&amp;gt;
			
			&amp;lt;div class=&amp;quot;alert alert-warning d-flex align-items-center mt-3 small&amp;quot; role=&amp;quot;alert&amp;quot;&amp;gt;
				&amp;lt;div&amp;gt;
					⚠️ &amp;lt;strong&amp;gt;Внимание:&amp;lt;/strong&amp;gt; Нажатие кнопки «Далее» безвозвратно уничтожит текущие таблицы разделов на целевых накопителях.
				&amp;lt;/div&amp;gt;
			&amp;lt;/div&amp;gt;
		&amp;lt;/div&amp;gt;




		&amp;lt;!-- ШАГ 10: ПРОЦЕСС УСТАНОВКИ С ВНУТРЕННЕЙ КОНСОЛЬЮ --&amp;gt;
		&amp;lt;div id=&amp;quot;step-10&amp;quot; class=&amp;quot;step&amp;quot;&amp;gt;
			&amp;lt;div class=&amp;quot;step-header&amp;quot;&amp;gt;&amp;lt;h4&amp;gt;Шаг 10: Выполнение установки&amp;lt;/h4&amp;gt;&amp;lt;/div&amp;gt;
			&amp;lt;p id=&amp;quot;install_status&amp;quot; class=&amp;quot;fw-bold text-primary&amp;quot;&amp;gt;Инициализация скриптов разметки дисковых массивов...&amp;lt;/p&amp;gt;
			
			&amp;lt;div class=&amp;quot;progress mb-3&amp;quot; style=&amp;quot;height: 25px;&amp;quot;&amp;gt;
				&amp;lt;div id=&amp;quot;install_progress&amp;quot; class=&amp;quot;progress-bar progress-bar-striped progress-bar-animated&amp;quot; role=&amp;quot;progressbar&amp;quot; style=&amp;quot;width: 0%;&amp;quot;&amp;gt;0%&amp;lt;/div&amp;gt;
			&amp;lt;/div&amp;gt;
			
			&amp;lt;div class=&amp;quot;text-muted small&amp;quot;&amp;gt;Время выполнения операции: &amp;lt;span id=&amp;quot;install_timer&amp;quot; class=&amp;quot;fw-bold text-dark&amp;quot;&amp;gt;0 сек.&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;

			&amp;lt;!-- Консоль теперь живет строго ЗДЕСЬ и будет появляться только на этом шаге --&amp;gt;
			&amp;lt;div class=&amp;quot;mt-4 p-3 bg-dark text-success rounded small text-start&amp;quot; id=&amp;quot;installer-console&amp;quot; style=&amp;quot;font-family: monospace; min-height: 120px; font-size: 12px; line-height: 1.4; opacity: 0.95; box-shadow: inset 0 0 10px #000;&amp;quot;&amp;gt;
				&amp;lt;div class=&amp;quot;text-muted border-bottom border-secondary pb-1 mb-2&amp;quot;&amp;gt;📟 СИСТЕМНЫЙ ЖУРНАЛ УСТАНОВКИ:&amp;lt;/div&amp;gt;
				&amp;lt;div id=&amp;quot;console-output-lines&amp;quot;&amp;gt;Ожидание потока данных...&amp;lt;/div&amp;gt;
			&amp;lt;/div&amp;gt;
		&amp;lt;/div&amp;gt;



		&amp;lt;!-- Теперь это ШАГ 11: Завершение и перезагрузка --&amp;gt;
		&amp;lt;div id=&amp;quot;step-11&amp;quot; class=&amp;quot;step&amp;quot;&amp;gt;
			&amp;lt;div class=&amp;quot;step-header&amp;quot;&amp;gt;&amp;lt;h4 class=&amp;quot;text-success&amp;quot;&amp;gt;Установка успешно завершена!&amp;lt;/h4&amp;gt;&amp;lt;/div&amp;gt;
			&amp;lt;p&amp;gt;Операционная система развернута. Сетевые сервисы, SSH-доступ и конфигурация RAID подготовлены.&amp;lt;/p&amp;gt;
			
			&amp;lt;!-- Сюда JS выведет надпись об обновлении страницы --&amp;gt;
			&amp;lt;div id=&amp;quot;install_status_final&amp;quot; class=&amp;quot;my-3&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;

			&amp;lt;div class=&amp;quot;alert alert-warning text-center p-4&amp;quot;&amp;gt;
				&amp;lt;h5&amp;gt;Внимание! Сервер будет отправлен в перезагрузку через:&amp;lt;/h5&amp;gt;
				&amp;lt;h1 id=&amp;quot;reboot_timer&amp;quot; class=&amp;quot;display-3 font-monospace my-3 text-danger fw-bold&amp;quot;&amp;gt;5&amp;lt;/h1&amp;gt;
				&amp;lt;p class=&amp;quot;mb-0 small fw-bold&amp;quot;&amp;gt;Извлеките загрузочную USB-флешку из разъема, чтобы сервер загрузился с основного диска.&amp;lt;/p&amp;gt;
			&amp;lt;/div&amp;gt;
		&amp;lt;/div&amp;gt;




    &amp;lt;/div&amp;gt;

    &amp;lt;!-- Кнопки управления шагами --&amp;gt;
    &amp;lt;div class=&amp;quot;buttons d-flex justify-content-between mt-4 border-top pt-3&amp;quot;&amp;gt;
        &amp;lt;button id=&amp;quot;btn-prev&amp;quot; class=&amp;quot;btn btn-outline-secondary px-4&amp;quot; onclick=&amp;quot;changeStep(-1)&amp;quot; disabled&amp;gt;Назад&amp;lt;/button&amp;gt;
        &amp;lt;button id=&amp;quot;btn-next&amp;quot; class=&amp;quot;btn btn-primary px-4&amp;quot; onclick=&amp;quot;changeStep(1)&amp;quot;&amp;gt;Далее&amp;lt;/button&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;script&amp;gt;
let currentStep = 1;
const totalSteps = 11;

// Флаги валидации для учетной записи
let isPasswordValid = false;
let isPasswordMatching = false;

// Контроль блокировки кнопки &amp;quot;Далее&amp;quot; на Шаге 6 (Диски)
function toggleNextButton() {
    if (currentStep === 6) {
        const confirmed = document.getElementById(&amp;#039;confirm_erase&amp;#039;).checked;
        const diskMode = document.querySelector(&amp;#039;input[name=&amp;quot;disk_mode&amp;quot;]:checked&amp;#039;).value;
        let isDiskSelectionOk = true;

        if (diskMode === &amp;#039;raid1&amp;#039;) {
            const selectedDisksCount = document.querySelectorAll(&amp;#039;.disk-checkbox:checked&amp;#039;).length;
            isDiskSelectionOk = (selectedDisksCount === 2); // Строго 2 диска для RAID-1
        }
        document.getElementById(&amp;#039;btn-next&amp;#039;).disabled = !(confirmed &amp;amp;&amp;amp; isDiskSelectionOk);
    }
}

function changeStep(direction) {
    // Скрываем блок ошибок перед проверкой
    const errorBlock = document.getElementById(&amp;#039;error-message-zone&amp;#039;);
    if (errorBlock) errorBlock.style.display = &amp;#039;none&amp;#039;;

    // АВТО-ОЧИСТКА СЕРВЕРА: Если пользователь возвращается НАЗАД с Шага 9
    if (direction === -1 &amp;amp;&amp;amp; currentStep === 9) {
        // Блокируем интерфейс на долю секунды для выполнения зачистки
        document.getElementById(&amp;#039;btn-prev&amp;#039;).disabled = true;
        document.getElementById(&amp;#039;btn-next&amp;#039;).disabled = true;

        fetch(&amp;#039;api/cancel_install.php&amp;#039;)
        .then(res =&amp;gt; res.json())
        .then(result =&amp;gt; {
            // Разблокируем кнопки после успешной очистки сервера
            document.getElementById(&amp;#039;btn-prev&amp;#039;).disabled = false;
            document.getElementById(&amp;#039;btn-next&amp;#039;).disabled = false;
        })
        .catch(err =&amp;gt; {
            console.log(&amp;quot;Ошибка фоновой очистки: &amp;quot;, err);
            document.getElementById(&amp;#039;btn-prev&amp;#039;).disabled = false;
            document.getElementById(&amp;#039;btn-next&amp;#039;).disabled = false;
        });
    }

    // Подгрузка доступных дисков при переходе с 5 на 6 шаг
    if (currentStep === 5 &amp;amp;&amp;amp; direction === 1) {
        loadSystemDisks();
    }

    // ТРИГГЕР: Переход с 7 на 8 шаг (Безопасное обновление QR)
    if (direction === 1 &amp;amp;&amp;amp; currentStep === 7) {
        if (!isPasswordValid || !isPasswordMatching) {
            showInlineError(&amp;#039;Пароль не соответствует требованиям или не совпадает!&amp;#039;);
            return;
        }

        // Забираем данные и обновляем QR-код
        try {
            const currentHost = document.getElementById(&amp;#039;sys_hostname&amp;#039;).value.trim();
            const currentUser = document.getElementById(&amp;#039;username&amp;#039;).value.trim();

            const dbgUser = document.getElementById(&amp;#039;debug-qr-user&amp;#039;);
            const dbgHost = document.getElementById(&amp;#039;debug-qr-host&amp;#039;);
            if (dbgUser) dbgUser.innerText = currentUser;
            if (dbgHost) dbgHost.innerText = currentHost;

            // ИСПРАВЛЕНО: Точный поиск картинки по ID
            const qrImg = document.getElementById(&amp;#039;qr-image&amp;#039;);
            if (qrImg) {
                qrImg.src = `api/2fa.php?username=${encodeURIComponent(currentUser)}&amp;amp;hostname=${encodeURIComponent(currentHost)}`;
            }
        } catch (e) {
            console.log(&amp;quot;Ошибка обновления элементов Шага 8: &amp;quot;, e);
        }
    }

    // ТРИГГЕР: Нажатие &amp;quot;Далее&amp;quot; на Шаге 8 (Сборка превью install_config.txt без отправки на сервер)
    if (direction === 1 &amp;amp;&amp;amp; currentStep === 8) {
        let selectedDisks = [];
        const diskMode = document.querySelector(&amp;#039;input[name=&amp;quot;disk_mode&amp;quot;]:checked&amp;#039;).value;
        
        if (diskMode === &amp;#039;raid1&amp;#039;) {
            document.querySelectorAll(&amp;#039;.disk-checkbox:checked&amp;#039;).forEach(cb =&amp;gt; { 
                selectedDisks.push(cb.value); 
            });
        } else {
			const firstDiskInput = document.querySelector(&amp;#039;.disk-checkbox&amp;#039;);
			// ИСПРАВЛЕНО: Убран хардкод sda. Если чекбокс найден - берем его value, иначе оставляем пустоту для валидации
			selectedDisks.push(firstDiskInput ? firstDiskInput.value : &amp;#039;&amp;#039;);
        }

        // Формируем точный текст будущего конфигурационного файла для вывода пользователю
        let configPreview = `SYS_LANG=${document.getElementById(&amp;#039;sys_lang&amp;#039;).value}\n`;
        configPreview += `SYS_LAYOUT=${document.getElementById(&amp;#039;sys_layout&amp;#039;).value}\n`;
        configPreview += `SYS_TIMEZONE=${document.getElementById(&amp;#039;sys_timezone&amp;#039;).value}\n`;
        configPreview += `SYS_HOSTNAME=${document.getElementById(&amp;#039;sys_hostname&amp;#039;).value.trim()}\n`;
        configPreview += `DISK_MODE=${diskMode}\n`;
        configPreview += `SELECTED_DISKS=${selectedDisks.join(&amp;#039; &amp;#039;)}\n`;
        configPreview += `SYS_USER=${document.getElementById(&amp;#039;username&amp;#039;).value.trim()}\n`;
        configPreview += `SYS_PASS=${document.getElementById(&amp;#039;password&amp;#039;).value.trim()}`;

        // Безопасно выводим сформированный текст в зону контроля нового Шага 9
        const previewZone = document.getElementById(&amp;#039;config-preview-zone&amp;#039;);
        if (previewZone) {
            previewZone.value = configPreview;
        }

        // Переключаем интерфейс со старого Шага 8 на новый Шаг 9
        document.getElementById(`step-${currentStep}`).classList.remove(&amp;#039;active&amp;#039;);
        currentStep = 9;
        document.getElementById(`step-9`).classList.add(&amp;#039;active&amp;#039;);
        
        // Кнопки навигации остаются активными, так как это экран контроля, а не установка
        document.getElementById(&amp;#039;btn-prev&amp;#039;).disabled = false;
        document.getElementById(&amp;#039;btn-next&amp;#039;).disabled = false;
        
        return; // Полностью прерываем выполнение, чтобы не сработал линейный переход ниже
    }

    // ТРИГГЕР: Нажатие &amp;quot;Далее&amp;quot; на НОВОМ Шаге 9 (Фактический СТАРТ установки и форматирования)
    if (direction === 1 &amp;amp;&amp;amp; currentStep === 9) {
        let selectedDisks = [];
        const diskMode = document.querySelector(&amp;#039;input[name=&amp;quot;disk_mode&amp;quot;]:checked&amp;#039;).value;
        
        if (diskMode === &amp;#039;raid1&amp;#039;) {
            document.querySelectorAll(&amp;#039;.disk-checkbox:checked&amp;#039;).forEach(cb =&amp;gt; { 
                selectedDisks.push(cb.value); 
            });
        } else {
            const firstDiskInput = document.querySelector(&amp;#039;.disk-checkbox&amp;#039;);
            selectedDisks.push(firstDiskInput ? firstDiskInput.value : &amp;#039;sda&amp;#039;);
        }

        const payload = {
            lang: document.getElementById(&amp;#039;sys_lang&amp;#039;).value,
            layout: document.getElementById(&amp;#039;sys_layout&amp;#039;).value,
            timezone: document.getElementById(&amp;#039;sys_timezone&amp;#039;).value,
            hostname: document.getElementById(&amp;#039;sys_hostname&amp;#039;).value.trim(),
            disk_mode: diskMode,
            disks: selectedDisks,
            username: document.getElementById(&amp;#039;username&amp;#039;).value.trim(),
            password: document.getElementById(&amp;#039;password&amp;#039;).value.trim()
        };

        // Блокируем кнопку на время отправки, чтобы избежать повторных кликов
        document.getElementById(&amp;#039;btn-next&amp;#039;).disabled = true;

        // ПРИНУДИТЕЛЬНЫЙ ЗАПУСК ОТПРАВКИ НА СЕРВЕР
        fetch(&amp;#039;api/start_install.php&amp;#039;, {
            method: &amp;#039;POST&amp;#039;,
            headers: { &amp;#039;Content-Type&amp;#039;: &amp;#039;application/json&amp;#039; },
            body: JSON.stringify(payload)
        })
        .then(res =&amp;gt; res.json())
        .then(result =&amp;gt; {
            if (result &amp;amp;&amp;amp; result.success) {
                // Если сервер принял данные, гасим Шаг 9 и открываем Шаг 10 (Прогресс-бар)
                document.getElementById(&amp;#039;step-9&amp;#039;).classList.remove(&amp;#039;active&amp;#039;);
                currentStep = 10;
                document.getElementById(&amp;#039;step-10&amp;#039;).classList.add(&amp;#039;active&amp;#039;);
                
                // Намертво скрываем нижние кнопки навигации на время установки
                document.getElementById(&amp;#039;btn-prev&amp;#039;).style.display = &amp;#039;none&amp;#039;;
                document.getElementById(&amp;#039;btn-next&amp;#039;).style.display = &amp;#039;none&amp;#039;;
                
                // Запускаем AJAX-опрос системного журнала установки
                startInstallationSimulation();
            } else {
                document.getElementById(&amp;#039;btn-next&amp;#039;).disabled = false;
                showInlineError(&amp;#039;Ошибка сервера: &amp;#039; + (result &amp;amp;&amp;amp; result.message ? result.message : &amp;#039;Неизвестный ответ&amp;#039;));
            }
        })
        .catch(err =&amp;gt; {
            document.getElementById(&amp;#039;btn-next&amp;#039;).disabled = false;
            showInlineError(&amp;#039;Ошибка сети: сервер установки недоступен.&amp;#039;);
        });
        
        return; // Блокируем стандартный линейный переход, ждем ответа от сервера
    }


    // Линейный переход для остальных шагов
    document.getElementById(`step-${currentStep}`).classList.remove(&amp;#039;active&amp;#039;);
    currentStep += direction;
    document.getElementById(`step-${currentStep}`).classList.add(&amp;#039;active&amp;#039;);

    document.getElementById(&amp;#039;btn-prev&amp;#039;).disabled = (currentStep === 1 || currentStep &amp;gt;= 10);
    document.getElementById(&amp;#039;btn-next&amp;#039;).disabled = (currentStep &amp;gt;= 10);

    if (currentStep === 6) {
        toggleNextButton();
    }
}





// Валидаторы ввода с ограничением до 16 символов
function validateHostname(input) {
    input.value = input.value.toLowerCase().replace(/[^a-z0-9-]/g, &amp;#039;&amp;#039;).substring(0, 16);
}

// Изменено: разрешаем латиницу и цифры для соответствия бэкенду
function validateUsername(input) {
    input.value = input.value.toLowerCase().replace(/[^a-z0-9]/g, &amp;#039;&amp;#039;).substring(0, 16);
}

// Запрет пробелов и ограничение длины в самом поле пароля
const passwordInputField = document.getElementById(&amp;#039;password&amp;#039;);
if (passwordInputField) {
    passwordInputField.addEventListener(&amp;#039;input&amp;#039;, function() {
        this.value = this.value.replace(/\s+/g, &amp;#039;&amp;#039;).substring(0, 16);
    });
    // Беззвучный запрет вставки
    [&amp;#039;paste&amp;#039;, &amp;#039;drop&amp;#039;].forEach(e =&amp;gt; {
        passwordInputField.addEventListener(e, (ev) =&amp;gt; ev.preventDefault());
    });
}

// Проверка силы пароля
function checkPasswordStrength(password) {
    const rules = {
        len: password.length &amp;gt;= 8,
        upper: /[A-Z]/.test(password),
        number: /[0-9]/.test(password),
        symbol: /[@$!%*?&amp;amp;#]/.test(password)
    };

    updateRuleVisual(&amp;#039;rule_len&amp;#039;, rules.len, &amp;quot;Не менее 8 символов&amp;quot;);
    updateRuleVisual(&amp;#039;rule_upper&amp;#039;, rules.upper, &amp;quot;Минимум одна заглавная буква (A-Z)&amp;quot;);
    updateRuleVisual(&amp;#039;rule_number&amp;#039;, rules.number, &amp;quot;Минимум одна цифра (0-9)&amp;quot;);
    updateRuleVisual(&amp;#039;rule_symbol&amp;#039;, rules.symbol, &amp;quot;Минимум один спецсимвол (@, #, $, !)&amp;quot;);

    let score = Object.values(rules).filter(Boolean).length;
    const progress = document.getElementById(&amp;#039;pass_progress&amp;#039;);
    const status = document.getElementById(&amp;#039;pass_status&amp;#039;);
    
    if (progress) {
        progress.className = &amp;quot;progress-bar &amp;quot;;
        if (score &amp;lt;= 1) {
            progress.style.width = &amp;quot;25%&amp;quot;; progress.classList.add(&amp;quot;bg-danger&amp;quot;);
            if (status) status.innerText = &amp;quot;Сложность: слишком слабый&amp;quot;; isPasswordValid = false;
        } else if (score === 2) {
            progress.style.width = &amp;quot;50%&amp;quot;; progress.classList.add(&amp;quot;bg-warning&amp;quot;);
            if (status) status.innerText = &amp;quot;Сложность: средний&amp;quot;; isPasswordValid = false;
        } else if (score === 3) {
            progress.style.width = &amp;quot;75%&amp;quot;; progress.classList.add(&amp;quot;bg-info&amp;quot;);
            if (status) status.innerText = &amp;quot;Сложность: хороший&amp;quot;; isPasswordValid = false;
        } else if (score === 4) {
            progress.style.width = &amp;quot;100%&amp;quot;; progress.classList.add(&amp;quot;bg-success&amp;quot;);
            if (status) status.innerText = &amp;quot;Сложность: отличный (безопасный)&amp;quot;; isPasswordValid = true;
        }
    }
    validatePasswordMatch();
}

function updateRuleVisual(elementId, isValid, text) {
    const el = document.getElementById(elementId);
    if (el) {
        el.innerText = (isValid ? &amp;quot;✅ &amp;quot; : &amp;quot;❌ &amp;quot;) + text;
        el.className = isValid ? &amp;quot;text-success fw-bold&amp;quot; : &amp;quot;text-danger&amp;quot;;
    }
}

function validatePasswordMatch() {
    const passInput = document.getElementById(&amp;#039;password&amp;#039;);
    const confirmInput = document.getElementById(&amp;#039;password_confirm&amp;#039;);
    const matchStatus = document.getElementById(&amp;#039;match_status&amp;#039;);

    if (!passInput || !confirmInput || !matchStatus) return;

    const pass = passInput.value;
    const confirm = confirmInput.value;

    if (!confirm) { matchStatus.innerText = &amp;quot;&amp;quot;; isPasswordMatching = false; return; }

    if (pass === confirm) {
        matchStatus.innerText = &amp;quot;✅ Пароли совпадают&amp;quot;;
        matchStatus.className = &amp;quot;small text-success fw-bold&amp;quot;;
        isPasswordMatching = true;
    } else {
        matchStatus.innerText = &amp;quot;❌ Пароли не совпадают&amp;quot;;
        matchStatus.className = &amp;quot;small text-danger&amp;quot;;
        isPasswordMatching = false;
    }
}

// Мониторинг лога бэкенда и управление Шагом 10
function startInstallationSimulation() {
    const progressBar = document.getElementById(&amp;#039;install_progress&amp;#039;);
    const statusText = document.getElementById(&amp;#039;install_status&amp;#039;);
    const timerText = document.getElementById(&amp;#039;install_timer&amp;#039;);
    let elapsedSeconds = 0;

    // Счётчик времени выполнения операции
    const durationTimer = setInterval(() =&amp;gt; {
        elapsedSeconds++;
        if (timerText) timerText.innerText = elapsedSeconds + &amp;#039; сек.&amp;#039;;
    }, 1000);

    // Ежесекундный AJAX-опрос системного журнала установки
    const logWatcher = setInterval(() =&amp;gt; {
        fetch(&amp;#039;api/get_log.php&amp;#039;)
        .then(res =&amp;gt; res.json())
        .then(data =&amp;gt; {
            if (data &amp;amp;&amp;amp; data.success) {
                // Обновляем визуальный прогресс-бар
                if (progressBar) {
                    progressBar.style.width = data.progress + &amp;#039;%&amp;#039;;
                    progressBar.innerText = data.progress + &amp;#039;%&amp;#039;;
                }
                // Обновляем текущий статус над шкалой
                if (statusText) statusText.innerText = data.status;

                // ВЫВОД ПОЛНОЙ ИСТОРИИ ЛОГА В ИНТЕРАКТИВНУЮ ВЕБ-КОНСОЛЬ:
                const consoleZone = document.getElementById(&amp;#039;console-output-lines&amp;#039;);
                const consoleWrapper = document.getElementById(&amp;#039;installer-console&amp;#039;);
                
                if (consoleZone &amp;amp;&amp;amp; data.console &amp;amp;&amp;amp; data.console.length &amp;gt; 0) {
                    // Объединяем полученные строки через перенос строки
                    consoleZone.innerHTML = data.console.join(&amp;#039;&amp;lt;br&amp;gt;&amp;#039;);
                    
                    // Безопасная автоматическая прокрутка терминала вниз
                    if (consoleWrapper) {
                        consoleWrapper.scrollTop = consoleWrapper.scrollHeight;
                    }
                }

                // Переход с Шага 10 на Финальный Шаг 11 при достижении 90% (С ЗАДЕРЖКОЙ ДЛЯ ИНСПЕКЦИИ)
                if (data.progress &amp;gt;= 90) {
                    // 1. Мгновенно останавливаем опрос логов, чтобы зафиксировать финальный текст на экране
                    clearInterval(logWatcher);
                    clearInterval(durationTimer);
                    
                    // Устанавливаем прогресс-бар на ровные 100% для красоты финала
                    const progressBar = document.getElementById(&amp;#039;install_progress_bar&amp;#039;);
                    if (progressBar) {
                        progressBar.style.width = &amp;#039;100%&amp;#039;;
                        progressBar.setAttribute(&amp;#039;aria-valuenow&amp;#039;, 100);
                        progressBar.innerText = &amp;#039;100%&amp;#039;;
                    }

                    console.log(&amp;quot;Установка завершена. Запуск 5-секундной паузы для чтения логов перед ребутом...&amp;quot;);

                    // 2. Включаем задержку на 5000 мс (5 секунд) перед переключением экранов
                    setTimeout(function() {
                        document.getElementById(&amp;#039;step-10&amp;#039;).classList.remove(&amp;#039;active&amp;#039;);
                        currentStep = 11;
                        document.getElementById(&amp;#039;step-11&amp;#039;).classList.add(&amp;#039;active&amp;#039;);
                        
                        // Запускаем финальный обратный отсчет самой перезагрузки
                        startRebootCountdown();
                    }, 5000); // 5000 миллисекунд = 5 секунд
                }

            }
        })
        .catch(err =&amp;gt; {
            console.log(&amp;quot;Внутренняя заминка опроса лога: &amp;quot;, err);
        });
    }, 1500);
}



// Вспомогательная функция вывода ошибок на экран (Привязка к контейнеру .buttons)
function showInlineError(message) {
    let errorZone = document.getElementById(&amp;#039;error-message-zone&amp;#039;);
    if (!errorZone) {
        errorZone = document.createElement(&amp;#039;div&amp;#039;);
        errorZone.id = &amp;#039;error-message-zone&amp;#039;;
        errorZone.className = &amp;#039;alert alert-danger my-2 text-center&amp;#039;;
        
        const buttonsContainer = document.querySelector(&amp;#039;.buttons&amp;#039;);
        const prevBtn = document.getElementById(&amp;#039;btn-prev&amp;#039;);
        if (buttonsContainer &amp;amp;&amp;amp; prevBtn) {
            buttonsContainer.insertBefore(errorZone, prevBtn);
        } else {
            const card = document.querySelector(&amp;#039;.wizard-card&amp;#039;) || document.body;
            card.appendChild(errorZone);
        }
    }
    errorZone.innerText = message;
    errorZone.style.display = &amp;#039;block&amp;#039;;
}

function loadSystemDisks() {
    const disksList = document.getElementById(&amp;#039;disks_list&amp;#039;);
    if (!disksList) return;
    disksList.innerHTML = &amp;#039;&amp;lt;div class=&amp;quot;spinner-border spinner-border-sm text-primary&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; Опрашиваю дисковую подсистему...&amp;#039;;
    
    fetch(&amp;#039;api/get_disks.php&amp;#039;)
    .then(response =&amp;gt; response.json())
    .then(data =&amp;gt; {
        if (data &amp;amp;&amp;amp; data.success &amp;amp;&amp;amp; data.disks.length &amp;gt; 0) {
            disksList.innerHTML = &amp;#039;&amp;#039;;
            data.disks.forEach(disk =&amp;gt; {
                const diskDiv = document.createElement(&amp;#039;div&amp;#039;);
                diskDiv.className = &amp;#039;form-check mb-2&amp;#039;;
                // Обновленная верстка: выводим имя, объем и МОДЕЛЬ накопителя
                diskDiv.innerHTML = `
                    &amp;lt;input class=&amp;quot;form-check-input disk-checkbox&amp;quot; type=&amp;quot;checkbox&amp;quot; value=&amp;quot;${disk.name}&amp;quot; id=&amp;quot;disk_${disk.name}&amp;quot;&amp;gt;
                    &amp;lt;label class=&amp;quot;form-check-label&amp;quot; for=&amp;quot;disk_${disk.name}&amp;quot;&amp;gt;
                        💾 &amp;lt;strong class=&amp;quot;text-dark&amp;quot;&amp;gt;/dev/${disk.name}&amp;lt;/strong&amp;gt; — 
                        Размер: &amp;lt;span class=&amp;quot;badge bg-secondary&amp;quot;&amp;gt;${disk.size}&amp;lt;/span&amp;gt; — 
                        Модель: &amp;lt;span class=&amp;quot;fw-bold text-primary&amp;quot;&amp;gt;${disk.model}&amp;lt;/span&amp;gt;
                    &amp;lt;/label&amp;gt;
                `;
                disksList.appendChild(diskDiv);
            });
        } else {
            disksList.innerHTML = &amp;#039;&amp;lt;div class=&amp;quot;text-danger&amp;quot;&amp;gt;❌ Накопители для установки не найдены!&amp;lt;/div&amp;gt;&amp;#039;;
        }
    })
    .catch(error =&amp;gt; {
        disksList.innerHTML = &amp;#039;&amp;lt;div class=&amp;quot;text-danger&amp;quot;&amp;gt;❌ Ошибка бэкенда API при опросе дисков!&amp;lt;/div&amp;gt;&amp;#039;;
    });
}


// Логика переключения режимов разметки дисков
document.addEventListener(&amp;#039;change&amp;#039;, function(e) {
    if (e.target &amp;amp;&amp;amp; e.target.name === &amp;#039;disk_mode&amp;#039;) {
        const zone = document.getElementById(&amp;#039;disks_selection_zone&amp;#039;);
        if (zone) zone.style.display = (e.target.value === &amp;#039;raid1&amp;#039;) ? &amp;#039;block&amp;#039; : &amp;#039;none&amp;#039;;
    }
});

document.addEventListener(&amp;#039;click&amp;#039;, function(e) {
    if (e.target &amp;amp;&amp;amp; e.target.classList.contains(&amp;#039;disk-checkbox&amp;#039;)) {
        toggleNextButton();
    }
});

// Защита от возврата кнопкой Back браузера
history.pushState(null, null, location.href);
window.addEventListener(&amp;#039;popstate&amp;#039;, function () {
    history.pushState(null, null, location.href);
    showInlineError(&amp;#039;Для навигации используйте кнопки мастера установки.&amp;#039;);
});
&amp;lt;/script&amp;gt;


&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;=== 2fa.php ===
&amp;lt;?php
// 1. Полностью отключаем дисковое кэширование библиотеки QR
define(&amp;#039;QR_CACHEABLE&amp;#039;, false); 

ob_start();

// Жестко привязываем абсолютный путь к qrlib.php через __DIR__
$lib_path = __DIR__ . &amp;#039;/qrlib.php&amp;#039;;

if (!file_exists($lib_path)) {
    ob_end_clean();
    header(&amp;#039;HTTP/1.1 500 Internal Server Error&amp;#039;);
    header(&amp;#039;Content-Type: application/json&amp;#039;);
    echo json_encode([&amp;#039;error&amp;#039; =&amp;gt; &amp;#039;Файл qrlib.php не найден в каталоге api/&amp;#039;]);
    exit;
}

// Подключаем библиотеку
include_once $lib_path;

// 2. ПРИНИМАЕМ ПАРАМЕТРЫ ИЗ ФОРМЫ (Если пусто — ставим заводские значения)
$company = isset($_GET[&amp;#039;hostname&amp;#039;]) &amp;amp;&amp;amp; !empty($_GET[&amp;#039;hostname&amp;#039;]) ? trim($_GET[&amp;#039;hostname&amp;#039;]) : &amp;quot;Arch-Server&amp;quot;;
$user    = isset($_GET[&amp;#039;username&amp;#039;]) &amp;amp;&amp;amp; !empty($_GET[&amp;#039;username&amp;#039;]) ? trim($_GET[&amp;#039;username&amp;#039;]) : &amp;quot;eva&amp;quot;;
$secret  = &amp;#039;SECRETKEY1234567&amp;#039;; // Ваш мастер-ключ

// Формируем ссылку по международному стандарту TOTP с динамическими данными
$otpauth_url = &amp;quot;otpauth://totp/&amp;quot; . rawurlencode($company) . &amp;quot;:&amp;quot; . rawurlencode($user) . &amp;quot;?secret=&amp;quot; . $secret . &amp;quot;&amp;amp;issuer=&amp;quot; . rawurlencode($company);

// Стираем любые предупреждения или случайные пробелы до этого момента
if (ob_get_length()) ob_end_clean();

// Отдаем чистый заголовок картинки
header(&amp;#039;Content-Type: image/png&amp;#039;);
header(&amp;#039;Cache-Control: no-store, no-cache, must-revalidate, max-age=0&amp;#039;);
header(&amp;#039;Pragma: no-cache&amp;#039;);

// 3. ГЕНЕРИРУЕМ QR-КОД НАПРЯМУЮ В ПАМЯТЬ (БЕЗ КЭША НА ДИСКЕ)
// Пятый параметр (размер пикселя) = 5, шестой параметр (размер рамки) = 2, седьмой (кэш) = false
QRcode::png($otpauth_url, false, QR_ECLEVEL_L, 5, 2, false);
exit;
&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;
=== cancel_install.php ===
&amp;lt;?php
// Скрипт принудительной очистки при возврате назад (api/cancel_install.php)
header(&amp;#039;Content-Type: application/json&amp;#039;);
ini_set(&amp;#039;display_errors&amp;#039;, 0);

$config_file = __DIR__ . &amp;#039;/install_config.txt&amp;#039;;
$log_file = &amp;#039;/tmp/install.log&amp;#039;;

// 1. Физически удаляем файл конфигурации, если он успел записаться
if (file_exists($config_file)) {
    unlink($config_file);
}

// 2. Стираем лог, чтобы get_log.php обнулился
if (file_exists($log_file)) {
    unlink($log_file);
}

// 3. Мягко завершаем фоновые процессы, если они были инициализированы
exec(&amp;#039;sudo killall -9 disk_prepare.sh system_install.sh rsync tar 2&amp;gt;/dev/null&amp;#039;);

// 4. Размонтируем диски, если они остались заблокированы в системе
exec(&amp;#039;sudo umount -R /mnt 2&amp;gt;/dev/null&amp;#039;);

echo json_encode([&amp;#039;success&amp;#039; =&amp;gt; true, &amp;#039;message&amp;#039; =&amp;gt; &amp;#039;Стенд успешно очищен при возврате назад&amp;#039;]);
exit;
&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;
=== chroot_configure.sh ===
#!/bin/bash
# Итоговый эталонный скрипт настройки под UEFI (api/chroot_configure.sh)

# Импортируем переданные переменные из временного файла конфигурации
if [ -f /etc/installer_env.conf ]; then
    source /etc/installer_env.conf
fi

# 1. Сетевое имя хоста
if [ -z &amp;quot;$SYS_HOSTNAME&amp;quot; ]; then SYS_HOSTNAME=&amp;quot;arch-server-btrfs&amp;quot;; fi
echo &amp;quot;$SYS_HOSTNAME&amp;quot; &amp;gt; /etc/hostname

cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/hosts
127.0.0.1   localhost
::1         localhost
127.1.1.1   $SYS_HOSTNAME.localdomain $SYS_HOSTNAME
EOF

# 2. Часовой пояс
/usr/bin/ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
/usr/bin/hwclock --systohc

# =====================================================================
# 3. Настройка учетной записи суперпользователя root (ЗАЩИЩЕННАЯ)
# =====================================================================
if [ -z &amp;quot;$SYS_PASS&amp;quot; ]; then SYS_PASS=&amp;quot;12345678&amp;quot;; fi

# Используем стандартный потоковый passwd, который никогда не роняет скрипт
echo -e &amp;quot;$SYS_PASS\n$SYS_PASS&amp;quot; | /usr/bin/passwd root &amp;gt;/dev/null 2&amp;gt;&amp;amp;1

# =====================================================================
# 4. Пользователь и права администратора (ЗАЩИЩЕННАЯ)
# =====================================================================
if [ -z &amp;quot;$SYS_USER&amp;quot; ]; then SYS_USER=&amp;quot;eva&amp;quot;; fi
if ! id &amp;quot;$SYS_USER&amp;quot; &amp;amp;&amp;gt;/dev/null; then
    /usr/bin/useradd -m -G wheel,storage,power,http -s /bin/bash &amp;quot;$SYS_USER&amp;quot;
fi

# Назначаем пароль пользователю через надежный механизм
echo -e &amp;quot;$SYS_PASS\n$SYS_PASS&amp;quot; | /usr/bin/passwd &amp;quot;$SYS_USER&amp;quot; &amp;gt;/dev/null 2&amp;gt;&amp;amp;1

echo &amp;quot;%wheel ALL=(ALL:ALL) NOPASSWD: ALL&amp;quot; &amp;gt; /etc/sudoers.d/10_wheel
chmod 440 /etc/sudoers.d/10_wheel
&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;
=== disk_prepare.sh ===
#!/bin/bash
# Финальный эталонный скрипт разметки UEFI (api/disk_prepare.sh)
cd &amp;quot;$(dirname &amp;quot;$0&amp;quot;)&amp;quot;
CONFIG_FILE=&amp;quot;install_config.txt&amp;quot;
LOG_FILE=&amp;quot;/tmp/install.log&amp;quot;

# Безопасная функция записи, обходящая конфликты прав http/root
log_msg() {
    echo &amp;quot;$1&amp;quot; | /usr/bin/tee -a &amp;quot;$LOG_FILE&amp;quot; &amp;gt; /dev/null
    echo &amp;quot;$1&amp;quot;
}

# =====================================================================
# 1. Принудительное удаление логов и сброс монтирований (Авто-очистка буфера)
# =====================================================================

# полностью освобождая виртуальный dev-буфер для нового прогона
sudo /usr/bin/umount -l /mnt/dev/pts 2&amp;gt;/dev/null
sudo /usr/bin/umount -l /mnt/dev 2&amp;gt;/dev/null
sudo /usr/bin/umount -l /mnt/proc 2&amp;gt;/dev/null
sudo /usr/bin/umount -l /mnt/sys 2&amp;gt;/dev/null
sudo /usr/bin/umount -l /mnt/run 2&amp;gt;/dev/null

# чтобы mkfs.vfat никогда не спотыкался о занятые дескрипторы
sudo /usr/bin/umount -R /mnt/boot/efi 2&amp;gt;/dev/null

# предотвращая аппаратную блокировку &amp;quot;Device or resource busy&amp;quot;
sudo /usr/bin/umount -R /mnt 2&amp;gt;/dev/null
sudo /usr/bin/umount -R /tmp/recovery_pool 2&amp;gt;/dev/null

# полностью освобождая диски sdb и sdc от фоновой блокировки ядра
sudo /usr/bin/btrfs device scan --forget 2&amp;gt;/dev/null

# Если файл лога существовал, мгновенно стираем его, обходя любые конфликты прав
sudo /usr/bin/rm -f &amp;quot;$LOG_FILE&amp;quot;

# Создаем абсолютно новый, девственно чистый файл лога
echo &amp;quot;[PROGRESS] 0&amp;quot; &amp;gt; &amp;quot;$LOG_FILE&amp;quot;

# Сразу даем ему права 666, чтобы в него могли дописывать строки и http, и root (через sudo)
/usr/bin/chmod 666 &amp;quot;$LOG_FILE&amp;quot;

# Пишем первый синий маркер старта
echo &amp;quot;[INFO] Инициализация разметки дисковых массивов Btrfs...&amp;quot; &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot;
# =====================================================================


if [ ! -f &amp;quot;$CONFIG_FILE&amp;quot; ]; then
    log_msg &amp;quot;[ERROR] Конфигурация install_config.txt не найдена!&amp;quot;
    exit 1
fi

# =====================================================================
# 2. Чтение конфигурации с ЖЕСТКОЙ зачисткой от символов \r (Windows)
# =====================================================================
set -a
# Команда tr -d &amp;#039;\r&amp;#039; полностью вычищает скрытые переносы строк Windows
source &amp;lt;(tr -d &amp;#039;\r&amp;#039; &amp;lt; &amp;quot;$CONFIG_FILE&amp;quot;)
set +a

# 3. Безопасное уничтожение файла конфигурации на диске
# Сохраняем бэкап конфига для system_install.sh перед удалением оригинала
cp &amp;quot;$CONFIG_FILE&amp;quot; &amp;quot;install_config.txt.bak&amp;quot; 2&amp;gt;/dev/null
/usr/bin/shred -u &amp;quot;$CONFIG_FILE&amp;quot;
log_msg &amp;quot;[INFO] Конфигурация импортирована, install_config.txt безвозвратно уничтожен.&amp;quot;

# =====================================================================
# 4. Сбор дисков из памяти
# =====================================================================
log_msg &amp;quot;[PROGRESS] 10&amp;quot;
if [ -z &amp;quot;$SELECTED_DISKS&amp;quot; ]; then
    SELECTED_DISKS=&amp;quot;sdb sdc&amp;quot;
fi
IFS=&amp;#039; &amp;#039; read -r -a DISKS_ARRAY &amp;lt;&amp;lt;&amp;lt; &amp;quot;$SELECTED_DISKS&amp;quot;

# =====================================================================
# НОВОЕ: Динамический сброс таблиц разделов ядра для выбранных дисков
# =====================================================================
# Этот цикл заставит ядро Linux принудительно перечитать структуру именно
# тех накопителей, которые выбрал пользователь, полностью исключая &amp;quot;Device or resource busy&amp;quot;
for raw_disk in &amp;quot;${DISKS_ARRAY[@]}&amp;quot;; do
    disk=$(echo &amp;quot;$raw_disk&amp;quot; | tr -d &amp;#039;\r&amp;#039;)
    sudo /usr/bin/blockdev --rereadpt &amp;quot;/dev/$disk&amp;quot; 2&amp;gt;/dev/null
done

# =====================================================================
# 5. Принудительная зачистка (Wipe Out) сигнатур прошлых ФС через sudo
# =====================================================================
log_msg &amp;quot;[INFO] Очистка старых таблиц разделов и сигнатур...&amp;quot;
for disk in &amp;quot;${DISKS_ARRAY[@]}&amp;quot;; do
    sudo /usr/bin/wipefs -a -f &amp;quot;/dev/$disk&amp;quot; | /usr/bin/tee -a &amp;quot;$LOG_FILE&amp;quot; &amp;gt; /dev/null 2&amp;gt;&amp;amp;1
done

log_msg &amp;quot;[PROGRESS] 20&amp;quot;
log_msg &amp;quot;[INFO] Создание новой разметки GPT и UEFI-разделов через fdisk...&amp;quot;

# =====================================================================
# 6. Автоматическая нарезка таблиц GPT через fdisk (Чистый синтаксис)
# =====================================================================
log_msg &amp;quot;[PROGRESS] 30&amp;quot;
for raw_disk in &amp;quot;${DISKS_ARRAY[@]}&amp;quot;; do
    # Намертво вычищаем фантомные переносы строк из имени каждого диска
    disk=$(echo &amp;quot;$raw_disk&amp;quot; | tr -d &amp;#039;\r&amp;#039;)
    
    sudo /usr/bin/fdisk &amp;quot;/dev/$disk&amp;quot; &amp;lt;&amp;lt;EOF &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot; 2&amp;gt;&amp;amp;1
g
n
1

+512M
t
1
n
2


w
EOF
done

# ИСПРАВЛЕНО: Явное извлечение и очистка имени первого диска для форматирования EFI
CLEAN_FIRST_DISK=$(echo &amp;quot;${DISKS_ARRAY[0]}&amp;quot; | tr -d &amp;#039;\r&amp;#039;)

# Форматируем созданный первый раздел в FAT32 (UEFI) через стабильный mkfs.vfat
log_msg &amp;quot;[INFO] Форматируем созданный первый раздел в FAT32 (UEFI) ...&amp;quot;
sudo /usr/bin/mkfs.vfat -F 32 &amp;quot;/dev/${CLEAN_FIRST_DISK}1&amp;quot; &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot; 2&amp;gt;&amp;amp;1

# =====================================================================
# 7. Форматирование ВТОРЫХ РАЗДЕЛОВ в пул Btrfs RAID-1 (БЕЗОПАСНО)
# =====================================================================
log_msg &amp;quot;[PROGRESS] 40&amp;quot;
# Используем разделы (sdb2, sdc2), а не диски целиком (sdb, sdc)
TARGET_PARTITIONS=$(printf &amp;quot; /dev/%s2&amp;quot; &amp;quot;${DISKS_ARRAY[@]}&amp;quot;)

if [ &amp;quot;$DISK_MODE&amp;quot; == &amp;quot;raid1&amp;quot; ]; then
    sudo /usr/bin/mkfs.btrfs -f -d raid1 -m raid1 $TARGET_PARTITIONS | /usr/bin/tee -a &amp;quot;$LOG_FILE&amp;quot; &amp;gt; /dev/null 2&amp;gt;&amp;amp;1
else
    sudo /usr/bin/mkfs.btrfs -f $TARGET_PARTITIONS | /usr/bin/tee -a &amp;quot;$LOG_FILE&amp;quot; &amp;gt; /dev/null 2&amp;gt;&amp;amp;1
fi

# 8. Передача эстафеты следующему этапу
log_msg &amp;quot;[INFO] Дисковая структура готова. Переход к клонированию системы...&amp;quot;
echo &amp;quot;[PROGRESS] 50&amp;quot; | /usr/bin/tee -a &amp;quot;$LOG_FILE&amp;quot; &amp;gt; /dev/null

# =====================================================================
# 🔍 ИНСПЕКЦИЯ ЭТАПА РАЗМЕТКИ И ФОРМАТИРОВАНИЯ (ФИЗИЧЕСКИЙ КОНТРОЛЬ)
# =====================================================================
log_msg &amp;quot;[DIAGNOSTIC] === СТАРТ ФИЗИЧЕСКОЙ ПРОВЕРКИ ТАБЛИЦЫ РАЗДЕЛОВ ===&amp;quot;

# 1. Выводим реальный статус физических разделов sdb и sdc из ядра Linux
sudo /usr/bin/lsblk -o NAME,FSTYPE,SIZE,UUID /dev/sdb &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot; 2&amp;gt;&amp;amp;1
sudo /usr/bin/lsblk -o NAME,FSTYPE,SIZE,UUID /dev/sdc &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot; 2&amp;gt;&amp;amp;1

# 2. Временно монтируем чистый корень sdb2 наружу для проверки структуры
sudo /usr/bin/mkdir -p /tmp/diag_btrfs
sudo /usr/bin/mount /dev/sdb2 /tmp/diag_btrfs 2&amp;gt;/dev/null

log_msg &amp;quot;[DIAGNOSTIC] Проверка созданных подтомов Btrfs на реальном диске sdb2:&amp;quot;
sudo /usr/bin/btrfs subvolume list /tmp/diag_btrfs &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot; 2&amp;gt;&amp;amp;1

sudo /usr/bin/umount /tmp/diag_btrfs 2&amp;gt;/dev/null
sudo /usr/bin/rmdir /tmp/diag_btrfs

log_msg &amp;quot;[DIAGNOSTIC] === КОНЕЦ ФИЗИЧЕСКОЙ ПРОВЕРКИ РАЗМЕТКИ ===&amp;quot;
# =====================================================================


sudo -E /srv/http/installer/api/system_install.sh

&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;
=== get_disks.php ===
&amp;lt;?php
// Автоматический опрос дисков с выводом модели устройства (api/get_disks.php)
header(&amp;#039;Content-Type: application/json&amp;#039;);
ini_set(&amp;#039;display_errors&amp;#039;, 0);

// 1. Автоматически определяем имя установочной флешки
$usb_drive = &amp;#039;&amp;#039;;
$boot_mount = shell_exec(&amp;quot;findmnt -n -o SOURCE /run/archiso/bootmnt 2&amp;gt;/dev/null&amp;quot;);
if (empty($boot_mount)) {
    $boot_mount = shell_exec(&amp;quot;df / | tail -n 1 | awk &amp;#039;{print $1}&amp;#039;&amp;quot;);
}
if (!empty($boot_mount)) {
    $usb_drive = preg_replace(&amp;#039;/[0-9]+/&amp;#039;, &amp;#039;&amp;#039;, basename(trim($boot_mount)));
}

// 2. Автоматически определяем диск текущей запущенной ОС (Ubuntu / Донор)
$current_os_drive = &amp;#039;&amp;#039;;
$root_mount = shell_exec(&amp;quot;findmnt -n -o SOURCE / 2&amp;gt;/dev/null&amp;quot;);
if (!empty($root_mount)) {
    $current_os_drive = preg_replace(&amp;#039;/[0-9]+/&amp;#039;, &amp;#039;&amp;#039;, basename(trim($root_mount)));
}

// 3. Получаем список физических дисков
$sys_blocks = glob(&amp;#039;/sys/block/sd*&amp;#039;);
if (empty($sys_blocks)) {
    $sys_blocks = glob(&amp;#039;/sys/block/nvme*&amp;#039;);
}

$disks = [];

// [Этот блок находится внутри api/get_disks.php]
foreach ($sys_blocks as $block) {
    $disk_name = basename($block);
    
    // СТРОГИЙ ФИЛЬТР: Скрываем ТОЛЬКО и ИСКЛЮЧИТЕЛЬНО установочную флешку
    // Все остальные диски (даже со старыми Linux/Windows) обязаны отображаться!
    if ($disk_name === $usb_drive) {
        continue; 
    }
    
    // Пропускаем виртуальные loop-устройства и CD-ROM
    if (strpos($disk_name, &amp;#039;loop&amp;#039;) === 0 || strpos($disk_name, &amp;#039;sr&amp;#039;) === 0) {
        continue;
    }

    // Читаем размер диска
    $size_sectors = (float)trim(file_get_contents(&amp;quot;$block/size&amp;quot;));
    $size_gb = round(($size_sectors * 512) / (1024 * 1024 * 1024), 1);
    
    // Игнорируем слишком маленькие накопители (меньше 2 ГБ)
    if ($size_gb &amp;lt; 2) {
        continue;
    }

    // Читаем модель диска напрямую из sysfs ядра Linux
    $model_path = &amp;quot;$block/device/model&amp;quot;;
    $disk_model = &amp;quot;Unknown Storage Device&amp;quot;;
    
    if (file_exists($model_path)) {
        $disk_model = trim(file_get_contents($model_path));
        $disk_model = preg_replace(&amp;#039;/\s+/&amp;#039;, &amp;#039; &amp;#039;, $disk_model);
    }

    $disks[] = [
        &amp;#039;name&amp;#039;  =&amp;gt; $disk_name,
        &amp;#039;size&amp;#039;  =&amp;gt; $size_gb . &amp;#039; GB&amp;#039;,
        &amp;#039;model&amp;#039; =&amp;gt; $disk_model
    ];
}


echo json_encode([
    &amp;#039;success&amp;#039; =&amp;gt; true,
    &amp;#039;disks&amp;#039; =&amp;gt; $disks
], JSON_UNESCAPED_UNICODE);
exit;
&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;
=== get_log.php ===
&amp;lt;?php
// Полный сбор истории логов (api/get_log.php)
header(&amp;#039;Content-Type: application/json&amp;#039;);
ini_set(&amp;#039;display_errors&amp;#039;, 0);

$log_path = &amp;#039;/tmp/install.log&amp;#039;;

if (!file_exists($log_path)) {
    echo json_encode([
        &amp;#039;success&amp;#039; =&amp;gt; true,
        &amp;#039;progress&amp;#039; =&amp;gt; 0,
        &amp;#039;status&amp;#039; =&amp;gt; &amp;#039;Запуск фонового процесса разметки дисков...&amp;#039;,
        &amp;#039;console&amp;#039; =&amp;gt; [&amp;#039;Ожидание инициализации логирования...&amp;#039;]
    ], JSON_UNESCAPED_UNICODE);
    exit;
}

$lines = file($log_path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$progress = 0;
$status = &amp;#039;Развертывание системы...&amp;#039;;
$clean_lines = [];

// Парсим лог целиком
foreach ($lines as $line) {
    if (strpos($line, &amp;#039;[PROGRESS]&amp;#039;) === 0) {
        $progress = (int)trim(str_replace(&amp;#039;[PROGRESS]&amp;#039;, &amp;#039;&amp;#039;, $line));
    } elseif (strpos($line, &amp;#039;[INFO]&amp;#039;) === 0) {
        $status = trim(str_replace(&amp;#039;[INFO]&amp;#039;, &amp;#039;&amp;#039;, $line));
        $clean_lines[] = &amp;quot;🔹 &amp;quot; . $status;
    } elseif (strpos($line, &amp;#039;[ERROR]&amp;#039;) === 0) {
        $status = trim(str_replace(&amp;#039;[ERROR]&amp;#039;, &amp;#039;&amp;#039;, $line));
        $clean_lines[] = &amp;quot;❌ &amp;quot; . $status;
    } else {
        // Все остальные строки (вывод rsync, mkfs, wipefs) добавляем как есть
        $clean_lines[] = $line;
    }
}

echo json_encode([
    &amp;#039;success&amp;#039; =&amp;gt; true,
    &amp;#039;progress&amp;#039; =&amp;gt; $progress,
    &amp;#039;status&amp;#039; =&amp;gt; $status,
    &amp;#039;console&amp;#039; =&amp;gt; $clean_lines // Отдаем ВСЮ историю строк лога
], JSON_UNESCAPED_UNICODE);
exit;
&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;
=== start_install.php ===
&amp;lt;?php
header(&amp;#039;Content-Type: application/json&amp;#039;);
ini_set(&amp;#039;display_errors&amp;#039;, 0);

$inputData = file_get_contents(&amp;#039;php://input&amp;#039;);
$data = json_decode($inputData, true);

if (!$data) {
    echo json_encode([&amp;#039;success&amp;#039; =&amp;gt; false, &amp;#039;message&amp;#039; =&amp;gt; &amp;#039;Пустой запрос&amp;#039;]);
    exit;
}

// Жесткая очистка строк
$clean_hostname = preg_replace(&amp;#039;/[^a-zA-Z0-9_\-\.]/&amp;#039;, &amp;#039;&amp;#039;, substr(trim($data[&amp;#039;hostname&amp;#039;]), 0, 16));
$clean_username = preg_replace(&amp;#039;/[^a-zA-Z0-9_\-\.]/&amp;#039;, &amp;#039;&amp;#039;, substr(trim($data[&amp;#039;username&amp;#039;]), 0, 16));
$clean_password = preg_replace(&amp;#039;/[^a-zA-Z0-9_\-\.]/&amp;#039;, &amp;#039;&amp;#039;, substr(trim($data[&amp;#039;password&amp;#039;]), 0, 16));

// Пишем конфиг с нуля (всегда новые данные)
// [Этот блок находится внутри api/start_install.php]
// Формируем чистые строки конфигурации для Bash без скрытых символов \r
$configContent = &amp;quot;SYS_LANG=&amp;quot; . trim($data[&amp;#039;lang&amp;#039;]) . &amp;quot;\n&amp;quot;;
$configContent .= &amp;quot;SYS_LAYOUT=&amp;quot; . trim($data[&amp;#039;layout&amp;#039;]) . &amp;quot;\n&amp;quot;;
$configContent .= &amp;quot;SYS_TIMEZONE=&amp;quot; . trim($data[&amp;#039;timezone&amp;#039;]) . &amp;quot;\n&amp;quot;;
$configContent .= &amp;quot;SYS_HOSTNAME=&amp;quot; . $clean_hostname . &amp;quot;\n&amp;quot;;
$configContent .= &amp;quot;DISK_MODE=&amp;quot; . trim($data[&amp;#039;disk_mode&amp;#039;]) . &amp;quot;\n&amp;quot;;

// Жестко очищаем массив дисков от любых пробелов и переносов перед склейкой
$clean_disks = array_map(&amp;#039;trim&amp;#039;, $data[&amp;#039;disks&amp;#039;]);
$configContent .= &amp;quot;SELECTED_DISKS=&amp;quot; . implode(&amp;#039; &amp;#039;, $clean_disks) . &amp;quot;\n&amp;quot;;

$configContent .= &amp;quot;SYS_USER=&amp;quot; . $clean_username . &amp;quot;\n&amp;quot;;
$configContent .= &amp;quot;SYS_PASS=&amp;quot; . $clean_password . &amp;quot;\n&amp;quot;;


$target_file = __DIR__ . &amp;#039;/install_config.txt&amp;#039;;

// Перезаписываем файл актуальными данными
if (file_put_contents($target_file, $configContent) !== false) {
    chmod($target_file, 0600);
    
    // Передаем управление ОДНОМУ управляющему скрипту
	exec(&amp;#039;sudo /srv/http/installer/api/disk_prepare.sh &amp;gt;&amp;gt; /tmp/install.log 2&amp;gt;&amp;amp;1 &amp;amp;&amp;#039;);
    
    echo json_encode([&amp;#039;success&amp;#039; =&amp;gt; true, &amp;#039;message&amp;#039; =&amp;gt; &amp;#039;Установка успешно запущена.&amp;#039;]);
} else {
    echo json_encode([&amp;#039;success&amp;#039; =&amp;gt; false, &amp;#039;message&amp;#039; =&amp;gt; &amp;#039;Ошибка записи конфигурации&amp;#039;]);
}
exit;

&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;
=== system_install.sh ===

#!/bin/bash
# Скрипт точного клонирования и создания Recovery (api/system_install.sh)
cd &amp;quot;$(dirname &amp;quot;$0&amp;quot;)&amp;quot;
LOG_FILE=&amp;quot;/tmp/install.log&amp;quot;

log_msg() {
    echo &amp;quot;$1&amp;quot; | /usr/bin/tee -a &amp;quot;$LOG_FILE&amp;quot; &amp;gt; /dev/null
    echo &amp;quot;$1&amp;quot;
}

# =====================================================================
# 1. Чтение конфигурации и ЖЕСТКОЕ МОНТИРОВАНИЕ ФИЗИЧЕСКИХ ДИСКОВ
# =====================================================================
# Импортируем переменные напрямую (на случай, если PHP потерял их в памяти)
if [ -f &amp;quot;install_config.txt.bak&amp;quot; ]; then
    source &amp;lt;(tr -d &amp;#039;\r&amp;#039; &amp;lt; &amp;quot;install_config.txt.bak&amp;quot;)
elif [ -f &amp;quot;$CONFIG_FILE&amp;quot; ]; then
    source &amp;lt;(tr -d &amp;#039;\r&amp;#039; &amp;lt; &amp;quot;$CONFIG_FILE&amp;quot;)
fi

if [ -z &amp;quot;$SELECTED_DISKS&amp;quot; ]; then
    SELECTED_DISKS=&amp;quot;sdb sdc&amp;quot;
fi
IFS=&amp;#039; &amp;#039; read -r -a DISKS_ARRAY &amp;lt;&amp;lt;&amp;lt; &amp;quot;$SELECTED_DISKS&amp;quot;

# Вычисляем чистые имена разделов без скрытых символов Windows
FIRST_BTRFS_DISK=&amp;quot;/dev/$(echo &amp;quot;${DISKS_ARRAY[0]}&amp;quot; | tr -d &amp;#039;\r&amp;#039;)2&amp;quot;
FIRST_EFI_DISK=&amp;quot;/dev/$(echo &amp;quot;${DISKS_ARRAY[0]}&amp;quot; | tr -d &amp;#039;\r&amp;#039;)1&amp;quot;

# Принудительно монтируем реальные физические разделы жестких дисков через sudo
# чтобы перепримонтировать диски строго по Btrfs-полочкам
sudo /usr/bin/umount -R /mnt 2&amp;gt;/dev/null

    log_msg &amp;quot;[INFO] Монтирование физического раздела $FIRST_BTRFS_DISK в /mnt...&amp;quot;
    sudo /usr/bin/mount -o noatime,compress=zstd,subvol=@ &amp;quot;$FIRST_BTRFS_DISK&amp;quot; /mnt &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot; 2&amp;gt;&amp;amp;1
    
    sudo /usr/bin/mkdir -p /mnt/home
    sudo /usr/bin/mount -o noatime,compress=zstd,subvol=@home &amp;quot;$FIRST_BTRFS_DISK&amp;quot; /mnt/home &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot; 2&amp;gt;&amp;amp;1
    
    sudo /usr/bin/mkdir -p /mnt/boot/efi
    sudo /usr/bin/mount &amp;quot;$FIRST_EFI_DISK&amp;quot; /mnt/boot/efi &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot; 2&amp;gt;&amp;amp;1



log_msg &amp;quot;[PROGRESS] 55&amp;quot;
log_msg &amp;quot;[INFO] Клонирование системных директорий сервера-донора через rsync...&amp;quot;

log_msg &amp;quot;[DIAGNOSTIC] === КАНТРОЛЬ МОНТИРОВАНИЯ ПЕРЕД ЗАПИСЬЮ ===&amp;quot;
# Проверяем, что /mnt — это реальный диск, а не RAM-папка веб-сервера
sudo /usr/bin/df -h /mnt &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot; 2&amp;gt;&amp;amp;1
sudo /usr/bin/df -h /mnt/boot/efi &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot; 2&amp;gt;&amp;amp;1


# 2. ЗАПУСК КЛОНИРОВАНИЯ (RSYNC): Пишем через tee -a, обходя ошибки прав
/usr/bin/rsync -aAXv --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/tmp/install.log} / /mnt/ | /usr/bin/tee -a &amp;quot;$LOG_FILE&amp;quot; &amp;gt; /dev/null

if [ ${PIPESTATUS[0]} -ne 0 ]; then
    log_msg &amp;quot;[ERROR] Ошибка клонирования системных директорий!&amp;quot;
    exit 1
fi

# =====================================================================
# 🔍 ИНСПЕКЦИЯ РЕЗУЛЬТАТОВ ЗАПИСИ (ФИЗИЧЕСКИЙ КОНТРОЛЬ КЛОНИРОВАНИЯ И GRUB)
# =====================================================================
log_msg &amp;quot;[DIAGNOSTIC] === СТАРТ ПРОВЕРКИ ФИЗИЧЕСКОЙ ЗАПИСИ ДАННЫХ ===&amp;quot;

log_msg &amp;quot;[DIAGNOSTIC] Физический объем данных, записанных rsync на Btrfs-зеркало:&amp;quot;
sudo /usr/bin/du -sh /mnt/ --exclude=/mnt/boot/efi &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot; 2&amp;gt;&amp;amp;1

log_msg &amp;quot;[DIAGNOSTIC] Проверка структуры папок корня новой ОС на диске:&amp;quot;
sudo /usr/bin/ls -la /mnt/ &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot; 2&amp;gt;&amp;amp;1

log_msg &amp;quot;[DIAGNOSTIC] Физический объем загрузчика, записанного на EFI FAT32:&amp;quot;
sudo /usr/bin/du -sh /mnt/boot/efi/ &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot; 2&amp;gt;&amp;amp;1

log_msg &amp;quot;[DIAGNOSTIC] Контроль наличия монолитных файлов GRUB и модулей (.mod) на FAT32:&amp;quot;
sudo /usr/bin/ls -R /mnt/boot/efi/ &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot; 2&amp;gt;&amp;amp;1

log_msg &amp;quot;[DIAGNOSTIC] Содержимое сгенерированного файла fstab новой системы:&amp;quot;
sudo /usr/bin/cat /mnt/etc/fstab &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot; 2&amp;gt;&amp;amp;1

log_msg &amp;quot;[DIAGNOSTIC] === КОНЕЦ ТОТАЛЬНОЙ ИНСПЕКЦИИ ЗАПИСИ ===&amp;quot;
# =====================================================================


# 3. ЗАПИСЬ &amp;quot;ЗОЛОТОГО ОБРАЗА&amp;quot; В ОБЛАСТЬ RECOVERY DISK
log_msg &amp;quot;[PROGRESS] 70&amp;quot;
log_msg &amp;quot;[INFO] Создание эталонного резервного архива в области Recovery Disk...&amp;quot;

/usr/bin/mkdir -p /tmp/recovery_pool
/usr/bin/mount -o noatime,compress=zstd,subvol=@security &amp;quot;$FIRST_DISK&amp;quot; /tmp/recovery_pool | /usr/bin/tee -a &amp;quot;$LOG_FILE&amp;quot; &amp;gt; /dev/null 2&amp;gt;&amp;amp;1

# Архивируем чистую систему напрямую в подтом @security через tee
/usr/bin/tar -cpzf /tmp/recovery_pool/golden_image.tar.gz -C /mnt/ . | /usr/bin/tee -a &amp;quot;$LOG_FILE&amp;quot; &amp;gt; /dev/null 2&amp;gt;&amp;amp;1

if [ ${PIPESTATUS[0]} -ne 0 ]; then
    log_msg &amp;quot;[ERROR] Не удалось собрать архив восстановления в @security!&amp;quot;
    /usr/bin/umount /tmp/recovery_pool
    exit 1
fi

/usr/bin/umount /tmp/recovery_pool
/usr/bin/rmdir /tmp/recovery_pool
log_msg &amp;quot;[INFO] Золотой образ успешно сохранен на встроенном Recovery Disk.&amp;quot;

log_msg &amp;quot;[PROGRESS] 80&amp;quot;
log_msg &amp;quot;[INFO] Generation новой таблицы разделов fstab...&amp;quot;

# 4. Генерируем чистый fstab для новых Btrfs-разделов
# ИСПРАВЛЕНО: Генерируем fstab напрямую в файл новой системы, перезаписывая старый мусор донора
sudo /usr/bin/genfstab -U /mnt | sudo /usr/bin/tee /mnt/etc/fstab &amp;gt; /dev/null

log_msg &amp;quot;[PROGRESS] 85&amp;quot;
log_msg &amp;quot;[INFO] Базовая система и Recovery-раздел успешно подготовлены.&amp;quot;

# =====================================================================
# 5. ХОСТ-СБОРКА GRUB UEFI И СТАНДАРТНЫЙ CHROOT НАСТРОЕК (БЕЗОШИБОЧНЫЙ)
# =====================================================================
log_msg &amp;quot;[PROGRESS] 85&amp;quot;
log_msg &amp;quot;[INFO] Сборка и установка монолитного загрузчика GRUB UEFI...&amp;quot;

# 1. Принудительно заставляем хост собрать GRUB для целевой системы, указывая ключ --boot-directory=/mnt/boot
# Хост имеет 100% доступ к дискам, поэтому grub-install выполнится БЕЗ ошибок!
sudo /usr/bin/grub-install --target=x86_64-efi --efi-directory=/mnt/boot/efi --boot-directory=/mnt/boot --bootloader-id=GRUB --modules=&amp;quot;btrfs part_gpt normal fat ext2 configfile echo&amp;quot; --removable --no-nvram --recheck &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot; 2&amp;gt;&amp;amp;1

# 2. АВТОНОМНЫЙ ФИКС: Копируем модули GRUB напрямую на FAT32 раздел
sudo /usr/bin/mkdir -p /mnt/boot/efi/EFI/BOOT/x86_64-efi
sudo /usr/bin/cp -r /usr/lib/grub/x86_64-efi/* /mnt/boot/efi/EFI/BOOT/x86_64-efi/

# 3. не сканировал диски хоста и гарантированно НЕ ронял PHP-FPM в 502 ошибку!
export GRUB_DISABLE_OS_PROBER=true
# Генерируем конфигурацию GRUB прямо из контекста хоста внутрь рейда
sudo /usr/bin/grub-mkconfig -o /mnt/boot/grub/grub.cfg &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot; 2&amp;gt;&amp;amp;1
sudo /usr/bin/grub-mkconfig -o /mnt/boot/efi/EFI/BOOT/grub.cfg &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot; 2&amp;gt;&amp;amp;1

log_msg &amp;quot;[INFO] Запуск chroot для настройки сетевого имени и учетных записей...&amp;quot;

# 4. Монтируем только базовые папки для chroot настроек пользователей
sudo /usr/bin/mount --bind /dev /mnt/dev
sudo /usr/bin/mount --bind /proc /mnt/proc
sudo /usr/bin/mount --bind /sys /mnt/sys

# 5. Передаем переменные во временный файл конфигурации окружения
cat &amp;lt;&amp;lt;EOF | sudo /usr/bin/tee /mnt/etc/installer_env.conf &amp;gt; /dev/null
SYS_HOSTNAME=$(echo &amp;quot;$SYS_HOSTNAME&amp;quot; | tr -d &amp;#039;\r&amp;#039;)
SYS_USER=$(echo &amp;quot;$SYS_USER&amp;quot; | tr -d &amp;#039;\r&amp;#039;)
SYS_PASS=$(echo &amp;quot;$SYS_PASS&amp;quot; | tr -d &amp;#039;\r&amp;#039;)
SYS_TIMEZONE=$(echo &amp;quot;$SYS_TIMEZONE&amp;quot; | tr -d &amp;#039;\r&amp;#039;)
EOF

# 6. Фильтрует скрытые символы \r и запускает chroot_configure.sh ТЕПЕРЬ ТОЛЬКО ДЛЯ ПАРОЛЕЙ И ЮЗЕРОВ
sudo /usr/bin/tr -d &amp;#039;\r&amp;#039; &amp;lt; /srv/http/installer/api/chroot_configure.sh | sudo /usr/bin/tee /mnt/root/chroot_exec.sh &amp;gt; /dev/null
sudo /usr/bin/chmod +x /mnt/root/chroot_exec.sh
sudo /usr/bin/chroot /mnt /root/chroot_exec.sh &amp;gt;&amp;gt; &amp;quot;$LOG_FILE&amp;quot; 2&amp;gt;&amp;amp;1

# 7. Ленивое безопасное размонтирование и зачистка
sudo /usr/bin/rm -f /mnt/root/chroot_exec.sh
sudo /usr/bin/rm -f /mnt/etc/installer_env.conf
sudo /usr/bin/umount -l /mnt/dev 2&amp;gt;/dev/null
sudo /usr/bin/umount -l /mnt/proc 2&amp;gt;/dev/null
sudo /usr/bin/umount -l /mnt/sys 2&amp;gt;/dev/null

log_msg &amp;quot;[PROGRESS] 90&amp;quot;
log_msg &amp;quot;[INFO] Финальная настройка успешно завершена. Сервер готов к работе!&amp;quot;
&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;===validate_input.php===

&amp;lt;?php
// validate_input.php
// Функция полной очистки строк
function sanitize_and_validate($data, $max_length = 16) {
    // 1. Запрещаем пробелы, табы, переносы строк
    $data = preg_replace(&amp;#039;/\s+/&amp;#039;, &amp;#039;&amp;#039;, $data);
    
    // 2. Обрезаем строго до 16 символов (п. 7)
    $data = mb_substr($data, 0, $max_length, &amp;#039;UTF-8&amp;#039;);
    
    // 3. Вырезаем любые HTML-теги, скрипты, конструкции типа &amp;lt;?php (п. 4, 5, 6, 8)
    $data = strip_tags($data);
    
    // 4. Оставляем ТОЛЬКО буквы (латиница), цифры и знаки подчеркивания/дефиса/точки
    // Это полностью уничтожает любые попытки SQL-инъекций (типа OR 1=1) и XSS-атак
    $data = preg_replace(&amp;#039;/[^a-zA-Z0-9_\-\.]/&amp;#039;, &amp;#039;&amp;#039;, $data);
    
    return $data;
}

// Черные списки запрещенных слов (п. 4.1 и 4.2)
$forbidden_usernames = [&amp;#039;admin&amp;#039;, &amp;#039;administrator&amp;#039;, &amp;#039;test&amp;#039;, &amp;#039;root&amp;#039;, &amp;#039;user&amp;#039;, &amp;#039;guest&amp;#039;];
$forbidden_passwords = [&amp;#039;qwerty&amp;#039;, &amp;#039;abcdef&amp;#039;, &amp;#039;123456&amp;#039;, &amp;#039;iamnumber1&amp;#039;, &amp;#039;password&amp;#039;];

// Пример проверки пришедших POST-данных (встраивается в api/start_install.php)
if ($_SERVER[&amp;#039;REQUEST_METHOD&amp;#039;] === &amp;#039;POST&amp;#039;) {
    $input_user = isset($_POST[&amp;#039;username&amp;#039;]) ? $_POST[&amp;#039;username&amp;#039;] : &amp;#039;&amp;#039;;
    $input_pass = isset($_POST[&amp;#039;password&amp;#039;]) ? $_POST[&amp;#039;password&amp;#039;] : &amp;#039;&amp;#039;;

    // Чистим данные
    $clean_user = sanitize_and_validate($input_user, 16);
    $clean_pass = sanitize_and_validate($input_pass, 16);

    // Проверяем по массивам запретов (вхождение подстроки)
    foreach ($forbidden_usernames as $bad_user) {
        if (strpos(strtolower($clean_user), $bad_user) !== false || empty($clean_user)) {
            echo json_encode([&amp;#039;error&amp;#039; =&amp;gt; &amp;#039;Недопустимое имя пользователя!&amp;#039;]);
            exit;
        }
    }

    foreach ($forbidden_passwords as $bad_pass) {
        if (strpos(strtolower($clean_pass), $bad_pass) !== false || empty($clean_pass)) {
            echo json_encode([&amp;#039;error&amp;#039; =&amp;gt; &amp;#039;Слишком простой или запрещенный пароль!&amp;#039;]);
            exit;
        }
    }
}&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 18 May 2026 08:28:09 +0000</pubDate>
        </item>
        <item>
            <title>tmp_ollama</title>
            <link>https://wwoss.ru/doku.php?id=tmp_ollama&amp;rev=1785135545</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;редактор_кода_через_qwen_llama&quot;&gt;Редактор кода через Qwen/Llama&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_ollama&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;Структура папок&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code html4strict&quot;&gt;📂 ollama/
├── 📂 auploads/                  
├── 📄 edit.php
└── 📄 index.php &lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043a\u043e\u0434\u0430 \u0447\u0435\u0440\u0435\u0437 Qwen\/Llama&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440_\u043a\u043e\u0434\u0430_\u0447\u0435\u0440\u0435\u0437_qwen_llama&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-219&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;файл_indexphp&quot;&gt;Файл index.php&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_ollama&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;index.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;/**
 * ============================================================================= 
 *  index.php — ОСНОВНЫЙ СКРИПТ ДЛЯ РЕДАКТИРОВАНИЯ ФАЙЛОВ И РАБОТЫ С AI 
 * ============================================================================= 
 *
 *  УЧЕБНОЕ НАЗНАЧЕНИЕ: 
 *  Показывает, как можно загружать файлы на сервер, отображать их содержимое,
 *  и использовать искусственный интеллект для генерации изменений в коде.
 *
 *  КАК ИСПОЛЬЗОВАТЬ: 
 *  1. Откройте в браузере: http://localhost:8800/index.php
 *  2. Загрузите файлы, которые вы хотите редактировать
 *  3. Введите задачу для AI и нажмите &amp;quot;Сгенерировать изменения&amp;quot;
 *  4. Просмотрите предложенные изменения и примите их, если они корректны
 *
 *  ВНИМАНИЕ: этот файл только для обучения. На боевом сервере его нужно защищать.
 * ============================================================================= 
 */&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// Определение директории для загрузки файлов&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$uploads_dir&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; __DIR__ &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/uploads&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;a href=&quot;http://www.php.net/is_dir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;is_dir&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$uploads_dir&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$uploads_dir&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu8&quot;&gt;0777&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co4&quot;&gt;/**
 * Получение списка файлов для редактирования
 */&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$files&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array_filter&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array_filter&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/scandir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;scandir&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$uploads_dir&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$f&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;use&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$uploads_dir&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;a href=&quot;http://www.php.net/is_file&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;is_file&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$uploads_dir&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$f&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;a href=&quot;http://www.php.net/in_array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;in_array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/pathinfo&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;pathinfo&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$f&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; PATHINFO_EXTENSION&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;js&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;php&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;json&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;html&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;css&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co4&quot;&gt;/**
 * Обработка загрузки файлов
 */&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_SERVER&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;REQUEST_METHOD&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;POST&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;a href=&quot;http://www.php.net/isset&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;isset&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_FILES&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;files&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_FILES&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;files&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_FILES&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;files&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; UPLOAD_ERR_OK&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;a href=&quot;http://www.php.net/move_uploaded_file&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;move_uploaded_file&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_FILES&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;files&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;tmp_name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$uploads_dir&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/basename&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;basename&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/header&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;header&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;Location: ./index.php&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&amp;quot;ru&amp;quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;
    &amp;lt;title&amp;gt;Llama Safe Editor&amp;lt;/title&amp;gt;
    &amp;lt;style&amp;gt;
        body { font-family: sans-serif; margin: 30px; background: #f4f6f9; color: #333; }
        .container { display: flex; gap: 20px; }
        .panel { background: white; padding: 20px; border-radius: 8px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); flex: 1; }
        textarea { width: 100%; height: 100px; box-sizing: border-box; padding: 10px; margin-bottom: 10px; }
        button { background: #007bff; color: white; border: none; padding: 10px 15px; border-radius: 4px; cursor: pointer; font-size: 16px; }
        button:hover { background: #0056b3; }
        .btn-success { background: #28a745; display: none; margin-top: 10px; }
        .btn-success:hover { background: #218838; }
        pre { background: #272822; color: #f8f8f2; padding: 15px; border-radius: 5px; overflow-x: auto; max-height: 250px; }
    &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;📂 Безопасный редактор кода через Qwen/Llama&amp;lt;/h1&amp;gt;
    &amp;lt;div class=&amp;quot;container&amp;quot;&amp;gt;
        &amp;lt;!-- Слева: файлы --&amp;gt;
        &amp;lt;div class=&amp;quot;panel&amp;quot; style=&amp;quot;max-width: 280px;&amp;quot;&amp;gt;
            &amp;lt;h3&amp;gt;1. Загрузка исходников&amp;lt;/h3&amp;gt;
            &amp;lt;form method=&amp;quot;post&amp;quot; enctype=&amp;quot;multipart/form-data&amp;quot;&amp;gt;
                &amp;lt;input type=&amp;quot;file&amp;quot; name=&amp;quot;files[]&amp;quot; multiple required&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;
                &amp;lt;button type=&amp;quot;submit&amp;quot;&amp;gt;Загрузить&amp;lt;/button&amp;gt;
            &amp;lt;/form&amp;gt;
            &amp;lt;h4&amp;gt;Файлы в проекте:&amp;lt;/h4&amp;gt;
            &amp;lt;ul&amp;gt;
                &lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$files&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$f&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;
                    &amp;lt;li&amp;gt;📄 &amp;lt;b&amp;gt;&lt;span class=&quot;sy1&quot;&gt;&amp;lt;?=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/htmlspecialchars&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;htmlspecialchars&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$f&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;lt;/b&amp;gt;&amp;lt;/li&amp;gt;
                &lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;endforeach&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$files&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&amp;lt;li&amp;gt;Нет файлов&amp;lt;/li&amp;gt;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;
            &amp;lt;/ul&amp;gt;
        &amp;lt;/div&amp;gt;
&amp;nbsp;
        &amp;lt;!-- Справа: работа с AI --&amp;gt;
        &amp;lt;div class=&amp;quot;panel&amp;quot;&amp;gt;
            &amp;lt;h3&amp;gt;2. Что нужно сделать?&amp;lt;/h3&amp;gt;
            &amp;lt;textarea id=&amp;quot;prompt&amp;quot; placeholder=&amp;quot;Например: &#039;Добавь валидацию&#039;&amp;quot;&amp;gt;&amp;lt;/textarea&amp;gt;
            &amp;lt;button onclick=&amp;quot;askLlama()&amp;quot;&amp;gt;Сгенерировать изменения&amp;lt;/button&amp;gt;
&amp;nbsp;
            &amp;lt;div id=&amp;quot;status&amp;quot; style=&amp;quot;margin-top:10px; font-weight:bold;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;nbsp;
            &amp;lt;!-- Блок предпросмотра --&amp;gt;
            &amp;lt;div id=&amp;quot;preview-area&amp;quot; style=&amp;quot;display:none; margin-top:20px;&amp;quot;&amp;gt;
                &amp;lt;h3 style=&amp;quot;color: #007bff;&amp;quot;&amp;gt;👁️ Код от нейросети (Предпросмотр)&amp;lt;/h3&amp;gt;
                &amp;lt;div id=&amp;quot;ai-code-output&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
                &amp;lt;button id=&amp;quot;apply-btn&amp;quot; class=&amp;quot;btn-success&amp;quot; onclick=&amp;quot;applyChanges()&amp;quot;&amp;gt;Применить эти изменения в файлы&amp;lt;/button&amp;gt;
            &amp;lt;/div&amp;gt;
&amp;nbsp;
            &amp;lt;h3 style=&amp;quot;margin-top:30px;&amp;quot;&amp;gt;Текущий код на сервере:&amp;lt;/h3&amp;gt;
            &amp;lt;div&amp;gt;
                &lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$files&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$f&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$content&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/file_get_contents&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file_get_contents&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$uploads_dir&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$f&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;
                    &amp;lt;h5&amp;gt;&lt;span class=&quot;sy1&quot;&gt;&amp;lt;?=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/htmlspecialchars&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;htmlspecialchars&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$f&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;lt;/h5&amp;gt;
                    &amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;&lt;span class=&quot;sy1&quot;&gt;&amp;lt;?=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/htmlspecialchars&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;htmlspecialchars&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$content&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;
                &lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;endforeach&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;nbsp;
    &amp;lt;script&amp;gt;
        let lastAiResult = null;
&amp;nbsp;
        async function askLlama() {
            const prompt = document.getElementById(&#039;prompt&#039;).value;
            const status = document.getElementById(&#039;status&#039;);
            const previewArea = document.getElementById(&#039;preview-area&#039;);
            const aiOutput = document.getElementById(&#039;ai-code-output&#039;);
            const applyBtn = document.getElementById(&#039;apply-btn&#039;);
&amp;nbsp;
            if(!prompt) return alert(&#039;Введите задачу!&#039;);
&amp;nbsp;
            status.style.color = &#039;#28a745&#039;;
            status.innerText = &#039;⏳ Модель думает над кодом... Подождите.&#039;;
            previewArea.style.display = &#039;none&#039;;
            applyBtn.style.display = &#039;none&#039;;
&amp;nbsp;
            try {
                const res = await fetch(&#039;./edit.php&#039;, {
                    method: &#039;POST&#039;,
                    headers: { &#039;Content-Type&#039;: &#039;application/json&#039; },
                    body: JSON.stringify({ action: &#039;ask&#039;, prompt })
                });
&amp;nbsp;
                // Получаем чистый текст ответа бэкенда
                const rawText = await res.text();
&amp;nbsp;
                // Пытаемся распарсить его вручную
                let data;
                try {
                    data = JSON.parse(rawText);
                } catch(jsonErr) {
                    status.style.color = &#039;#dc3545&#039;;
                    status.innerHTML = &#039;❌ Ошибка PHP на сервере:&amp;lt;br&amp;gt;&amp;lt;div style=&amp;quot;text-align:left; background:#fff; padding:10px; border:1px solid #ccc; font-family:monospace; margin-top:10px; color:#000;&amp;quot;&amp;gt;&#039; + rawText + &#039;&amp;lt;/div&amp;gt;&#039;;
                    return;
                }
&amp;nbsp;
                if(data.success &amp;amp;&amp;amp; data.files.length &amp;gt; 0) {
                    status.innerText = &#039;✅ Код сгенерирован! Проверьте его ниже.&#039;;
                    lastAiResult = data.files;
&amp;nbsp;
                    aiOutput.innerHTML = &#039;&#039;;
                    data.files.forEach(f =&amp;gt; {
                        const div = document.createElement(&#039;div&#039;);
                        div.innerHTML = `&amp;lt;h4&amp;gt;Файл: ${f.name}&amp;lt;/h4&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;${f.content.replace(/&amp;amp;/g, &amp;quot;&amp;amp;amp;&amp;quot;).replace(/&amp;lt;/g, &amp;quot;&amp;amp;lt;&amp;quot;).replace(/&amp;gt;/g, &amp;quot;&amp;amp;gt;&amp;quot;)}&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;`;
                        aiOutput.appendChild(div);
                    });
&amp;nbsp;
                    previewArea.style.display = &#039;block&#039;;
                    applyBtn.style.display = &#039;block&#039;;
                } else {
                    status.style.color = &#039;#dc3545&#039;;
                    status.innerText = &#039;❌ Ошибка: &#039; + (data.error || &#039;Модель не выдала разметку файлов.&#039;);
                }
            } catch(e) {
                status.style.color = &#039;#dc3545&#039;;
                status.innerText = &#039;❌ Критическая ошибка сети.&#039;;
                console.error(e);
            }
        }
&amp;nbsp;
        async function applyChanges() {
            if(!lastAiResult) return;
            const status = document.getElementById(&#039;status&#039;);
&amp;nbsp;
            status.innerText = &#039;💾 Записываем файлы...&#039;;
&amp;nbsp;
            try {
                const res = await fetch(&#039;./edit.php&#039;, {
                    method: &#039;POST&#039;,
                    headers: { &#039;Content-Type&#039;: &#039;application/json&#039; },
                    body: JSON.stringify({ action: &#039;save&#039;, files: lastAiResult })
                });
                const data = await res.json();
                if(data.success) {
                    status.innerText = &#039;🎉 Файлы успешно обновлены!&#039;;
                    setTimeout(() =&amp;gt; location.reload(), 1000);
                } else {
                    alert(&#039;Ошибка сохранения: &#039; + data.error);
                }
            } catch(e) {
                alert(&#039;Ошибка при сохранении.&#039;);
            }
        }
    &amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0424\u0430\u0439\u043b index.php&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u0430\u0439\u043b_indexphp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;220-9509&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;файл_editphp&quot;&gt;Файл edit.php&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_ollama&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;edit.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;/**
 * ============================================================================= 
 *  edit.php — ОБРАБОТЧИК ЗАПРОСОВ ДЛЯ РЕДАКТИРОВАНИЯ ФАЙЛОВ И РАБОТЫ С AI 
 * ============================================================================= 
 *
 *  УЧЕБНОЕ НАЗНАЧЕНИЕ: 
 *  Обрабатывает запросы от index.php для генерации изменений в коде с помощью AI
 *  и сохранения обновленных файлов на сервер.
 *
 *  КАК РАБОТАЕТ:
 *  1. Принимает JSON-запросы с действием &#039;ask&#039; или &#039;save&#039;.
 *  2. Для действия &#039;ask&#039;:
 *     - Получает задачу для AI из запроса.
 *     - Собирает содержимое всех файлов в директории uploads.
 *     - Отправляет задачу и контекст файлов на сервер Ollama.
 *     - Парсит ответ от Ollama, разделяя его по маркерам [START_FILE].
 *     - Возвращает обновленные файлы клиенту.
 *  3. Для действия &#039;save&#039;:
 *     - Принимает массив файлов с содержимым из запроса.
 *     - Сохраняет обновленное содержимое каждого файла в директорию uploads.
 *
 *  ВНИМАНИЕ: этот файл только для обучения. На боевом сервере его нужно защищать.
 * ============================================================================= 
 */&lt;/span&gt;
&amp;nbsp;
&lt;a href=&quot;http://www.php.net/set_time_limit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;set_time_limit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;a href=&quot;http://www.php.net/ini_set&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;ini_set&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;display_errors&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;a href=&quot;http://www.php.net/error_reporting&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;error_reporting&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;E_ALL&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;a href=&quot;http://www.php.net/header&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;header&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;Content-Type: application/json&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;$uploads_dir&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; __DIR__ &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/uploads&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_decode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_decode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/file_get_contents&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file_get_contents&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;php://input&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$action&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/isset&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;isset&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; ? &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$action&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;ask&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$prompt&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/isset&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;isset&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;prompt&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; ? &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;prompt&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;a href=&quot;http://www.php.net/is_dir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;is_dir&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$uploads_dir&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Шаг 1: Папка uploads не найдена&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;re0&quot;&gt;$files&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array_filter&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array_filter&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/scandir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;scandir&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$uploads_dir&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$f&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;use&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$uploads_dir&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;a href=&quot;http://www.php.net/is_file&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;is_file&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$uploads_dir&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$f&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;re0&quot;&gt;$projectContext&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$files&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$f&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$projectContext&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== НАЧАЛО ФАЙЛА: &lt;span class=&quot;es4&quot;&gt;$f&lt;/span&gt; ===&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/file_get_contents&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file_get_contents&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$uploads_dir&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$f&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;=== КОНЕЦ ФАЙЛА: &lt;span class=&quot;es4&quot;&gt;$f&lt;/span&gt; ===&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;re0&quot;&gt;$systemPrompt&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ты веб-разработчик. Задача: &lt;span class=&quot;es4&quot;&gt;$prompt&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;Текущие файлы:&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es4&quot;&gt;$projectContext&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;Измени код и верни файлы ПОЛНОСТЬЮ. Строго используй теги:&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;[START_FILE: имя]&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;код&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;[END_FILE: имя]&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;re0&quot;&gt;$postData&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;
        &lt;span class=&quot;st_h&quot;&gt;&#039;model&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;qwen2.5-coder:14b&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st_h&quot;&gt;&#039;prompt&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$systemPrompt&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st_h&quot;&gt;&#039;stream&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st_h&quot;&gt;&#039;options&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;
            &lt;span class=&quot;st_h&quot;&gt;&#039;temperature&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;st_h&quot;&gt;&#039;num_ctx&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8192&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;re0&quot;&gt;$fp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;&lt;a href=&quot;http://www.php.net/fsockopen&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;fsockopen&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;127.0.0.1&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;11434&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$errno&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$errstr&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$fp&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Не удалось подключиться к Ollama на 127.0.0.1:11434. Ошибка: &lt;span class=&quot;es4&quot;&gt;$errstr&lt;/span&gt; (&lt;span class=&quot;es4&quot;&gt;$errno&lt;/span&gt;)&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Запрашиваем через HTTP/1.0, чтобы исключить chunked transfer encoding на бэкенде&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$out&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;POST /api/generate HTTP/1.0&lt;span class=&quot;es1&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$out&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Host: 127.0.0.1&lt;span class=&quot;es1&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$out&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Content-Type: application/json&lt;span class=&quot;es1&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$out&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Content-Length: &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/strlen&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;strlen&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$postData&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$out&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Connection: close&lt;span class=&quot;es1&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$out&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$postData&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;a href=&quot;http://www.php.net/fwrite&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;fwrite&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$fp&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$out&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;re0&quot;&gt;$response&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;a href=&quot;http://www.php.net/feof&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;feof&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$fp&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$response&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/fgets&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;fgets&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$fp&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4096&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/fclose&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;fclose&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$fp&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Гарантированно отрезаем заголовки по двойному переносу строки&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/explode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;explode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$response&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$body&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/isset&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;isset&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; ? &lt;a href=&quot;http://www.php.net/trim&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;trim&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$body&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;// Пробуем отрезать по одиночным \n на случай Unix-формата заголовков сервера&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/explode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;explode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$response&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$body&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/isset&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;isset&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; ? &lt;a href=&quot;http://www.php.net/trim&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;trim&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Разбор JSON&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$responseData&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_decode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_decode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$body&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$aiText&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/isset&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;isset&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$responseData&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;response&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; ? &lt;span class=&quot;re0&quot;&gt;$responseData&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;response&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$aiText&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;
            &lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
            &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Шаг 4: Не удалось распарсить JSON от Ollama.&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
            &lt;span class=&quot;st_h&quot;&gt;&#039;debug_raw_body&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;a href=&quot;http://www.php.net/substr&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;substr&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$body&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Шаг 5: Парсинг маркеров [START_FILE]&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$parsedFiles&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/preg_match_all&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;preg_match_all&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/\[START_FILE:\s*([^\]\s]+)\]([\s\S]*?)\[END_FILE:\s*\1\]/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$aiText&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$matches&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; PREG_SET_ORDER&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$matches&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$match&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$parsedFiles&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;
            &lt;span class=&quot;st_h&quot;&gt;&#039;name&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;a href=&quot;http://www.php.net/trim&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;trim&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$match&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;st_h&quot;&gt;&#039;content&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;a href=&quot;http://www.php.net/trim&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;trim&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$match&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$parsedFiles&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;
            &lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
            &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Шаг 5: Модель проигнорировала маркеры [START_FILE] и выдала обычный текст.&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;st_h&quot;&gt;&#039;ai_raw_text&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;a href=&quot;http://www.php.net/substr&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;substr&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$aiText&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;files&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$parsedFiles&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$action&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;save&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$filesToSave&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/isset&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;isset&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;files&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; ? &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;files&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$filesToSave&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$f&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$fileName&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/basename&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;basename&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/trim&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;trim&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$f&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;a href=&quot;http://www.php.net/file_put_contents&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file_put_contents&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$uploads_dir&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$fileName&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$f&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;content&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Неверное действие&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0424\u0430\u0439\u043b edit.php&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u0430\u0439\u043b_editphp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;9510-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 27 Jul 2026 06:59:05 +0000</pubDate>
        </item>
        <item>
            <title>tmp_teh_zadanie</title>
            <link>https://wwoss.ru/doku.php?id=tmp_teh_zadanie&amp;rev=1784794467</link>
            <description>&lt;pre class=&quot;code&quot;&gt;/server/                # Портативное окружение Apache / PHP
/run.cmd                # Скрипт запуска локального сервера в 1 клик
/content/               # Корневой каталог контента книги
   └─ [book_name]/      # Папка конкретной книги (название транслитом/ID)
       ├─ book.json     # Общие метаданные книги
       ├─ toc.json      # Структура оглавления и порядок глав
       └─ chapters/     # Папка с контентом глав
           ├─ [chapter_id].txt   # Сырой Markdown-текст (1 абзац на файл/секцию)
           ├─ [chapter_id].json  # Метаданные конкретной главы
           ├─ [chapter_id].html  # Скомпилированный кэш для быстрого чтения
           └─ media/             # Картинки и файлы, привязанные к главе
              └─ [chapter_id]/   # Папка с картинками для конкретной главы
                 └─ image.png&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 1. мини cms по созданию и редактированию html страниц книги&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 1.1 ориентируемся на принцип работы и анализ кода dokuwiki&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 2. все файлы коды в разных файлах с понятными именами &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3. код в каждом блоке с подробным комментарием&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4. server/ ←- Портативное окружение (Apache / PHP)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 5. run.cmd ←- Скрипт запуска локального сервера в 1 клик&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 5.1 сесии с регистрацией и авторизацией с отключением регистрации (существует только 1 автор)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 5.2 используем &amp;lt;textarea&amp;gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 6. Первая видимая страница пользователя - оглавление&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 6.0.1. если страница есть - текст голубой /если страница не существует текст красный ( после создания &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; новой страницы/удаления/редактирования) этот файл .txt пересобирается&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 6.1. Главы в оглавлении генерируются автоматически и являются ссылками на страницы&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
(Запись во временный файл → Атомарная замена.)
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 6.9 отдельная папка-каталог с папками - книгами (по названию книги) для контента (страница и файлы)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 7. страницы имеют свои папки с контентом (картинки/файлы)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 8. страницы хранятся в txt файлах (1 страница - 1 отдельный файл)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 8.0.1 Количество слов на 1 странице рекомендованно равно среднее число в стандартной книге 250–300 слов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 8.1 метаданные формата JSON хранятся в отдельном файле .json и записываются через &amp;lt;input type=«text»&amp;gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; т.е. это (имя книги, имя страница, имя автора, времы создания/редактирования) и это выводится в браузере&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; , а в редакторе в отдельных окнах ввода (пишется в начале между собственными тегами в столбик)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 10. главная рабочая страница «редактор»&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 11. редактор создает/правит/удаляет страницу&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 12. редактор имеет поля ввода и кнопки&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 12. обязательные поля: &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 12.1 поле выбора книги для редактирования/написания новой/удаления&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 12.2 поле ввода номера главы индивидуальное / вводиться автоматически следующее от меньшего / либо автором  если оно свободное&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 12.3 поле редактирования текста Markdown работает в объеме 1 «1 логический подраздел / подглава» из общего текста (у нас только 1 автор - сам сибе плохо не сделает п. 5.1)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 12.3 движок-парсер пишем сами&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 12.4 блок кнопок внизу: предпросмотр/сохранить/отменить&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 12.9 панель с блоками кнопок вверху&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 13. блок кнопок: новая страница/открыть страницу/сохранить/удалить&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 13.1 блок кнопок: вырезать/копировать/вставить&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 13.2 блок кнопок: отменить/повтор&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 13.2.1 работает методом логирования действий в памяти JS-скрипта (создается при начале редактирования. храним 5 файлов лога, &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 13.2.2 автосохранение 1 файла-черновика на сервер каждую 3 мин. и при нажатии просмотр&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; постоянно создавая новый 3 и удаляя 1, после сохранения страницы логи удаляем)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 13.3 блок кнопок: найти (только поиск слова/части слова)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 13.4 блок кнопок: выбор шрифта/размер шрифта/размер&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 13.5 блок кнопок: шрифт наклонный/подчеркнутый/жирный/текст кода/зачёркнутый шрифт&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 13.6 блок кнопок: абзац (с красной строкою)/ список/ нумерованный список / разделитель&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 13.7 блок кнопок: заголовок (раскрывающийся 5 уровней)/ внутренняя ссылка/ внешняя ссылка&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 13.8 блок кнопок: добавление иллюстраций и файлов / смайлы / спец картинки&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 13.8.1 пишем скрипт-обработчик на PHP, который принимает файл из формы, проверяет его расширение/размер и складывает в content/book_name/chapter_id/&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 13.9 блок кнопок: вставка якоря/вставка тэга&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 14.0 блок кнопок: вставка сносок примечаний в низ станицы/ вставка блоков внимание&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 14.1 блок внимание: прямоугольник голубого/красного/зеленого цвета&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 14.4 блок кнопок вставки блока php/js/css кода&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 14.5 блок кнопок вставки шаблонов абзацев/текста&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 15.1 внизу 2 кнопки-списки вперед/назад с выбором установки ссылок на страница&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 16.0 Разделите логику: Сначала напишите PHP-ядро (создание папок книг, чтение/запись файлов, авторизация). Только потом переходите к интерфейсу редактора.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 17.0 Контроль объема (8.0.1): Добавьте внизу &amp;lt;textarea&amp;gt; простой JS-счетчик слов. Сделайте визуальный индикатор (зеленый цвет, если в пределах 250–300 слов, красный — если превышен лимит стандартной страницы) рекомендательным, а не блокирующим..&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 18.0 Генерация &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;: Не парсите Markdown на лету в PHP при каждом открытии страницы. Парсите его один раз в момент сохранения и кладите рядом готовый page.html для мгновенного отображения пользователю (чтения оглавления).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 23 Jul 2026 08:14:27 +0000</pubDate>
        </item>
        <item>
            <title>tmp_template</title>
            <link>https://wwoss.ru/doku.php?id=tmp_template&amp;rev=1785384529</link>
            <description>&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.ru/lib/exe/detail.php?id=tmp_template&amp;amp;media=2026-07-29_20-27-20_7886785.png&quot; class=&quot;media&quot; title=&quot;2026-07-29_20-27-20_7886785.png&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=2026-07-29_20-27-20_7886785.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp_template&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;index.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;!&lt;/span&gt;DOCTYPE html&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;html lang&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ru&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;head&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;meta charset&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;meta name&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;viewport&amp;quot;&lt;/span&gt; content&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;title&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Вики Структура&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;title&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;style&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            box&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;sizing&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; border&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;box&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        body &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            font&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;family&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; sans&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;serif&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            font&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;size&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 13px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            line&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;height&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu19&quot;&gt;1.5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            color&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#202122;
&lt;/span&gt;            background&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;color&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#f8f9fa;
&lt;/span&gt;            margin&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            padding&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 60px 20px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            min&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;width&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 320px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tabs&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;container &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            max&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;width&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 1100px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            margin&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; auto&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            display&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            justify&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;content&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;start&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            width&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%;&lt;/span&gt; 
            position&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; relative&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            bottom&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;1px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            z&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;index&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            flex&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;wrap&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; nowrap&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            background&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;color&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#f1f3f5;
&lt;/span&gt;            border&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 1px solid &lt;span class=&quot;co2&quot;&gt;#d2d2d2;
&lt;/span&gt;            margin&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;right&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;1px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            border&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;top&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;left&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;radius&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 6px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            border&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;top&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;right&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;radius&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 6px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            border&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;bottom&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;left&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;radius&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
            border&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;bottom&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;right&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;radius&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            padding&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 6px 14px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            font&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;size&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 12px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            color&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#0645ad;
&lt;/span&gt;            cursor&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; pointer&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            text&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;decoration&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            text&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;align&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; left&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
            white&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;space&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; nowrap&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            overflow&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; hidden&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            text&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;overflow&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; ellipsis&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            position&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; relative&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            min&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;width&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 30px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;hover &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            background&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;color&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#e8eaed;
&lt;/span&gt;        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;active &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            background&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;color&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#ffffff;
&lt;/span&gt;            color&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#202122;
&lt;/span&gt;            font&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;weight&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; bold&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            cursor&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            z&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;index&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            border&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;bottom&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 1px solid &lt;span class=&quot;co2&quot;&gt;#ffffff;
&lt;/span&gt;        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;coMULTI&quot;&gt;/* Крайние статичные кнопки */&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;summary &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            flex&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; auto&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
            text&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;align&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; center&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;content &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            flex&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; auto&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
            text&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;align&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; center&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            margin&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;right&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;coMULTI&quot;&gt;/* Вкладка Глава */&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;chapter &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            flex&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; auto&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;coMULTI&quot;&gt;/* Вкладка Страница */&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;page &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            flex&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; auto&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;coMULTI&quot;&gt;/* Элемент для иконки внутри таба (скрыт на десктопе) */&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;icon &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            display&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;coMULTI&quot;&gt;/* Декоративные ушки активной вкладки для десктопа */&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;active&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;before&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            content&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            position&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; absolute&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            left&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;6px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            bottom&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;1px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            width&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 6px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            height&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 6px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            background&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 
                radial&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;gradient&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;circle at top left&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; transparent 5px&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#d2d2d2 5px, #d2d2d2 6px, transparent 6px),
&lt;/span&gt;                radial&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;gradient&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;circle at top left&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; transparent 5px&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#ffffff 5px);
&lt;/span&gt;            z&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;index&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;active&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;after&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            content&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            position&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; absolute&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            right&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;6px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            bottom&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;1px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            width&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 6px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            height&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 6px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            background&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 
                radial&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;gradient&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;circle at top right&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; transparent 5px&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#d2d2d2 5px, #d2d2d2 6px, transparent 6px),
&lt;/span&gt;                radial&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;gradient&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;circle at top right&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; transparent 5px&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#ffffff 5px);
&lt;/span&gt;            z&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;index&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;summary&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;active&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;before&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; display&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;content&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;active&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;after&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; display&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;coMULTI&quot;&gt;/* ========================================================
           МОБИЛЬНАЯ ВЕРСИЯ (Экран меньше 550px)
           ======================================================== */&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;media &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;max&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;width&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 550px&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;coMULTI&quot;&gt;/* Прячем исходный текст */&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;summary &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;text&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;content &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;text &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                display&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;coMULTI&quot;&gt;/* Включаем отображение иконки */&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;summary &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;icon&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;content &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;icon &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                display&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; inline&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;block&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                font&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;size&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 11px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;coMULTI&quot;&gt;/* Размеры для кнопок-иконок */&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;summary&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;content &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                padding&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 6px &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                width&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 34px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                text&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;align&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; center&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;coMULTI&quot;&gt;/* --- Логика треугольников для ОГЛАВЛЕНИЯ --- */&lt;/span&gt;
            &lt;span class=&quot;coMULTI&quot;&gt;/* Неактивная вкладка */&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;summary &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;icon&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;before&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                content&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;◀&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                color&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#0645ad;
&lt;/span&gt;            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;coMULTI&quot;&gt;/* Активная вкладка */&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;summary&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;active &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;icon&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;before&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                content&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;▶&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                color&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#202122;
&lt;/span&gt;            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;coMULTI&quot;&gt;/* --- Логика треугольников для СОДЕРЖАНИЯ --- */&lt;/span&gt;
            &lt;span class=&quot;coMULTI&quot;&gt;/* Неактивная вкладка */&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;content &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;icon&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;before&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                content&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;▼&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                color&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#0645ad;
&lt;/span&gt;            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;coMULTI&quot;&gt;/* Активная вкладка */&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;content&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;active &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;icon&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;before&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                content&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;▲&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                color&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#202122;
&lt;/span&gt;            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;coMULTI&quot;&gt;/* Отключаем десктопные ушки на мобильных, чтобы не накладывались на иконки */&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;active&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;before&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;item&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;active&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;after&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                display&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; none &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;important&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;coMULTI&quot;&gt;/* Главная белая карточка (Тело контента) */&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;content&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;box &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            background&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;color&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#ffffff;
&lt;/span&gt;            border&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 1px solid &lt;span class=&quot;co2&quot;&gt;#d2d2d2;
&lt;/span&gt;            border&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;top&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;left&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;radius&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            border&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;top&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;right&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;radius&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            border&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;bottom&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;left&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;radius&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 4px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            border&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;bottom&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;right&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;radius&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 4px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            box&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;shadow&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 4px 12px rgba&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu19&quot;&gt;0.15&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            padding&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 24px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            max&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;width&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 1100px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            margin&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; auto&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            position&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; relative&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            min&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;height&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 250px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            z&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;index&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            width&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;content&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;panel &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; display&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;content&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;panel&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;content&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;panel&lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;active &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; display&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; block&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;page&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;title &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; font&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;size&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 24px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; font&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;weight&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; bold&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; margin&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 15px &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; color&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#202122; }
&lt;/span&gt;        &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;page&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;description &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; margin&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; color&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#202122; }
&lt;/span&gt;        &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;wiki&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;&lt;a href=&quot;http://www.php.net/list&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;list&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; margin&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 10px &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 20px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; padding&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;style&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;head&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;body&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;tabs-container&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;&amp;lt;!--&lt;/span&gt; Добавлен тег span с классом tab&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;icon для вывода стрелок &lt;span class=&quot;sy0&quot;&gt;--&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;tab-item tab-item--summary&amp;quot;&lt;/span&gt; data&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;summary&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;span &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;tab-text&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Оглавление&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;span&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;span &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;tab-icon&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;span&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;tab-item tab-item--chapter tab-item--active&amp;quot;&lt;/span&gt; data&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;chapter&amp;quot;&lt;/span&gt; title&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Глава 2.0 Жирный слон&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Глава &lt;span class=&quot;nu19&quot;&gt;2.0&lt;/span&gt; Жирный слон&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;tab-item tab-item--page&amp;quot;&lt;/span&gt; data&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;page&amp;quot;&lt;/span&gt; title&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Страница 2.1. Жизнь жирного слона&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Страница &lt;span class=&quot;nu19&quot;&gt;2.1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; Жизнь жирного слона&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;tab-item tab-item--content&amp;quot;&lt;/span&gt; data&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;content&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;span &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;tab-text&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Содержание&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;span&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;span &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;tab-icon&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;span&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;content-box&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;panel-summary&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;content-panel&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;h1 &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;page-title&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Оглавление книги&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;h1&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;p &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;page-description&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Полная структура всей книги&lt;span class=&quot;sy0&quot;&gt;:&amp;lt;/&lt;/span&gt;p&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;ul &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;wiki-list&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Глава &lt;span class=&quot;nu19&quot;&gt;1.0&lt;/span&gt; Начало пути&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;strong&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Глава &lt;span class=&quot;nu19&quot;&gt;2.0&lt;/span&gt; Жирный слон&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;strong&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;li&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Глава &lt;span class=&quot;nu19&quot;&gt;3.0&lt;/span&gt; Заключение&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;ul&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;panel-chapter&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;content-panel content-panel--active&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;h1 &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;page-title&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Содержание главы &lt;span class=&quot;nu19&quot;&gt;2.0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;h1&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;p &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;page-description&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Разделы&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; входящие в текущую главу&lt;span class=&quot;sy0&quot;&gt;:&amp;lt;/&lt;/span&gt;p&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;ul &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;wiki-list&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;strong&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Страница &lt;span class=&quot;nu19&quot;&gt;2.1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; Жизнь жирного слона&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;strong&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;li&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Страница &lt;span class=&quot;nu19&quot;&gt;2.2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; Среда обитания слонов&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;ul&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;panel-page&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;content-panel&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;h1 &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;page-title&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Эта страница ещё не существует&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;h1&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;p &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;page-description&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Вы перешли по ссылке на страницу&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; которая ещё не существует&lt;span class=&quot;sy0&quot;&gt;.&amp;lt;/&lt;/span&gt;p&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;panel-content&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;content-panel&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;h1 &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;page-title&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Содержание страницы &lt;span class=&quot;nu19&quot;&gt;2.1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;h1&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;p &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;page-description&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Внутреннее оглавление этой конкретной статьи&lt;span class=&quot;sy0&quot;&gt;:&amp;lt;/&lt;/span&gt;p&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;ul &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;wiki-list&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; Введение&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; Основные характеристики слона&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;li&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; Итоги&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;li&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;ul&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;const&lt;/span&gt; tabs &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;querySelectorAll&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;.tab-item&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;const&lt;/span&gt; panels &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;querySelectorAll&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;.content-panel&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        tabs&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;forEach&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tab &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            tab&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;addEventListener&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                tabs&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;forEach&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;t &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; t&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;classList&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;remove&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;tab-item--active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                tab&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;classList&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;add&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;tab-item--active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;kw2&quot;&gt;const&lt;/span&gt; targetId &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tab&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;getAttribute&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;data-target&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                panels&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;forEach&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;panel &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; panel&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;classList&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;remove&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;content-panel--active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;kw2&quot;&gt;const&lt;/span&gt; targetPanel &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;panel-&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; targetId&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;targetPanel&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    targetPanel&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;classList&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;add&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;content-panel--active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;body&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 30 Jul 2026 04:08:49 +0000</pubDate>
        </item>
        <item>
            <title>tmp</title>
            <link>https://wwoss.ru/doku.php?id=tmp&amp;rev=1779441335</link>
            <description>
&lt;p&gt;
🔍 Шаг 1. смотрим диски
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;lsblk sdb&lt;/pre&gt;

&lt;p&gt;
🔍 Шаг 2. вставить скрипт
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.ru/doku.php?do=export_code&amp;amp;id=tmp&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_sh_&quot;&gt;builder.sh &lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;ol&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;cat &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;MAIN_EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; builder&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;sh&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;set &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;e&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# 0. ГЛОБАЛЬНАЯ ТЕХНИЧЕСКАЯ КОНФИГУРАЦИЯ СЕРВЕРА И ССЫЛОК&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;TARGET_FLASH&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;/dev/sdb&amp;quot;&lt;/span&gt;        &lt;span class=&quot;co2&quot;&gt;# Физический диск флешки, размечаемый в Ubuntu&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;SERVER_NAME&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;arch-server&amp;quot;&lt;/span&gt;      &lt;span class=&quot;co2&quot;&gt;# Имя хоста (hostname) будущего ПК&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;ADMIN_NAME&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;eva&amp;quot;&lt;/span&gt;               &lt;span class=&quot;co2&quot;&gt;# Логин администратора с доступом к sudo&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;ADMIN_PASS&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;65421&amp;quot;&lt;/span&gt;             &lt;span class=&quot;co2&quot;&gt;# Пароль администратора&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;ROOT_PASS&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;rootpassword&amp;quot;&lt;/span&gt;       &lt;span class=&quot;co2&quot;&gt;# Пароль суперпользователя (root)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;OFFLINE_MODE&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;YES&amp;quot;&lt;/span&gt;             &lt;span class=&quot;co2&quot;&gt;# Измените на &amp;quot;NO&amp;quot;, если на целевом ПК есть интернет&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Базовый образ Arch Linux&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;URL_BOOTSTRAP&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://mirror.yandex.ru/archlinux/iso/latest/archlinux-bootstrap-x86_64.tar.zst&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Официальные репозитории и зеркала (используются для скачивания и прописываются на ПК)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;URL_YANDEX&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://mirror.yandex.ru/archlinux/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;repo/os/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;arch&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;URL_PKGS&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://archlinux.pkgs.org/archlinux/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;repo/os/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;arch&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;URL_RACKSPACE&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;http://mirror.rackspace.com/archlinux/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;repo/os/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;arch&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;URL_PKGBUILD&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://geo.mirror.pkgbuild.com/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;repo/os/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;arch&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 1: Верификация безопасности накопителей&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 1: Верификация безопасности накопителей ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;UBUNTU_ROOT_DISK&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;lsblk &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;no PKNAME $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;findmnt &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;nvo SOURCE &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;z &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$UBUNTU_ROOT_DISK&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; then&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;    UBUNTU_ROOT_DISK&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;lsblk &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;dno NAME&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;MOUNTPOINTS &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; grep &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;E &lt;span class=&quot;st_h&quot;&gt;&#039;/$&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; awk &lt;span class=&quot;st_h&quot;&gt;&#039;{print $1}&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;fi&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;/dev/&lt;span class=&quot;es4&quot;&gt;$UBUNTU_ROOT_DISK&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; then&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;КРИТИЧЕСКАЯ ОШИБКА: Запрещено размечать диск запущенной Ubuntu (&lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt;)!&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;fi&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Целевой диск определен как безопасный: &lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ВНИМАНИЕ! Диск &lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt; будет тотально очищен через 3 секунд...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;a href=&quot;http://www.php.net/sleep&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;sleep&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1 ln-xtra&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 2: Принудительное уничтожение метаданных и разметки&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 2: Принудительное уничтожение метаданных и разметки ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Принудительно отрываем все виртуальные ФС, которые могли остаться в памяти хоста&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo umount &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;l &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pts &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo umount &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;l &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo umount &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;l &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;sudo umount &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;l &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo umount &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;l &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo umount &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;l &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo umount &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;l $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;TARGET_FLASH&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Стираем сигнатуры файловых систем&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo wipefs &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;a &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;force &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo dd &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;zero of&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt;&amp;quot;&lt;/span&gt; bs&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;1M &lt;a href=&quot;http://www.php.net/count&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;count&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt; status&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;none&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo partprobe &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 3: Создание новой таблицы разделов GPT&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 3: Создание новой таблицы разделов GPT ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;a href=&quot;http://www.php.net/printf&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;printf&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;g&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;n&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;1&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;+512M&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;t&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;1&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;n&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;2&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;w&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; sudo fdisk &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;wipe always &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;wipe&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;partitions always &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo partprobe &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$TARGET_FLASH&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;nvme&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; then&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    PART1&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;${TARGET_FLASH}&lt;/span&gt;p1&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;    PART2&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;${TARGET_FLASH}&lt;/span&gt;p2&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    PART1&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;${TARGET_FLASH}&lt;/span&gt;1&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    PART2&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;${TARGET_FLASH}&lt;/span&gt;2&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;fi&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ожидание инициализации разделов ядром...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo partprobe &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sdb &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo udevadm settle &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;a href=&quot;http://www.php.net/sleep&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;sleep&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 4: Безусловное форматирование файловых систем&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 4: Безусловное форматирование файловых систем ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;sudo mkfs&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;vfat &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;F &lt;span class=&quot;nu0&quot;&gt;32&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$PART1&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo mkfs&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;ext4 &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;F &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$PART2&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 5: Развертывание структуры точек монтирования&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 5: Развертывание структуры точек монтирования ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo &lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo mount &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$PART2&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo &lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;sudo mount &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$PART1&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 6: Скачивание официального образа Arch Linux&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 6: Скачивание официального образа Arch Linux ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo apt update &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt install &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;y zstd wget&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;f archlinux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;bootstrap&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tar&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;zst &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; then&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    wget &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;timeout&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;tries&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$URL_BOOTSTRAP&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;fi&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;sudo tar &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;I zstd &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;xf archlinux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;bootstrap&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;tar&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;zst &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;strip&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;components&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;C &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 7: Статическая генерация таблицы fstab флешки&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 7: Статическая генерация таблицы fstab флешки ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;EFI_UUID&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sudo blkid &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;s UUID &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;o value &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$PART1&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;ROOT_UUID&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sudo blkid &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;s UUID &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;o value &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$PART2&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo &lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;a href=&quot;http://www.php.net/printf&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;printf&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;UUID=&lt;span class=&quot;es6&quot;&gt;%s&lt;/span&gt; /boot vfat defaults 0 2&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;UUID=&lt;span class=&quot;es6&quot;&gt;%s&lt;/span&gt; / ext4 defaults 0 1&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$EFI_UUID&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$ROOT_UUID&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; sudo tee &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 8: Внедрение скрипта АВТОУСТАНОВКИ на флешку (ОФФЛАЙН МЕТОД)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 8: Внедрение скрипта АВТОУСТАНОВКИ на флешку ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;sudo &lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;root&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo cat &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; EOF &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; sudo tee &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;root&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;forest&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;install&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;sh &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;set &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;e&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== КОМБАЙН ЗАПУЩЁН ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;MY_DISK&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;\$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;lsblk &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;no PKNAME \$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;findmnt &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;nvo SOURCE &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;z &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;MY_DISK&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; then&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    MY_DISK&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;\$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;lsblk &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;no PKNAME &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bootmnt &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sdb&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;fi&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;TARGET_DISK&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;\$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;lsblk &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;dno NAME&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;TYPE &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; grep &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;v &lt;span class=&quot;st0&quot;&gt;&amp;quot;loop&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; grep &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;v &lt;span class=&quot;st0&quot;&gt;&amp;quot;rom&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; grep &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;v &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;MY_DISK&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; head &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;n1 &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; awk &lt;span class=&quot;st_h&quot;&gt;&#039;{print \$1}&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;TARGET&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;/dev/&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TARGET_DISK&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;z &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TARGET_DISK&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; then&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;КРИТИЧЕСКАЯ ОШИБКА: Жёсткий диск ПК не найден!&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;fi&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Целевой жёсткий диск ПК определён: &lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TARGET. Уничтожаем старые данные...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;umount &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;f \$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;TARGET&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;wipefs &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;a &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;force &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TARGET&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;dd &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;zero of&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TARGET&amp;quot;&lt;/span&gt; bs&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;1M &lt;a href=&quot;http://www.php.net/count&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;count&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt; status&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;none&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;partprobe &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TARGET&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Разметка жёсткого диска ПК...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;a href=&quot;http://www.php.net/printf&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;printf&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;g&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;n&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;1&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;+512M&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;t&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;1&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;n&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;2&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;w&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; fdisk &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;wipe always &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;wipe&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;partitions always &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TARGET&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TARGET&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;nvme&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; then&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    TPART1&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;{TARGET}p1&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    TPART2&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;{TARGET}p2&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    TPART1&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;{TARGET}1&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    TPART2&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;{TARGET}2&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;fi&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Форматирование жёсткого диска ПК...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;mkfs&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;vfat &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;F &lt;span class=&quot;nu0&quot;&gt;32&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TPART1&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;mkfs&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;ext4 &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;F &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TPART2&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Монтирование дисков ПК под установку...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; mount &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TPART2&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; mount &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TPART1&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 8.1 ОФЛАЙН УСТАНОВКА С ОБНОВЛЕНИЕМ&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# НАСТОЯЩИЙ АВТОНОМНЫЙ ОФЛАЙН-МЕТОД 20.05.26 14:15&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Создаем необходимые папки под локальный кэш на жестком диске ПК...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sync&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Копируем автономный кэш пакетов и базы прямо с флешки на диск ПК...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;d &lt;span class=&quot;st0&quot;&gt;&amp;quot;/var/cache/pacman/pkg&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; then&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    cp &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;R &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/.&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;fi&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;d &lt;span class=&quot;st0&quot;&gt;&amp;quot;/var/lib/pacman/sync&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; then&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    cp &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;R &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sync&lt;span class=&quot;sy0&quot;&gt;/.&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sync&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;fi&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;cp &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;conf &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;conf&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;a href=&quot;http://www.php.net/touch&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;touch&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Развертывание системы из локальных файлов без интернета...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Подставляем имена файлов через find прямо на ПК, защищая строку от Ubuntu&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;pacman &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;U &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;noconfirm &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;root &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;dbpath &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman \$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;find &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;name &lt;span class=&quot;st0&quot;&gt;&amp;quot;*.pkg.tar.zst&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# КОНЕЦ НАСТОЯЩИЙ АВТОНОМНЫЙ ОФЛАЙН-МЕТОД 20.05.26 14:15&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Генерация таблицы fstab целевого ПК...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;a href=&quot;http://www.php.net/printf&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;printf&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;UUID=&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;(blkid -s UUID -o value &lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TPART2) / ext4 defaults 0 1&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;UUID=&lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;(blkid -s UUID -o value &lt;span class=&quot;es1&quot;&gt;\$&lt;/span&gt;TPART1) /boot vfat defaults 0 2&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Вход в chroot окружение ПК...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;mount &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;types proc &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;mount &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;rbind &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;mount &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;make&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;rslave &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;mount &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;rbind &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;mount &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;make&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;rslave &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;mount &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;rbind &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pts &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pts&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;arch&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;chroot &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bash &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;CHROOT_INNER_EOF&#039;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;set &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;e&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Отключите автоматическую синхронизацию&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Автоматическая настройка времени без пользовательского ввода&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Вариант 1: Использовать UTC (рекомендуется)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#echo &amp;quot;UTC&amp;quot; &amp;gt; /etc/timezone&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#ln -sf /usr/share/zoneinfo/UTC /etc/localtime&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#timedatectl set-local-rtc 0&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Вариант 2: Использовать локальное время с материнки напрямую через конфиги&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;hwclock &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;systohc &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;&lt;a href=&quot;http://www.php.net/localtime&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;localtime&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://www.php.net/system&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;system&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;catalog&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;a href=&quot;http://www.php.net/touch&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;touch&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;machine&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;id&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;e &lt;span class=&quot;st0&quot;&gt;&amp;quot;[Time]&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;LocalRTC=yes&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;adjtime&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Конфигурация пользователей...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;useradd &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;m &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;G wheel &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;s &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bash &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;${ADMIN_NAME}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ЖЕСТКОЕ ПОДАВЛЕНИЕ СИНЕГО ЭКРАНА НА ЦЕЛЕВОМ ПК&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;en_US.UTF-8 UTF-8&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;locale&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;gen&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;locale&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;gen&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;LANG=en_US.UTF-8&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;locale&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;conf&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;KEYMAP=us&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vconsole&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;conf&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;${SERVER_NAME}&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hostname&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;systemd&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;machine&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;id&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;setup&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;ln &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;sf &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://www.php.net/system&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;system&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;firstboot&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;service&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Конфигурация пользователей...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;${ADMIN_NAME}&lt;/span&gt;:&lt;span class=&quot;es4&quot;&gt;${ADMIN_PASS}&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; chpasswd&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;root:&lt;span class=&quot;es4&quot;&gt;${ROOT_PASS}&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; chpasswd&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%wheel ALL=(ALL:ALL) ALL&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sudoers&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;wheel&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;a href=&quot;http://www.php.net/touch&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;touch&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;locale&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;conf&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;a href=&quot;http://www.php.net/touch&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;touch&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vconsole&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;conf&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;a href=&quot;http://www.php.net/touch&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;touch&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;machine&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;id&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Активация служб...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sed &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;i &lt;span class=&quot;st_h&quot;&gt;&#039;s/#PermitRootLogin prohibit-password/PermitRootLogin no/&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ssh&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sshd_config&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;systemctl enable sshd NetworkManager&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Установка загрузчика GRUB...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;grub&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;install &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;efi &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;efi&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;directory&lt;span class=&quot;sy0&quot;&gt;=/&lt;/span&gt;boot &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;bootloader&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;BOOT &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;removable &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;recheck&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;grub&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;mkconfig &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;o &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;grub&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;grub&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;cfg&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;CHROOT_INNER_EOF&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;a href=&quot;http://www.php.net/printf&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;printf&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;## Russia&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;Server = &lt;span class=&quot;es6&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;Server = &lt;span class=&quot;es6&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;## International&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;Server = &lt;span class=&quot;es6&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;Server = &lt;span class=&quot;es6&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;${URL_YANDEX}&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;${URL_PKGS}&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;${URL_RACKSPACE}&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;${URL_PKGBUILD}&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Размонтируем за собой виртуальные ФС на флешке&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;umount &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;l &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pts&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;umount &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;l &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;umount &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;l &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;umount &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;l &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;umount &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;R &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;umount &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;R &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;target&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Система успешно развёрнута автономно! Перезагрузка через 3 секунды...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;a href=&quot;http://www.php.net/sleep&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;sleep&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;reboot&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;EOF&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Настройка прав доступа к файлу автоустановщика&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo &lt;a href=&quot;http://www.php.net/chmod&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;chmod&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;nu0&quot;&gt;755&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;root&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo &lt;a href=&quot;http://www.php.net/chmod&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;chmod&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt;x &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;root&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;forest&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;install&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;sh&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo &lt;a href=&quot;http://www.php.net/chmod&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;chmod&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;nu0&quot;&gt;700&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;root&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 9: Создание и регистрация фоновой службы systemd&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 9: Создание и регистрация фоновой службы systemd ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo cat &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;SERVICE_EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; sudo tee &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://www.php.net/system&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;system&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;forest&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;autoinstall&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;service &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Unit&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;Description&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;Автоустановщик Arch Linux без монитора&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;After&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;multi&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;user&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;target&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Service&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;Type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;idle&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;ExecStart&lt;span class=&quot;sy0&quot;&gt;=/&lt;/span&gt;root&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;forest&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;install&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;sh&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;StandardOutput&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;tty&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;StandardError&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;tty&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Install&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;WantedBy&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;multi&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;user&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;target&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;SERVICE_EOF&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo &lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://www.php.net/system&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;system&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;multi&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;user&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;wants&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo ln &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;sf &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://www.php.net/system&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;system&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;forest&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;autoinstall&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;service &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://www.php.net/system&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;system&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;multi&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;user&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;wants&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;forest&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;autoinstall&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;service&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 10: Формирование чистых репозиториев для флешки&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 10: Формирование чистых репозиториев для флешки ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo &lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Пишем зеркала через стандартный echo, полностью избегая капризных Here-Doc с пайпами&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Server = &lt;span class=&quot;es4&quot;&gt;${URL_YANDEX}&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; sudo tee &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Server = &lt;span class=&quot;es4&quot;&gt;${URL_PKGS}&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; sudo tee &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;a &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 11: Подготовка локального репозитория на флешке (Выполняет Ubuntu)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 11: Подготовка локального репозитория силами Ubuntu ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo &lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;sudo &lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Генерируем правильный pacman.conf для флешки (пока со стандартными зеркалами)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;cat &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; sudo tee &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;conf &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;options&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;Architecture &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; auto&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;SigLevel &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Optional TrustAll&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;LocalFileSigLevel &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Optional&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;core&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;Include&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;extra&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;Include&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;EOF&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Скачиваем базы данных и ВСЕ пакеты, зайдя в chroot флешки (тут есть библиотеки и интернет)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;chroot &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bash &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;CHROOT_EOF&#039;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;set &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;e&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Инициализация ключей внутри окружения флешки...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;pacman&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;&lt;a href=&quot;http://www.php.net/key&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;key&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;init&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;pacman&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;&lt;a href=&quot;http://www.php.net/key&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;key&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;populate archlinux&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Скачиваем базы данных и ВСЕ пакеты в автономный кэш флешки...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;pacman &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Syw &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;noconfirm \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;    iana&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;etc filesystem linux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;api&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;headers tzdata licenses \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;glibc libgcc libstdc&lt;span class=&quot;sy0&quot;&gt;++&lt;/span&gt; libasan libatomic libgfortran libgomp \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;liblsan libobjc libquadmath libtsan libubsan gcc&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;libs \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;ncurses readline bash acl attr gmp zlib sqlite  \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;util&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;linux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;libs e2fsprogs keyutils gdbm brotli xz \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;lz4 zstd openssl libsasl libldap libevent libverto lmdb \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;krb5 libcap&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;ng audit libxcrypt libtirpc libnsl pambase \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;libgpg&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;error libgcrypt systemd&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;libs pam libcap coreutils \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;bzip2 libseccomp &lt;a href=&quot;http://www.php.net/file&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file&lt;/span&gt;&lt;/a&gt; findutils mpfr gawk pcre2 grep \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;procps&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;ng sed tar libtasn1 libffi libp11&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;kit p11&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;kit \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;ca&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;certificates&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;utils ca&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;certificates&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;mozilla ca&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;certificates \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;libunistring libidn2 libnghttp2 libnghttp3 nettle leancrypto \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;gnutls libngtcp2 libpsl libssh2 curl json&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;c gnulib&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;l10n icu \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;libxml2 &lt;a href=&quot;http://www.php.net/gettext&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;gettext&lt;/span&gt;&lt;/a&gt; hwdata kmod pciutils psmisc shadow util&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;linux \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;gzip licenses libksba libusb libassuan libsysprof&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;capture \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;glib2 tpm2&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;tss libsecret pinentry npth gnupg gpgme libarchive \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;pacman&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;mirrorlist device&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;mapper popt cryptsetup expat \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;dbus dbus&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;broker dbus&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;broker&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;units dbus&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;units kbd libelf \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;systemd jansson binutils libmakepkg&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;dropins pacman \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;archlinux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;keyring systemd&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;sysvcompat iputils libmnl \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;libnfnetlink libnetfilter_conntrack libnftnl libnl libpcap \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;nftables iptables libbpf iproute2 base mkinitcpio&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;busybox \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;diffutils mkinitcpio \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;linux linux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;firmware&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;whence linux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;firmware&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;amdgpu \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;linux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;firmware&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;atheros linux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;firmware&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;broadcom \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;linux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;firmware&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;cirrus linux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;firmware&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;intel \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;linux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;firmware&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;mediatek linux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;firmware&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;nvidia \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;linux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;firmware&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;other linux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;firmware&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;radeon \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;linux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;firmware&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;realtek linux&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;firmware libedit \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;openssh libmm&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;glib libndp gpm pcre slang libnewt nspr nss \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;libnm libdaemon libsodium libpgm zeromq libteam \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;mobile&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;broadband&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;provider&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;info duktape polkit \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;pcsclite wpa_supplicant networkmanager sudo \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;nano dosfstools mtools mailcap nginx libmd libbsd \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;talloc tevent tdb ldb avahi libcups liburing libwbclient \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;mpdecimal python cifs&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;utils smbclient samba grub efivar \&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;efibootmgr libzip argon2 oniguruma php php&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;fpm&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;CHROOT_EOF&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Переводим pacman.conf флешки на полностью локальный оффлайн-режим file:///&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;cat &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; sudo tee &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;conf &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;options&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;Architecture &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; auto&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;SigLevel &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Optional TrustAll&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;LocalFileSigLevel &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Optional&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;core&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;Server &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/file&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;///var/cache/pacman/pkg&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;extra&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;Server &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/file&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;///var/cache/pacman/pkg&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;EOF&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 12: Локальная автономная установка на флешку (БЕЗ ИНТЕРНЕТА)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 12: Накатывание базовой системы на флешку из локального кэша ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Генерируем базовые конфиги флешки до chroot, чтобы заблокировать синий экран&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;en_US.UTF-8 UTF-8&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; sudo tee &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;locale&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;gen &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;LANG=en_US.UTF-8&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; sudo tee &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;locale&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;conf &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;KEYMAP=us&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; sudo tee &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vconsole&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;conf &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;arch-flash&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; sudo tee &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hostname &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Принудительная инициализация идентификаторов системы&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo systemd&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;machine&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;id&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;setup &lt;span class=&quot;sy0&quot;&gt;--&lt;/span&gt;root&lt;span class=&quot;sy0&quot;&gt;=/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo &lt;a href=&quot;http://www.php.net/touch&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;touch&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;machine&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;id&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ЖЕСТКОЕ ОФФЛАЙН ПОДАВЛЕНИЕ FIRSTBOOT (Записываем строго внутрь флешки с sudo)&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo &lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://www.php.net/system&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;system&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo ln &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;sf &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://www.php.net/system&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;system&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;firstboot&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;service&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo &lt;a href=&quot;http://www.php.net/touch&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;touch&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;clock&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# РЕШЕНИЕ ПРОБЛЕМЫ 3/13 И 12/13: Создаем каталоги и монтируем виртуальные ФС ядра хоста&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo &lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;catalog&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Развертываем систему на флешке из автономного кэша...&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# Используем встроенный chroot флешки, передавая команды через bash -c, чтобы не ломать /dev/stdin&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;chroot &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bash &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;c &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;st0&quot;&gt;set -e&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;st0&quot;&gt;# Ставим напрямую по маске файлы пакетов&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;st0&quot;&gt;pacman -U --noconfirm /var/cache/pacman/pkg/*.pkg.tar.zst&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;st0&quot;&gt;# Настраиваем GRUB на флешке как съемный диск&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;st0&quot;&gt;grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch_Flash --removable --recheck&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;st0&quot;&gt;grub-mkconfig -o /boot/grub/grub.cfg&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ШАГ 13: финальная проверка&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# ==============================================================================&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== ШАГ 13: финальная проверка ===&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo umount &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;l &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;sudo umount &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;l &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li2&quot;&gt;&lt;div class=&quot;de2&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class=&quot;li1&quot;&gt;&lt;div class=&quot;de1&quot;&gt;MAIN_EOF&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
🔍 Шаг 4. Очистите его от символов Windows
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;s/\r$//&#039;&lt;/span&gt; builder.sh&lt;/pre&gt;

&lt;p&gt;
🔍 Шаг 5. Разрешите запуск
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x builder.sh &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; .&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;builder.sh&lt;/pre&gt;

&lt;p&gt;
🔍 Шаг 4. запустить скрипт
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;builder.sh&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 22 May 2026 09:15:35 +0000</pubDate>
        </item>
        <item>
            <title>to-do_list</title>
            <link>https://wwoss.ru/doku.php?id=to-do_list&amp;rev=1778565206</link>
            <description>&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:demo:cms:ucms:ucms_table_of_contents&quot; class=&quot;wikilink1&quot; title=&quot;software:development:demo:cms:ucms:ucms_table_of_contents&quot; data-wiki-id=&quot;software:development:demo:cms:ucms:ucms_table_of_contents&quot;&gt;UCMS&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=page&quot; class=&quot;wikilink1&quot; title=&quot;page&quot; data-wiki-id=&quot;page&quot;&gt;шаблон оформления страниц&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:demo:cms:ucms:creating_install_php&quot; class=&quot;wikilink1&quot; title=&quot;software:development:demo:cms:ucms:creating_install_php&quot; data-wiki-id=&quot;software:development:demo:cms:ucms:creating_install_php&quot;&gt; в работе install.php&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:demo:cms:ucms:creating_sample_install_php&quot; class=&quot;wikilink1&quot; title=&quot;software:development:demo:cms:ucms:creating_sample_install_php&quot; data-wiki-id=&quot;software:development:demo:cms:ucms:creating_sample_install_php&quot;&gt; в работе шаблон install.php&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
—–
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:learn:mariadb:%D0%B2atabase_creation&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:learn:mariadb:вatabase_creation&quot; data-wiki-id=&quot;software:development:web:docs:learn:mariadb:вatabase_creation&quot;&gt;База данных PHP MySQL&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:learn:mariadb:%D0%B2atabase_creation_pdo&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:learn:mariadb:вatabase_creation_pdo&quot; data-wiki-id=&quot;software:development:web:docs:learn:mariadb:вatabase_creation_pdo&quot;&gt;База данных PHP MySQL PDO&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:php:sessions_and_cookies&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:php:sessions_and_cookies&quot; data-wiki-id=&quot;software:development:web:docs:web:php:sessions_and_cookies&quot;&gt;PHP sessions and cookies&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:php:save_in_the_file_txt&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:php:save_in_the_file_txt&quot; data-wiki-id=&quot;software:development:web:docs:web:php:save_in_the_file_txt&quot;&gt;PHP save in the fale.txt&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:php:save_in_the_file_ini&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:php:save_in_the_file_ini&quot; data-wiki-id=&quot;software:development:web:docs:web:php:save_in_the_file_ini&quot;&gt;PHP save in the fale.ini&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:php:authorization_and_registration_in_one_window&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:php:authorization_and_registration_in_one_window&quot; data-wiki-id=&quot;software:development:web:docs:web:php:authorization_and_registration_in_one_window&quot;&gt;PHP авторизация и регистрация в одном окне&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:web:docs:web:php:authorization_and_registration_in_a_modal_window&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:php:authorization_and_registration_in_a_modal_window&quot; data-wiki-id=&quot;software:development:web:docs:web:php:authorization_and_registration_in_a_modal_window&quot;&gt;PHP авторизация и регистрация в модальном окне&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:demo:adaptive_registration_form_sample&quot; class=&quot;wikilink1&quot; title=&quot;software:development:demo:adaptive_registration_form_sample&quot; data-wiki-id=&quot;software:development:demo:adaptive_registration_form_sample&quot;&gt;Простая адаптивная форма регистрации и авторизации&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:demo:cms:ucms:appendix:appendix_tinymce&quot; class=&quot;wikilink1&quot; title=&quot;software:development:demo:cms:ucms:appendix:appendix_tinymce&quot; data-wiki-id=&quot;software:development:demo:cms:ucms:appendix:appendix_tinymce&quot;&gt;TinyMCE&lt;/a&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
——
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=software:development:demo:faq_sckool&quot; class=&quot;urlextern&quot; title=&quot;https://wwoss.ru/doku.php?id=software:development:demo:faq_sckool&quot; rel=&quot;ugc nofollow&quot;&gt;faq_sckool&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 12 May 2026 05:53:26 +0000</pubDate>
        </item>
        <item>
            <title>welcome</title>
            <link>https://wwoss.ru/doku.php?id=welcome&amp;rev=1763190320</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;пользовательское_соглашение&quot;&gt;Пользовательское соглашение&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Настоящее Соглашение определяет условия использования Пользователями материалов и сервисов сайта, находящегося по адресу &lt;a href=&quot;https://www.wwoss.ru&quot; class=&quot;urlextern&quot; title=&quot;https://www.wwoss.ru&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.wwoss.ru&lt;/a&gt;   (далее — «Сайт»).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0435 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0435_\u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-350&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;общие_условия&quot;&gt;1.Общие условия&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
1.1. Использование материалов и сервисов Сайта регулируется нормами действующего законодательства Российской Федерации.
&lt;/p&gt;

&lt;p&gt;
1.2. Настоящее Соглашение является публичной офертой. Получая доступ к материалам Сайта Пользователь считается присоединившимся к настоящему Соглашению.
&lt;/p&gt;

&lt;p&gt;
1.3. Администрация Сайта вправе в любое время в одностороннем порядке изменять условия настоящего Соглашения. Такие изменения вступают в силу по истечении 3 (Трех) дней с момента размещения новой версии Соглашения на сайте. При несогласии Пользователя с внесенными изменениями он обязан отказаться от доступа к Сайту, прекратить использование материалов и сервисов Сайта.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1.\u041e\u0431\u0449\u0438\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0431\u0449\u0438\u0435_\u0443\u0441\u043b\u043e\u0432\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;351-1581&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;обязательства_пользователя&quot;&gt;2. Обязательства Пользователя&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
2.1. Пользователь соглашается не предпринимать действий, которые могут рассматриваться как нарушающие российское законодательство или нормы международного права, в том числе в сфере интеллектуальной собственности, авторских и/или смежных правах, а также любых действий, которые приводят или могут привести к нарушению нормальной работы Сайта и сервисов Сайта.
&lt;/p&gt;

&lt;p&gt;
2.2. Использование материалов Сайта без согласия правообладателей не допускается (статья 1270 Г.К РФ). Для правомерного использования материалов Сайта необходимо заключение лицензионных договоров (получение лицензий) от Правообладателей.
&lt;/p&gt;

&lt;p&gt;
2.3. При цитировании материалов Сайта, включая охраняемые авторские произведения, ссылка на Сайт обязательна (подпункт 1 пункта 1 статьи 1274 Г.К РФ).
&lt;/p&gt;

&lt;p&gt;
2.4. Комментарии и иные записи Пользователя на Сайте не должны вступать в противоречие с требованиями законодательства Российской Федерации и общепринятых норм морали и нравственности.
&lt;/p&gt;

&lt;p&gt;
2.5. Пользователь предупрежден о том, что Администрация Сайта не несет ответственности за посещение и использование им внешних ресурсов, ссылки на которые могут содержаться на сайте.
&lt;/p&gt;

&lt;p&gt;
2.6. Пользователь согласен с тем, что Администрация Сайта не несет ответственности и не имеет прямых или косвенных обязательств перед Пользователем в связи с любыми возможными или возникшими потерями или убытками, связанными с любым содержанием Сайта, регистрацией авторских прав и сведениями о такой регистрации, товарами или услугами, доступными на или полученными через внешние сайты или ресурсы либо иные контакты Пользователя, в которые он вступил, используя размещенную на Сайте информацию или ссылки на внешние ресурсы.
&lt;/p&gt;

&lt;p&gt;
2.7. Пользователь принимает положение о том, что все материалы и сервисы Сайта или любая их часть могут сопровождаться рекламой. Пользователь согласен с тем, что Администрация Сайта не несет какой-либо ответственности и не имеет каких-либо обязательств в связи с такой рекламой.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2. \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430 \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1582-5170&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;прочие_условия&quot;&gt;3. Прочие условия&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
3.1. Все возможные споры, вытекающие из настоящего Соглашения или связанные с ним, подлежат разрешению в соответствии с действующим законодательством Российской Федерации.
&lt;/p&gt;

&lt;p&gt;
3.2. Ничто в Соглашении не может пониматься как установление между Пользователем и Администрации Сайта агентских отношений, отношений товарищества, отношений по совместной деятельности, отношений личного найма, либо каких-то иных отношений, прямо не предусмотренных Соглашением.
&lt;/p&gt;

&lt;p&gt;
3.3. Признание судом какого-либо положения Соглашения недействительным или не подлежащим принудительному исполнению не влечет недействительности иных положений Соглашения.
&lt;/p&gt;

&lt;p&gt;
3.4. Бездействие со стороны Администрации Сайта в случае нарушения кем-либо из Пользователей положений Соглашения не лишает Администрацию Сайта права предпринять позднее соответствующие действия в защиту своих интересов и защиту авторских прав на охраняемые в соответствии с законодательством материалы Сайта.
&lt;/p&gt;

&lt;p&gt;
Пользователь подтверждает, что ознакомлен со всеми пунктами настоящего Соглашения и безусловно принимает их.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3. \u041f\u0440\u043e\u0447\u0438\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0447\u0438\u0435_\u0443\u0441\u043b\u043e\u0432\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;5171-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 15 Nov 2025 07:05:20 +0000</pubDate>
        </item>
        <item>
            <title>wiki</title>
            <link>https://wwoss.ru/doku.php?id=wiki&amp;rev=1768797298</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dokuwiki&quot;&gt;DokuWiki&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;



&lt;p&gt;
DokuWiki — это простое в использовании и очень универсальное &lt;a href=&quot;https://en.wikipedia.org/wiki/wiki software&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/wiki software&quot;&gt;программное обеспечение для вики-систем &lt;/a&gt; с открытым исходным кодом , не требующее базы данных. Пользователи любят его за чистый и читаемый &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:syntax&quot; class=&quot;wikilink1&quot; title=&quot;wiki:syntax&quot; data-wiki-id=&quot;wiki:syntax&quot;&gt;синтаксис&lt;/a&gt;. Простота обслуживания, резервного копирования и интеграции делает его фаворитом среди администраторов. Встроенные &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:acl&quot; class=&quot;wikilink1&quot; title=&quot;wiki:acl&quot; data-wiki-id=&quot;wiki:acl&quot;&gt;средства контроля доступа&lt;/a&gt; и &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:auth&quot; class=&quot;wikilink1&quot; title=&quot;wiki:auth&quot; data-wiki-id=&quot;wiki:auth&quot;&gt; коннекторы аутентификации&lt;/a&gt; делают DokuWiki особенно полезным в корпоративной среде, а большое количество of &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:plugins&quot; class=&quot;wikilink1&quot; title=&quot;wiki:plugins&quot; data-wiki-id=&quot;wiki:plugins&quot;&gt;плагинов&lt;/a&gt;, разработанных активным сообществом, позволяет использовать его в самых разных сценариях, выходящих за рамки традиционной вики.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://download.dokuwiki.org&quot; class=&quot;media&quot; title=&quot;http://download.dokuwiki.org&quot; rel=&quot;ugc nofollow&quot;&gt;&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?media=wiki:download-big.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;Download the latest version&quot; alt=&quot;Download the latest version&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;hr /&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_dokuteaser_start&amp;quot;,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;dokuteaser&quot;&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;почему_именно_dokuwiki&quot;&gt;Почему именно DokuWiki?&lt;/h3&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e DokuWiki?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u0447\u0435\u043c\u0443_\u0438\u043c\u0435\u043d\u043d\u043e_dokuwiki&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1320-&amp;quot;} --&gt;
&lt;p&gt;
&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=80&amp;amp;tok=30ab11&amp;amp;media=wiki:dokuwiki-128.png&quot; class=&quot;mediaright&quot; align=&quot;right&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;80&quot; /&gt;
DokuWiki — популярный выбор среди программ для создания вики-сайтов, обладающий множеством преимуществ перед аналогичными программами.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Легко устанавливается и используется.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Низкие системные требования&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Встроенные списки контроля доступа&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Большое разнообразие расширений&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Поддерживается более 50 языков.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Независимость от устройства&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Открытый исходный код&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:features&quot; class=&quot;wikilink1&quot; title=&quot;wiki:features&quot; data-wiki-id=&quot;wiki:features&quot;&gt; Узнайте больше о возможностях DokuWiki&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_dokuteaser_end&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_dokuteaser_start&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;dokuteaser&quot;&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;варианты_использования&quot;&gt;Варианты использования&lt;/h3&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b_\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2195-&amp;quot;} --&gt;
&lt;p&gt;
&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=150&amp;amp;tok=60db2e&amp;amp;media=wiki:hackfest.jpg&quot; class=&quot;mediaright&quot; align=&quot;right&quot; loading=&quot;lazy&quot; title=&quot;DokuWiki Hackfest London 2012&quot; alt=&quot;DokuWiki Hackfest London 2012&quot; width=&quot;150&quot; /&gt;
Вики-сайты быстро обновляются, и новые страницы легко добавляются. Разработанная для совместной работы и сохраняющая историю всех изменений, DokuWiki может использоваться как
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Корпоративная база знаний&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Личный блокнот&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Руководство по программному обеспечению&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Рабочее пространство проекта&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Content Management System&quot;&gt;CMS&lt;/abbr&gt; – интранет&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_dokuteaser_end&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_dokuteaser_start&amp;quot;,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;dokuteaser&quot;&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;настройка_dokuwiki&quot;&gt;Настройка DokuWiki&lt;/h3&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 DokuWiki&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_dokuwiki&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;2917-&amp;quot;} --&gt;
&lt;p&gt;
&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=90&amp;amp;tok=8cff4f&amp;amp;media=wiki:customize.png&quot; class=&quot;mediaright&quot; align=&quot;right&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;90&quot; /&gt;
Мы поддерживаем настройку на любом уровне подготовки. От простой конфигурации через административный интерфейс и загрузки шаблонов и плагинов до разработки собственных расширений.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:config&quot; class=&quot;wikilink1&quot; title=&quot;wiki:config&quot; data-wiki-id=&quot;wiki:config&quot;&gt;Конфигурация&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:plugins&quot; class=&quot;wikilink1&quot; title=&quot;wiki:plugins&quot; data-wiki-id=&quot;wiki:plugins&quot;&gt;Плагины&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:template&quot; class=&quot;wikilink1&quot; title=&quot;wiki:template&quot; data-wiki-id=&quot;wiki:template&quot;&gt;Шаблоны&lt;/a&gt; (также известные как скины/темы)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:design_examples&quot; class=&quot;wikilink1&quot; title=&quot;wiki:design_examples&quot; data-wiki-id=&quot;wiki:design_examples&quot;&gt;Примеры дизайна&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:tips:tips&quot; class=&quot;wikilink1&quot; title=&quot;wiki:tips:tips&quot; data-wiki-id=&quot;wiki:tips:tips&quot;&gt;Советы и рекомендации&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:development&quot; class=&quot;wikilink1&quot; title=&quot;wiki:development&quot; data-wiki-id=&quot;wiki:development&quot;&gt;Ознакомьтесь с руководством по разработке.&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_dokuteaser_end&amp;quot;,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_dokuteaser_start&amp;quot;,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;dokuteaser&quot;&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;наше_сообщество&quot;&gt;Наше сообщество&lt;/h3&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0448\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0448\u0435_\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;3759-&amp;quot;} --&gt;
&lt;p&gt;
&lt;img src=&quot;https://wwoss.ru/lib/exe/fetch.php?w=90&amp;amp;tok=13fd70&amp;amp;media=wiki:community.png&quot; class=&quot;mediaright&quot; align=&quot;right&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;90&quot; /&gt;
Частью работы с открытым исходным кодом является вклад в развитие сообщества посредством активного участия. Существует множество способов это сделать.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Поделитесь своим опытом.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Займитесь садоводством с помощью вики.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Помощь авторам плагинов в создании документации.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://translate.dokuwiki.org/&quot; class=&quot;urlextern&quot; title=&quot;http://translate.dokuwiki.org/&quot; rel=&quot;ugc nofollow&quot;&gt;Помогите перевести интерфейс DokuWiki.&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://github.com/dokuwiki/dokuwiki/issues/&quot; class=&quot;interwiki iw_issue&quot; title=&quot;https://github.com/dokuwiki/dokuwiki/issues/&quot;&gt;Сообщайте об ошибках и пожеланиях по улучшению функционала.&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://forum.dokuwiki.org&quot; class=&quot;urlextern&quot; title=&quot;http://forum.dokuwiki.org&quot; rel=&quot;ugc nofollow&quot;&gt;Задавайте вопросы на форуме.&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;https://wwoss.ru/doku.php?id=wiki:teams:getting_involved&quot; class=&quot;wikilink1&quot; title=&quot;wiki:teams:getting_involved&quot; data-wiki-id=&quot;wiki:teams:getting_involved&quot;&gt;Примите участие!&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_dokuteaser_end&amp;quot;,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DokuWiki&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dokuwiki&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-4734&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit14&quot; id=&quot;авторские_права&quot;&gt;Авторские права&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
2004-2025 © Andreas Gohr &lt;a href=&quot;mailto:&amp;#97;&amp;#110;&amp;#100;&amp;#105;&amp;#64;&amp;#115;&amp;#112;&amp;#108;&amp;#105;&amp;#116;&amp;#98;&amp;#114;&amp;#97;&amp;#105;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&quot; class=&quot;mail&quot; title=&quot;&amp;#97;&amp;#110;&amp;#100;&amp;#105;&amp;#64;&amp;#115;&amp;#112;&amp;#108;&amp;#105;&amp;#116;&amp;#98;&amp;#114;&amp;#97;&amp;#105;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&quot;&gt;&amp;#97;&amp;#110;&amp;#100;&amp;#105;&amp;#64;&amp;#115;&amp;#112;&amp;#108;&amp;#105;&amp;#116;&amp;#98;&amp;#114;&amp;#97;&amp;#105;&amp;#110;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&lt;/a&gt;&lt;sup&gt;&lt;a href=&quot;#fn__1&quot; id=&quot;fnt__1&quot; class=&quot;fn_top&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; и Сообщество DokuWiki
&lt;/p&gt;

&lt;p&gt;
Информационный движок DokuWiki распространяется под лицензией  &lt;a href=&quot;http://www.gnu.org/licenses/gpl.html&quot; class=&quot;urlextern&quot; title=&quot;http://www.gnu.org/licenses/gpl.html&quot; rel=&quot;ugc nofollow&quot;&gt;GNU General Public License&lt;/a&gt; версии 2. Если вы используете DokuWiki в своей компании, подумайте о том, &lt;a href=&quot;https://www.dokuwiki.org/donate&quot; class=&quot;interwiki iw_doku&quot; title=&quot;https://www.dokuwiki.org/donate&quot;&gt;чтобы пожертвовать&lt;/a&gt; несколько долларов ;-).
&lt;/p&gt;

&lt;p&gt;
Не уверены, что это значит? См. &lt;a href=&quot;https://www.dokuwiki.org/faq:license&quot; class=&quot;interwiki iw_doku&quot; title=&quot;https://www.dokuwiki.org/faq:license&quot;&gt;раздел часто задаваемых вопросов (FAQ) о лицензиях &lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0410\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0435 \u043f\u0440\u0430\u0432\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0435_\u043f\u0440\u0430\u0432\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;4735-&amp;quot;} --&gt;&lt;div class=&quot;footnotes&quot;&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__1&quot; id=&quot;fn__1&quot; class=&quot;fn_bot&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; 
&lt;div class=&quot;content&quot;&gt;Пожалуйста, не обращайтесь ко мне за помощью и поддержкой — используйте вместо этого &lt;a href=&quot;https://www.dokuwiki.org/mailinglist&quot; class=&quot;interwiki iw_doku&quot; title=&quot;https://www.dokuwiki.org/mailinglist&quot;&gt;список рассылки&lt;/a&gt; или &lt;a href=&quot;http://forum.dokuwiki.org&quot; class=&quot;urlextern&quot; title=&quot;http://forum.dokuwiki.org&quot; rel=&quot;ugc nofollow&quot;&gt;форум&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 19 Jan 2026 04:34:58 +0000</pubDate>
        </item>
    </channel>
</rss>
