diff --git a/docs/books/nvchad/install_nvchad.uk.md b/docs/books/nvchad/install_nvchad.uk.md
index 8546882c78..b35aeea65a 100644
--- a/docs/books/nvchad/install_nvchad.uk.md
+++ b/docs/books/nvchad/install_nvchad.uk.md
@@ -11,23 +11,17 @@ tags:
# :simple-neovim: Перетворення Neovim на просунутий IDE
-!!! danger "Помилкові інструкції"
-
- З випуском версії 2.5 інструкції на цій сторінці більше не є правильними; його використання не рекомендується для нових установок. Для отримання додаткової інформації див. [головну сторінку посібника](../index.md).
-
## :material-arrow-bottom-right-bold-outline: Передумови
Як зазначено на сайті NvChad, вам потрібно переконатися, що система відповідає таким вимогам:
-* [Neovim 0.9.4](https://github.com/neovim/neovim/releases/tag/v0.9.4).
+* [Neovim 0.9.5](https://github.com/neovim/neovim/releases/tag/v0.9.4).
* [Шрифт Nerd](https://www.nerdfonts.com/) Установіть його в емуляторі терміналу.
* Переконайтеся, що шрифт, який ви налаштували, не закінчується на **Mono**
* **Приклад:** шрифт Iosevka Nerd, а не ~~Шрифт Iosevka Nerd Mono~~
* [Ripgrep](https://github.com/BurntSushi/ripgrep) потрібен для пошуку grep за допомогою Telescope **(НЕОБОВ’ЯЗКОВО)**.
* GCC та Make
-Насправді це не справжня «інсталяція», а скоріше написання спеціальної конфігурації Neovim для нашого користувача.
-
??? warning «Виконання чистої інсталяції»
Як зазначено у вимогах, встановлення цієї нової конфігурації поверх попередньої може створити проблеми, які неможливо виправити. Рекомендується чиста інсталяція.
@@ -61,142 +55,163 @@ rm -rf ~/.cache/nvim
## :material-monitor-arrow-down-variant: Встановлення
-Тепер, коли ми очистили, ми можемо переходити до встановлення NvChad.
+Створення структури конфігурації здійснюється шляхом копіювання файлів із сховища ініціалізації (==starter==) за допомогою *Git*. Цей метод дозволяє інсталювати конфігурацію NvChad, підготовлену як плагін Neovim, у менеджері плагінів *lazy.nvim*.
+Таким чином конфігурація оновлюється, як і всі інші плагіни, що спрощує керування користувачем. Крім того, цей підхід робить всю конфігурацію користувача незалежною, дозволяючи її повне керування та розподіл між кількома машинами.
-### :octicons-repo-clone-16: Конфігурація клонування
-
-Щоб зробити це, просто запустіть таку команду з будь-якого місця у вашому *домашньому каталозі*:
+Щоб завантажити та ініціалізувати конфігурацію, скористайтеся такою командою:
```bash
-git clone https://github.com/NvChad/NvChad ~/.config/nvim --depth 1 && nvim
+git clone https://github.com/NvChad/starter ~/.config/nvim && nvim
```
-Перша частина команди клонує репозиторій NvChad до папки ==~/.config/nvim==; це типовий шлях Neovim для пошуку конфігурації користувача. Параметр ==--depth 1== наказує *git* клонувати лише репозиторій, встановлений як «за замовчуванням» на GitHub.
+Команда складається з двох частин. Перший завантажує вміст репозиторію *starter* до `~/.config/nvim/` (тека за замовчуванням для налаштувань Neovim), а другий викликає ==nvim== виконуваний файл, який ініціалізує редактор конфігурацією, яку ви щойно завантажили. Після завершення встановлення плагінів і синтаксичних аналізаторів ви побачите наступний екран. Щоб закрити менеджер плагінів, введіть ++"q "++ :
-Після завершення процесу клонування у другій частині команди викликається виконуваний файл Neovim (*nvim*), який, знайшовши папку конфігурації, почне імпортувати конфігурації, знайдені в його файли ==init.lua== у попередньо визначеному порядку.
+
-### :material-timer-cog-outline: Bootstrap
+Початкова конфігурація є мінімальною та є відправною точкою для ваших налаштувань. Як свідчить скріншот, під час першого запуску редактора завантажуються лише чотири модулі (==плагіни==), позначені галочкою, а саме:
-Перед початком початкового завантаження програма встановлення запропонує встановити базову структуру (*template chadrc*) для наших подальших налаштувань:
+* **base46** - надає теми редактора
+* **NvChad** - базова конфігурація, яка дозволяє вводити конфігурацію користувача в Neovim
+* **nvim-treesitter** - для аналізу та підсвічування коду
+* **ui** - інтерфейс редактора (рядок статусу, рядок вкладок..)
-> Do you want to install chadrc template? (Бажаєте встановити шаблон chadrc?) (y/n):
+Решта модулів буде активовано завдяки техніці ==*відкладного завантаження*==, коли буде запитана функціональність, яку надає модуль. Це покращує продуктивність редактора загалом і, зокрема, покращує час його запуску.
-Хоча вибір для встановлення рекомендованої структури не є обов’язковим, це однозначно рекомендується для тих, хто новачок у цьому редакторі. Поточні користувачі NvChad, які вже мають папку ==custom==, зможуть її використовувати після внесення необхідних змін.
+На цьому етапі редактор готовий до використання. Наступні розділи надають детальний огляд процесу інсталяції та не є необхідними для щоденного використання. Якщо вас цікавить лише його використання, ви можете звернутися до сторінки [Використання NvChad](./nvchad_ui/using_nvchad.md).
+Проте все ще рекомендується прочитати [офіційну документацію](https://nvchad.com/docs/quickstart/install) для ознайомлення з його компонентами та функціями.
-Структура, створена за допомогою шаблону, також використовуватиметься в цьому посібнику для розробки конфігурації для написання документів у Markdown.
+Щоб закрити редактор, використовуйте клавішу ++colon++ ++"q "++.
-Для тих, хто хоче дізнатися більше про цю тему перед початком встановлення, можна переглянути відповідну сторінку [Template Chadrc](template_chadrc.md).
+### :material-timer-cog-outline: Bootstrap
-Сторінка містить інформацію про структуру папки, яка буде створена, функції пов’язаних файлів та іншу корисну інформацію для налаштування NvChad.
+Процес початкового завантаження реалізовано у файлі ==*init.lua*== репозиторію *starter* і складається з таких кроків:
-На цьому етапі почнеться завантаження та конфігурація базових плагінів, а також, якщо ми вибрали інсталяцію шаблону, інсталяція налаштованого мовного сервера. Після завершення процесу наш редактор буде готовий до використання.
+Початкове налаштування шляху до теми за замовчуванням і клавіші ``, у цьому випадку клавіші ++space++:
-
+```lua
+vim.g.base46_cache = vim.fn.stdpath "data" .. "/nvchad/base46/"
+vim.g.mapleader = " "
+```
-Як видно на скріншоті нижче, завдяки внесеним змінам конфігурації редактор повністю змінився на вигляд порівняно з базовою версією Neovim. Однак слід пам’ятати, що хоча конфігурація NvChad повністю трансформує редактор, основою залишається Neovim.
+Наступна інсталяція основного плагіна **lazy.nvim**:
-
+```lua
+-- bootstrap lazy and all plugins
+local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
-## :material-file-tree-outline: Структура конфігурації
+if not vim.loop.fs_stat(lazypath) then
+ local repo = "https://github.com/folke/lazy.nvim.git"
+ vim.fn.system { "git", "clone", "--filter=blob:none", repo, "--branch=stable", lazypath }
+end
-Встановлена конфігурація складається з двох частин: одна частина, присвячена редактору, який залишається під контролем версій (==git==) репозиторію NvChad, і інша, присвячена налаштуванню користувача, яке виключено з контролю версій через використання ==. gitignore== файлу.
+vim.opt.rtp:prepend(lazypath)
-Це дає змогу оновлювати редактор без шкоди для особистої конфігурації.
+local lazy_config = require "configs.lazy"
+```
-### Базова структура
+А також інсталяція плагінів NvChad і всіх налаштованих у папці `plugins`:
-Частина, зарезервована для редактора, наступна:
+```lua
+-- load plugins
+require("lazy").setup({
+ {
+ "NvChad/NvChad",
+ lazy = false,
+ branch = "v2.5",
+ import = "nvchad.plugins",
+ config = function()
+ require "options"
+ end,
+ },
+
+ { import = "plugins" },
+}, lazy_config)
+```
-```text
-.config/nvim
-├── init.lua
-├── lazy-lock.json
-├── LICENSE
-└── lua
- ├── core
- │ ├── bootstrap.lua
- │ ├── default_config.lua
- │ ├── init.lua
- │ ├── mappings.lua
- │ └── utils.lua
- └── plugins
- ├── configs
- │ ├── cmp.lua
- │ ├── lazy_nvim.lua
- │ ├── lspconfig.lua
- │ ├── mason.lua
- │ ├── nvimtree.lua
- │ ├── others.lua
- │ ├── telescope.lua
- │ └── treesitter.lua
- └── init.lua
+Потім застосуйте тему до параметрів *default* і *statusline*:
+
+```lua
+-- load theme
+dofile(vim.g.base46_cache .. "defaults")
+dofile(vim.g.base46_cache .. "statusline")
+```
+
+Після завершення також буде введено ==autocmds== ([автокоманди Neovim](https://neovim.io/doc/user/autocmd.html)), необхідні для операції конфігурації та розкладки клавіатури:
+
+```lua
+require "nvchad.autocmds"
+
+vim.schedule(function()
+ require "mappings"
+end)
```
-### Структура шаблону
+## :material-file-tree-outline: Структура конфігурації
-Частина, яка стосується налаштувань, складається з наступної структури:
+Структура, встановлена NvChad, така:
```text
-.config/nvim/lua/custom/
-├── chadrc.lua
-├── configs
-│ ├── lspconfig.lua
-│ ├── null-ls.lua
-│ └── overrides.lua
-├── highlights.lua
+~/.config/nvim/
├── init.lua
-├── mappings.lua
-├── plugins.lua
+├── lazy-lock.json
+├── LICENSE
+├── lua
+│ ├── chadrc.lua
+│ ├── configs
+│ │ ├── conform.lua
+│ │ └── lazy.lua
+│ ├── mappings.lua
+│ ├── options.lua
+│ └── plugins
+│ └── init.lua
└── README.md
```
-## :octicons-file-code-16: Аналіз структури
+Встановлена конфігурація складається з двох частин: одна частина, присвячена редактору, який залишається під контролем версій (==git==) репозиторію NvChad, і інша, присвячена налаштуванню користувача, яке виключено з контролю версій через використання ==. gitignore== файлу.
-Перший файл, який ми зустрічаємо, це файл `init.lua`, який ініціалізує конфігурацію шляхом вставки папки `lua/core` та `lua/core/utils.lua0 > (і якщо є, файли lua/custom/init.lua`) у дерево *nvim*. Запускає завантажувальну програму `lazy.nvim` (менеджер плагінів) і після завершення ініціалізує папку `plugins`.
+Після цього йде файл **lazy-lock.json**, де зберігаються всі встановлені плагіни та їхній статус щодо розробки на *GitHub*. Цей файл дозволяє синхронізувати статус редактора між інсталяціями, наявними на кількох машинах, і дозволяє користувацьким інсталяціям відтворювати потрібний статус.
-Зокрема, функція `load_mappings()` викликається для завантаження комбінацій клавіш. Крім того, функція `gen_chadrc_template()` надає підпрограму для створення папки `custom`.
+Решта конфігурації знаходиться в папці `lua` та ініціалізується, починаючи з файлу **chadrc.lua**, який у початковій версії містить лише налаштування теми редактора.<2 /> Цей файл використовується для налаштування зовнішнього вигляду редактора (==UI==) і спільний синтаксис із файлом [nvconfig.lua](https://github.com/NvChad/NvChad/blob/v2.5/lua/nvconfig.lua) плагіна **NvChad**; щоб скомпілювати його, просто скопіюйте потрібну частину файлу *nvconfig.lua* у ваш *chadrc.lua* та за потреби змініть його властивості.
-```lua
-require("core")
+Наступний файл, який використовується конфігурацією, папки будуть описані пізніше, це файл **option.lua** для налаштувань редактора, таких як відступи, спільний доступ до буфера обміну з гостьовою системою, і, що дуже важливо, включення двійкових файлів, встановлених *Mason* у шлях.
+Як і попередній, він має синтаксис [відповідного файлу](https://github.com/NvChad/NvChad/blob/v2.5/lua/nvchad/options.lua) додатка **NvChad**; для його налаштування, як зазначено вище, просто скопіюйте параметри та відредагуйте їх.
-local custom_init_path = vim.api.nvim_get_runtime_file("lua/custom/init.lua", false)[1]
+Нарешті, зустрічається файл **mapping.lua**, де можна встановити клавіші клавіатури для виклику різних функцій, які пропонує редактор. Початковий файл містить відображення клавіш для входу в режим **COMMAND**, для форматування за допомогою *conform.nvim* і ключ для виходу з режиму **INSERT**.
+Ключі використовують власний синтаксис Neovim `vim.keymap.set`, і для їх конфігурації ви можете звернутися до [відповідності за замовчуванням](https://github.com/NvChad/NvChad/blob/v2.5/lua/nvchad/mappings.lua) NvChad або альтернативно до сторінки довідки, включеної до Neovim `:h vim.keymap.set`.
-if custom_init_path then
- dofile(custom_init_path)
-end
+```lua
+require "nvchad.mappings"
-require("core.utils").load_mappings()
+-- add yours here
-local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
+local map = vim.keymap.set
--- bootstrap lazy.nvim!
-if not vim.loop.fs_stat(lazypath) then
- require("core.bootstrap").gen_chadrc_template()
- require("core.bootstrap").lazy(lazypath)
-end
+map("n", ";", ":", { desc = "CMD enter command mode" })
-vim.opt.rtp:prepend(lazypath)
-require("plugins")
+map("n", "fm", function()
+ require("conform").format()
+end, { desc = "File Format with conform" })
-dofile(vim.g.base46_cache .. "defaults")
+map("i", "jk", "", { desc = "Escape insert mode" })
```
-Включення папки `core` також призводить до включення файлу `core/init.lua`, який замінює деякі конфігурації інтерфейсу Neovim і готує до керування буфером.
+Дві папки, включені в конфігурацію `configs` і `plugins`, обидві служать для керування плагінами; персональні плагіни слід розмістити в папці `plugins`, а їх додаткові конфігурації, якщо такі є, у папці `configs`.
+Спочатку файл *plugins/init.lua* буде доступний для встановлення з додатком *conform.lua*, налаштованим у *configs/conform.lua* та *nvimtree.nvim* із опцією для декорацій, пов’язаних із *Git* у ньому.
-Як ми бачимо, кожен файл `init.lua` включено відповідно до добре встановленого порядку. Це використовується для вибіркового перевизначення різних параметрів із основних налаштувань. Загалом можна сказати, що файли `init.lua` мають функції для завантаження глобальних параметрів, autocmd або будь-чого іншого.
+!!! notes "Організація плагінів"
-Continuing with the structural analysis, we find the *lua/plugins* folder, which contains the setup of the built-in plugins and their configurations. Основні плагіни конфігурації будуть описані в наступному розділі. Як ми бачимо, папка *core/plugins* також містить файл ==init.lua==, який тут використовується для встановлення та подальшої компіляції плагінів.
+ Включення плагінів здійснюється шляхом вставлення будь-якого належним чином налаштованого файлу, наявного в папці `plugins`, це дозволяє організовувати плагіни, наприклад, за призначенням, шляхом створення окремих файлів (*utils.lua*, *editor.lua*, *markdown.lua* тощо), таким чином можна працювати над конфігурацією більш упорядковано.
-Нарешті ми знаходимо файл ==lazy-lock.json==. Цей файл дозволяє нам синхронізувати конфігурацію плагінів NvChad на кількох робочих станціях, щоб мати однакову функціональність на всіх використовуваних робочих станціях. Його функції буде краще пояснено в розділі, присвяченому менеджеру плагінів.
+Є також файли для *ліцензування* та *README.md*, скопійовані зі сховища **starter**, які можна використовувати для ілюстрації конфігурації, якщо вона підтримується у сховищі *Git*.
## :material-keyboard-outline: Основні клавіші клавіатури
-Інсталяція NvChad також вставляє в редактор набір ключів для загальних команд, їхня конфігурація міститься у файлі `lua/core/mappings.lua` і може бути змінена або розширена за допомогою файлу ` lua/custom/mappings.lua`.
-
Це виклик, який повертає основні відображення команд:
```lua
-require("core.utils").load_mappings()
+vim.schedule(function()
+ require "mappings"
+end)
```
Це встановлює чотири основні клавіші, за допомогою яких разом з іншими клавішами можна запускати команди. Основні ключі:
@@ -210,10 +225,10 @@ require("core.utils").load_mappings()
Ми будемо посилатися на ці зіставлення ключів кілька разів у цих документах.
-Ось деякі з набору ключів. Ми рекомендуємо переглянути файл, згаданий вище, щоб отримати вичерпний список.
+Відображення за замовчуванням міститься в *lua/mapping.lua* плагіна NvChad, але його можна розширити за допомогою інших спеціальних команд за допомогою власного *mappings.lua*.
`th` щоб змінити тему ++space++ + ++"t"++ + ++"h"++
`` щоб відкрити nvimtree ++ctrl++ + ++"n"++
`` щоб відкрити термінал у плаваючій вкладці ++alt++ + ++"i"++
-Існує багато попередньо встановлених комбінацій, які охоплюють усі можливості використання NvChad. Варто зупинитися, щоб проаналізувати зіставлення ключів, перш ніж почати використовувати свій екземпляр Neovim, налаштований за допомогою NvChad.
+Для вас є багато попередньо встановлених комбінацій, які охоплюють усі можливості використання NvChad. Варто зупинитися, щоб проаналізувати зіставлення ключів, перш ніж почати використовувати свій екземпляр Neovim, налаштований за допомогою NvChad.
diff --git a/docs/books/nvchad/marksman.uk.md b/docs/books/nvchad/marksman.uk.md
index e78ac8689b..5f702d1227 100644
--- a/docs/books/nvchad/marksman.uk.md
+++ b/docs/books/nvchad/marksman.uk.md
@@ -11,10 +11,6 @@ tags:
# Marksman - помічник коду
-!!! danger "Помилкові інструкції"
-
- З випуском версії 2.5 інструкції на цій сторінці більше не є правильними; його використання не рекомендується для нових установок. Для отримання додаткової інформації див. [головну сторінку посібника](../index.md).
-
Marksman є корисним інструментом під час створення вашого документа для Rocky Linux. Це дозволяє легко вводити символи, необхідні для визначення мовних тегів *markdown*. Це дозволяє писати швидше та зменшує ймовірність помилок.
NvChad/Neovim вже містить текстові віджети, які допомагають писати, наприклад, повторення часто використовуваних слів, індексованих за частотою введення. Нові параметри, включені цим мовним сервером, збагатять ці віджети.
@@ -30,7 +26,7 @@ NvChad/Neovim вже містить текстові віджети, які до
## Вимоги та навички
- Базове знання мови Markdown, рекомендовано прочитати [Посібник з Markdown](https://www.markdownguide.org/)
-- NvChad на комп’ютері, який використовується з належним чином встановленим [шаблоном Chadr](./template_chadrc.md)
+- NvChad на використовуваній машині встановлено належним чином
**Рівень складності** :star:
@@ -44,7 +40,7 @@ NvChad/Neovim вже містить текстові віджети, які до
Ця команда відкриє інтерфейс *Mason* і безпосередньо встановить потрібний мовний сервер. Після завершення двійкового встановлення ви можете закрити екран *Mason* за допомогою клавіші ++"q"++.
-Його встановлення, однак, ще не передбачає його інтеграції в редактор. Увімкніть це, відредагувавши файл `custom/configs/lspconfig.lua` *шаблону Chadrc*.
+Його встановлення, однак, ще не включає його інтеграцію в редактор. Щоб увімкнути його, його потрібно розмістити у файлі конфігурації `configs/lspconfig.lua`.
## Інтеграція в редактор
@@ -52,14 +48,12 @@ NvChad/Neovim вже містить текстові віджети, які до
Плагін [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) інтегрує мовні сервери в NvChad. Цей плагін значно спрощує їх включення в конфігурацію NvChad.
-Якщо під час інсталяції редактора ви також вибрали інсталяцію *Template Chadrc*, буде створено файл *lspoconfig.lua* у вашу папку `custom/configs`.
-
-Цей файл піклується про введення викликів, необхідних для використання мовних серверів, а також дозволяє вказати ті, які ви встановили. Щоб інтегрувати *marksman* у конфігурацію мовного сервера редактора, вам потрібно буде відредагувати рядок *локальних серверів*, додавши свій новий ЛСП.
+Файл *lspconfig.lua* піклується про введення викликів, необхідних для використання мовних серверів, а також дозволяє вказати ті, які ви встановили. Щоб інтегрувати *marksman* у конфігурацію мовного сервера редактора, вам потрібно буде відредагувати рядок *локальних серверів*, додавши свій новий ЛСП.
Відкрийте свій NvChad у файлі командою:
```bash
-nvim ~/.config/nvim/lua/custom/configs/lspconfig.lua
+nvim ~/.config/nvim/lua/configs/lspconfig.lua
```
Відредагуйте рядок *локальних серверів*, який після завершення виглядатиме так:
@@ -70,7 +64,7 @@ local servers = { "html", "cssls", "tsserver", "clangd", "marksman" }
Збережіть файл і закрийте редактор за допомогою команди `:wq`.
-Щоб перевірити, чи мовний сервер активовано правильно, відкрийте файл розмітки у своєму NvChad і скористайтеся командою `:LspInfo`, щоб переглянути мовні сервери, застосовані до цього файлу. У резюме має бути щось на зразок:
+Щоб перевірити, чи мовний сервер активовано правильно, відкрийте файл розмітки у своєму NvChad і скористайтеся командою `:LspInfo`, щоб переглянути мовні сервери, застосовані до цього файлу. В результаті має бути щось на зразок:
```text
Client: marksman (id: 2, bufnr: [11, 156])
diff --git a/docs/books/nvchad/plugins/index.uk.md b/docs/books/nvchad/plugins/index.uk.md
index 8346e443b9..8571f577b7 100644
--- a/docs/books/nvchad/plugins/index.uk.md
+++ b/docs/books/nvchad/plugins/index.uk.md
@@ -11,30 +11,72 @@ tags:
# Огляд
-!!! danger "Помилкові інструкції"
-
- З випуском версії 2.5 інструкції на цій сторінці більше не є правильними; його використання не рекомендується для нових установок. Для отримання додаткової інформації перегляньте [головну сторінку посібника](../index.md).
-
-## Вступ
+## :material-message-outline: Вступ
Спеціальна конфігурація, створена розробниками NvChad, дозволяє мати інтегроване середовище з багатьма функціями графічної IDE. Ці функції вбудовані в конфігурацію Neovim за допомогою плагінів. Ті, які вибрали для NvChad розробники, мають функцію налаштування редактора для загального використання.
Однак екосистема плагінів для Neovim набагато ширша, і завдяки їхньому використанню ви можете розширити редактор, щоб зосередитися на власних потребах.
-Сценарій, який розглядається в цьому розділі, — це створення документації для Rocky Linux, тому будуть пояснені плагіни для написання коду Markdown, керування сховищами Git та інших завдань, пов’язаних з цим.
+Сценарій, який розглядається в цьому розділі, — це створення документації для Rocky Linux, тому будуть пояснені плагіни для написання коду Markdown, керування сховищами Git та інших завдань, пов’язаних із цією метою.
-## Вимоги
+### :material-arrow-bottom-right-bold-outline: Вимоги
-- NvChad правильно встановлено в системі за допомогою «*template chadrc*»
+- NvChad правильно встановлено в системі
- Володіння командним рядком
- Активне підключення до Інтернету
-## Загальні поради щодо плагінів
+### :material-comment-processing-outline: Загальні поради щодо плагінів
-Якщо під час інсталяції NvChad ви вибрали також установити [шаблон chadrc](../template_chadrc.md), у вашій конфігурації буде ** папка ~/.config/nvim/lua/custom/**. Усі зміни для ваших плагінів слід вносити у файл **/custom/plugins.lua** у цій папці. Якщо для плагіна потрібні додаткові конфігурації, їх можна розмістити в папці **/custom/configs**.
+Конфігурація NvChad передбачає вставлення плагінів користувача з папки `lua/plugins`. Усередині нього спочатку знаходиться файл **init.lua** з інсталяцією плагіна *conform.nvim* і деякими прикладами для налаштування функціональності системи.
+Хоча ви можете розмістити власні плагіни у файлі, бажано використовувати окремі файли для конфігурацій користувача. Таким чином, ви можете використовувати початковий файл для будь-яких замін базових плагінів, у той час як ви можете організовувати свої плагіни в незалежних файлах відповідно до ваших уподобань.
-Neovim, на якому базується конфігурація NvChad, не інтегрує механізм автоматичного оновлення конфігурації з запущеним редактором. Це означає, що кожного разу, коли файл плагінів змінюється, необхідно зупинити `nvim`, а потім знову відкрити його, щоб отримати повну функціональність плагіна.
+### :material-location-enter: Вставити плагіни
+
+Конфігурація запитує папку `plugins`, і всі файли *.lua* в ній завантажуються. Це дозволяє об’єднати декілька файлів конфігурації під час завантаження з редактора.
+Щоб правильно вставити, додаткові файли повинні містити конфігурації плагінів у ==lua tables==:
+
+```lua title="lua table example"
+return {
+ { -- lua table
+ -- your plugin here
+ }, -- end lua table
+}
+```
+
+Також надається папка `configs`, куди можна ввести особливо довгі налаштування деяких плагінів або змінюваних користувачем частин, наприклад у випадку *conform.nvim*.
+
+Переходячи до практичного прикладу, припустімо, що ми хочемо включити до функціональних можливостей редактора плагін [karb94/neoscroll.nvim](https://github.com/karb94/neoscroll.nvim), який дозволяє покращити прокручування дуже довгих файлів.
+Для його створення ми можемо створити файл `plugins/editor.lua`, куди ми розмістимо всі плагіни, пов’язані з використанням редактора, або файл `plugins/neoscroll.lua` та зберігайте всі додаткові плагіни окремо.
+
+У цьому прикладі ми будемо використовувати перший варіант, тому давайте створимо файл у папці `plugins`:
-Встановлення плагіна можна виконати одразу після його розміщення у файлі, оскільки менеджер плагінів `lazy.nvim` відстежує зміни в **plugins.lua** і тому дозволяє його «живе» встановлення.
+```bash
+touch ~/.config/nvim/lua/plugins/editor.lua
+```
+
+І слідуючи інформації на сторінці проекту, ми вставляємо в неї наступний блок коду:
+
+```lua title="editor.lua"
+return {
+{
+ "karb94/neoscroll.nvim",
+ keys = { "", "" },
+ opts = { mappings = {
+ "",
+ "",
+ } },
+},
+}
+```
+
+Після збереження він буде розпізнаний конфігурацією NvChad, яка подбає про його вставлення за допомогою функцій, запропонованих обробником *lazy.nvim*.
+
+Neovim, на якому базується конфігурація NvChad, не інтегрує механізм автоматичного оновлення конфігурації з запущеним редактором. Це означає, що кожного разу, коли файл плагінів змінюється, необхідно зупинити `nvim`, а потім знову відкрити його, щоб отримати повну функціональність плагіна.

+
+## Висновки та заключні думки
+
+Існує велика екосистема плагінів для Neovim, які можна інтегрувати в NvChad. Для їхнього дослідження можна скористатися підтримкою сайту [Dotfyle](https://dotfyle.com/), який надає інформацію про плагіни та конфігурації для Neovim, або [Neovimcraft](https://neovimcraft.com/), який фокусується лише на доступних плагінах. Обидва надають чудову загальну інформацію про плагіни та посилання на відповідні проекти на GitHub.
+
+Введення нової функції пошуку плагінів, яка була присутня з версії 2.5, дає змогу впорядковувати плагіни користувачів дуже ефективним способом із можливістю налаштування. У складній конфігурації це дозволяє окремо керувати плагінами, які потребують спеціальних конфігурацій (код lua або autocmds), що значно спрощує керування ними.
diff --git a/docs/books/nvchad/plugins/md_preview.uk.md b/docs/books/nvchad/plugins/md_preview.uk.md
index 8f2df2a7c2..b6ab1d6f24 100644
--- a/docs/books/nvchad/plugins/md_preview.uk.md
+++ b/docs/books/nvchad/plugins/md_preview.uk.md
@@ -11,10 +11,6 @@ tags:
# Огляд Markdown
-!!! danger "Помилкові інструкції"
-
- З випуском версії 2.5 інструкції на цій сторінці більше не є правильними; його використання не рекомендується для нових установок. Для отримання додаткової інформації перегляньте [головну сторінку посібника](../index.md).
-
## Вступ
Однією з особливостей мови Markdown, яка робить її широко використовуваною для написання технічної документації, є її конвертованість. Код можна конвертувати для відображення в багатьох форматах (HTML, PDF, звичайний текст тощо), завдяки чому вміст можна використовувати в багатьох сценаріях.
@@ -23,19 +19,23 @@ tags:
Під час написання вашої документації для Rocky Linux виникає проблема перевірки її правильного відображення під час перетворення на код `HTML`.
-Щоб інтегрувати цю функцію у ваш редактор, скористайтеся двома плагінами, доступними для цієї мети, [toppair/peek.nvim](https://github.com/toppair/peek.nvim) і [markdown-preview.nvim](https://github.com/iamcco/markdown-preview.nvim), як буде показано на цій сторінці. Обидва вони підтримують *github-style*, вибір браузера для попереднього перегляду та синхронізоване прокручування з редактором.
+Щоб інтегрувати цю функцію у ваш редактор, на цій сторінці буде показано два плагіни, доступні для цієї мети, [toppair/peek.nvim](https://github.com/toppair/peek.nvim) і [markdown-preview.nvim](https://github.com/iamcco/markdown-preview.nvim). Обидва вони підтримують *github-style*, вибір браузера для попереднього перегляду та синхронізоване прокручування з редактором.
### Peek.nvim
[Peek](https://github.com/toppair/peek.nvim) використовує [Deno](https://deno.com/manual) JavaScript, Середовище виконання TypeScript і WebAssembly із безпечними налаштуваннями за замовчуванням для його роботи. За замовчуванням Deno не дозволяє доступ до файлів, мережі чи середовища, якщо це явно не ввімкнено.
-Якщо ви також встановили [шаблон Chadrc](../template_chadrc.md), цей компонент уже буде доступним, оскільки це один із мовних серверів, установлених за умовчанням. Якщо його ще немає в редакторі, ви можете встановити його за допомогою команди `:MasonInstall deno`.
+Для встановлення мовного сервера в конфігурації редактора використовується плагін *mason.nvim*, який надає команду `:MasonInstall`, команду, яка дозволяє автоматично включати та налаштовувати *Deno*.
+
+```text
+:MasonInstall deno
+```
!!! Warning "Увага"
Мовний сервер **необхідно** встановити перед тим, як продовжити встановлення плагіна. В іншому випадку інсталяція завершиться невдачею, і буде необхідно видалити код із **/custom/plugins.lua**, виконайте очищення конфігурації, відкривши `Lazy` і ввівши ++"X"++, щоб видалити плагін, а потім повторіть процедуру встановлення.
-Щоб установити плагін, вам потрібно буде відредагувати файл **/custom/plugins.lua**, додавши наступний блок коду:
+Щоб установити плагін, вам доведеться відредагувати файл **plugins/init.lua**, додавши наступний блок коду:
```lua
{
@@ -83,7 +83,7 @@ opts = { theme = "dark", app = "browser" },
[Markdown-preview.nvim](https://github.com/iamcco/markdown-preview.nvim) — це плагін, написаний на `node.js` (JavaScript). Його встановлення на NvChad не вимагає жодних залежностей, оскільки розробники надають попередньо скомпільовану версію, яка ідеально працює в редакторі.
-Щоб установити цю версію, вам потрібно буде додати цей блок коду до вашого **/custom/plugins.lua**:
+Щоб установити цю версію, вам потрібно буде додати цей блок коду до вашого **plugins/init.lua**:
```lua
{
@@ -125,16 +125,12 @@ vim.g.mkdp_browser = "/usr/bin/chromium-browser"
Таким чином, під час наступного відкриття NvChad `chromium-browser` використовуватиметься незалежно від браузера системи за замовчуванням.
-Конфігурація також надає команди `:MarkdownPreview` і `:MarkdownPreviewStop` для відкриття та закриття попереднього перегляду відповідно. Для швидшого доступу до команд ви можете відобразити їх у файлі **/custom/mapping.lua** наступним чином:
+Конфігурація також надає команди `:MarkdownPreview` і `:MarkdownPreviewStop` для відкриття та закриття попереднього перегляду відповідно. Для швидшого доступу до команд ви можете відобразити їх у файлі **mapping.lua** таким чином:
```lua
--- binding for Markdown Preview
-M.mdpreview = {
- n = {
- ["mp"] = { " MarkdownPreview", "Open Preview" },
- ["mc"] = { " MarkdownPreviewStop", "Close Preview" },
- },
-}
+-- mapping for Markdown Preview
+map("n", "mp", " MarkdownPreview", { desc = "Open Preview" })
+map("n", "mc", " MarkdownPreviewStop", { desc = "Close Preview" })
```
Це дозволить вам відкрити попередній перегляд розмітки, ввівши ++enter++ + ++"m"++, після чого ++"p"++, і закрити його комбінацією ++enter++ + ++"m"++, після чого ++"c"++.
diff --git a/docs/books/nvchad/plugins/projectmgr.uk.md b/docs/books/nvchad/plugins/projectmgr.uk.md
index 03b640a635..5f72e413aa 100644
--- a/docs/books/nvchad/plugins/projectmgr.uk.md
+++ b/docs/books/nvchad/plugins/projectmgr.uk.md
@@ -13,10 +13,6 @@ tags:
## Вступ
-!!! danger "Помилкові інструкції"
-
- З випуском версії 2.5 інструкції на цій сторінці більше не є правильними; його використання не рекомендується для нових установок. Для отримання додаткової інформації перегляньте [головну сторінку посібника](../index.md).
-
Однією з особливостей, яку обов’язково має мати IDE, є можливість керувати різними проектами, над якими працює розробник або видавець. Можливість вибрати проект для роботи, коли NvChad відкрито, без необхідності вводити команди в *рядку стану* для досягнення мети. Це економить час і дозволяє спростити управління у випадку великої кількості проектів.
Використання [charludo/projectmgr.nvim](https://github.com/charludo/projectmgr.nvim) інтегрує цю функцію. Плагін забезпечує чудову інтеграцію з `Telescope` та деякими цікавими додатковими функціями, такими як можливість синхронізувати репозиторій *git* під час відкриття *проекту*.
@@ -25,7 +21,7 @@ tags:
### Установка плагіна
-Щоб установити плагін, вам потрібно буде відредагувати файл **custom/plugins.lua**, додавши наступний блок коду:
+Щоб установити плагін, вам потрібно буде відредагувати файл **plugins/init.lua**, додавши такий блок коду:
```lua
{
@@ -145,15 +141,11 @@ session = { enabled = true, file = "Session.vim" },
### Маппінг
-Щоб пришвидшити відкриття ваших проектів, ви можете створити комбінацію клавіш для розміщення маппінгу в **/custom/mapping.lua**. Прикладом може бути:
+Щоб пришвидшити відкриття ваших проектів, ви можете створити комбінацію клавіш для розміщення свого відображення в **mapping.lua**. Прикладом може бути:
```lua
-- Projects
-M.projects = {
- n = {
- ["fp"] = { " ProjectMgr", "Open Projects" },
- },
-}
+map("n", "fp", " ProjectMgr", { desc = "Open Projects" })
```
З редактором у стані **NORMAL** ви можете відкрити менеджер проектів за допомогою комбінації ++space++ + ++"f"++ і ++"p"++.
diff --git a/docs/books/nvchad/vale_nvchad.uk.md b/docs/books/nvchad/vale_nvchad.uk.md
index 96cb8c85df..31f207cc25 100644
--- a/docs/books/nvchad/vale_nvchad.uk.md
+++ b/docs/books/nvchad/vale_nvchad.uk.md
@@ -9,10 +9,6 @@ tags:
# `vale` в NvChad (Neovim)
-!!! danger "Помилкові інструкції"
-
- З випуском версії 2.5 інструкції на цій сторінці більше не є правильними; його використання не рекомендується для нових установок. Для отримання додаткової інформації перегляньте [головну сторінку посібника](../index.md).
-
## :material-message-outline: Вступ
`vale.sh` є одним із найкращих проектів із відкритим кодом для технічних авторів, які хочуть покращити свій голос і послідовність стилю. Його можна використовувати з низкою редакторів майже на всіх основних платформах ОС (Linux, MacOS, Windows). Ви можете дізнатися більше про проект, перейшовши на [веб-сайт vale.sh](https://vale.sh/). Цей посібник допоможе вам додати `vale` до NvChad. Оскільки він включений до пакетів Mason для встановлення, процес не є надто складним, хоча він вимагає незначного редагування та налаштування, щоб розпочати роботу. Щоб було зрозуміло, NvChad насправді є менеджером конфігурації для редактора Neovim, тому з цього моменту посиланням буде `nvim`.
@@ -27,7 +23,7 @@ tags:
Плагін [nvim-lint](https://github.com/mfussenegger/nvim-lint) забезпечує підтримку вставки ==linters== у редактор шляхом виправлення коду або вмісту як для синтаксичної, так і для семантичної частин.
-Щоб установити плагін, потрібно відредагувати файл `custom/plugins.lua`, додавши такий блок коду:
+Щоб установити плагін, потрібно відредагувати файл `lua/plugins/init.lua`, додавши наступний блок коду:
```lua title="plugins.lua"
{
@@ -39,7 +35,7 @@ tags:
},
```
-Плагін має файл конфігурації, який потрібно розмістити в папці `custom/configs`. Усередині нього є таблиця ==linters_by_ft==, де ви можете ввести *лінтери* для мов, які використовуються для розробки.
+Плагін має файл конфігурації, який потрібно розмістити в папці `lua/configs`. Усередині нього є таблиця ==linters_by_ft==, де ви можете ввести *лінтери* для мов, які використовуються для розробки.
```lua title="lint.lua"
require("lint").linters_by_ft = {
@@ -129,7 +125,7 @@ vim.api.nvim_create_autocmd({ "BufWritePost" }, {
### :material-file-edit-outline: Зміна файлу `lint.lua`
-Потрібен ще один останній крок. Вам потрібно змінити файл `lint.lua`, знайдений у `~/.config/nvim/lua/custom/configs/`, і додати лінтер `vale`.
+Потрібен ще один останній крок. Вам потрібно змінити файл `lint.lua`, який знаходиться в `~/.config/nvim/lua/configs/`, і додати лінкер `vale`.
Використовуючи наведений вище приклад для додавання *vale* до лінтера, доступного для файлів розмітки, потрібно буде додати новий лінтер до вже наявного рядка:
diff --git a/docs/desktop/gnome/gnome-tweaks.uk.md b/docs/desktop/gnome/gnome-tweaks.uk.md
index 8f16f1f3cf..1d775fe0f2 100644
--- a/docs/desktop/gnome/gnome-tweaks.uk.md
+++ b/docs/desktop/gnome/gnome-tweaks.uk.md
@@ -1,7 +1,7 @@
---
title: GNOME Tweaks
author: Steven Spencer
-contributors: null
+contributors: Ganna Zhyrnova
---
## Вступ
@@ -24,48 +24,54 @@ sudo dnf install gnome-tweaks
## Екрани та функції
+
+
Щоб запустити Tweaks, у меню «Дії» введіть «tweaks» і натисніть «Tweaks».
-
+
+
+
_General_ дозволяє змінювати типову поведінку анімації, призупинення та надмірне посилення.
-
+
_Appearance_ дозволяє змінювати параметри теми за замовчуванням, а також зображення фону та екрана блокування.
-
+
_Fonts_ дозволяють змінювати стандартні шрифти та розміри.
-
+
_Keyboard & Mouse_ дозволяє змінити поведінку клавіатури та миші за замовчуванням.
-
+
Якщо у вас є програми, які потрібно запускати під час запуску оболонки GNOME, ви можете налаштувати їх у _Startup Applications_.
-
+
Налаштуйте параметри _Top Bar_ - годинник, календар, батарея.
-
+
_Window Titlebars_ дозволяє змінювати типову поведінку заголовків.
-
+
_Windows_ дозволяє змінювати поведінку вікон за замовчуванням.
-
+
_Workspaces_ дозволяють змінювати спосіб створення робочих областей (динамічно чи статично) і спосіб їх відображення.
+
+
!!! note "Примітка"
```
-Ви можете скинути все назад до значень за замовчуванням за допомогою меню з трьома смужками біля пункту «Налаштування» в лівому куті.
+Ви можете скинути все назад до значень за замовчуванням за допомогою меню з трьома смужками біля пункту «Tweaks» в лівому куті.
```
## Висновок
diff --git a/docs/guides/communications/asterisk_installation.uk.md b/docs/guides/communications/asterisk_installation.uk.md
index 226830dce5..feaec4ff96 100644
--- a/docs/guides/communications/asterisk_installation.uk.md
+++ b/docs/guides/communications/asterisk_installation.uk.md
@@ -26,13 +26,13 @@ Asterisk є безкоштовним і відкритим вихідним ко
Для виконання цього посібника вам знадобляться як мінімум наступні навички та інструменти:
-* Машина під керуванням Rocky Linux.
-* Рівень комфорту зі зміною файлів конфігурації та видачею команд із командного рядка
-* Знання того, як користуватися редактором командного рядка (тут ми використовуємо `vi`, але можете замінити його на свій улюблений редактор.)
-* Вам потрібен доступ root і, в ідеалі, увійдіть як користувач root у вашому терміналі
-* Репозиторії EPEL від Fedora
-* Можливість входити як root або виконувати команди root за допомогою `sudo`. Усі команди тут припускають користувача з правами `sudo`. Однак процеси конфігурації та збирання виконуються за допомогою `sudo -s`.
-* Щоб отримати останню збірку Asterisk, вам потрібно буде використовувати `curl` або `wget`. У цьому посібнику використовується `wget`, але не соромтеся замінити відповідний рядок `curl`, якщо ви хочете його використовувати.
+- Машина під керуванням Rocky Linux.
+- Рівень комфорту зі зміною файлів конфігурації та видачею команд із командного рядка
+- Знання того, як користуватися редактором командного рядка (тут ми використовуємо `vi`, але можете замінити його на свій улюблений редактор.)
+- Вам потрібен доступ root і, в ідеалі, увійдіть як користувач root у вашому терміналі
+- Репозиторії EPEL від Fedora
+- Можливість входити як root або виконувати команди root за допомогою `sudo`. Усі команди тут припускають користувача з правами `sudo`. Однак процеси конфігурації та збирання виконуються за допомогою `sudo -s`.
+- Щоб отримати останню збірку Asterisk, вам потрібно буде використовувати `curl` або `wget`. У цьому посібнику використовується `wget`, але не соромтеся замінити відповідний рядок `curl`, якщо ви хочете його використовувати.
## Оновлення Rocky Linux і встановлення `wget`
diff --git a/docs/guides/containers/lxd_web_servers.uk.md b/docs/guides/containers/lxd_web_servers.uk.md
index 981403b762..75714d8187 100644
--- a/docs/guides/containers/lxd_web_servers.uk.md
+++ b/docs/guides/containers/lxd_web_servers.uk.md
@@ -118,25 +118,25 @@ lxd init
Ось запитання та наші відповіді щодо сценарію з невеликими поясненнями, де це необхідно:
-```
+```text
Would you like to use LXD clustering? (Бажаєте використовувати кластеризацію LXD?) (yes/no) [default=no]:
```
Якщо вас цікавить кластеризація, проведіть додаткові дослідження з цього приводу [тут](https://documentation.ubuntu.com/lxd/en/latest/clustering/). В іншому випадку просто натисніть «Enter», щоб прийняти параметр за замовчуванням.
-```
+```text
Do you want to configure a new storage pool? (Бажаєте налаштувати новий пул зберігання?) (yes/no) [default=yes]:
```
Прийміть значення за замовчуванням.
-```
+```text
Ім’я нового пулу сховищ [default=default]: server-storage
```
Виберіть назву для свого пулу зберігання. Мені подобається називати його на честь сервера, на якому працює LXD. (Пул зберігання — це, по суті, встановлений обсяг місця на жорсткому диску, відведений для ваших контейнерів.)
-```
+```text
Ім’я сховища для використання (btrfs, dir, lvm, zfs, ceph) [за замовчуванням=zfs]: lvm
```
@@ -144,25 +144,25 @@ Do you want to configure a new storage pool? (Бажаєте налаштува
У віртуальному середовищі я виявив, що «LVM» працює добре, і я зазвичай його використовую. Ви можете прийняти значення за замовчуванням у наступному питанні.
-```
+```text
Create a new LVM pool? (Створити новий пул LVM?) (yes/no) [default=yes]:
```
Якщо у вас є певний жорсткий диск або розділ, який ви хочете використовувати для всього пулу сховищ, напишіть «так». Якщо ви робите все це на VPS, вам, ймовірно, *доведеться* вибрати «ні».
-```
-`Would you like to use an existing empty block device (e.g. a disk or partition)? (`Чи бажаєте ви використовувати наявний порожній блочний пристрій (наприклад, диск або розділ)? (yes/no) [default=no]:`
+```text
+Would you like to use an existing empty block device (e.g. a disk or partition)? (`Чи бажаєте ви використовувати наявний порожній блочний пристрій (наприклад, диск або розділ)? (yes/no) [default=no]:`
```
Metal As A Service (MAAS) виходить за рамки цього документа. Прийміть для цього значення за замовчуванням.
-```
+```text
Would you like to connect to a MAAS server? (Бажаєте підключитися до сервера MAAS?) (yes/no) [default=no]:
```
І більше за замовчуванням. Це все добре.
-```
+```text
Would you like to create a new local network bridge? (Бажаєте створити новий міст локальної мережі?) (yes/no) [default=yes]:
What should the new bridge be called? (Як мав би називатися новий міст?) [default=lxdbr0]: `
@@ -172,19 +172,19 @@ What IPv4 address should be used? (Яку адресу IPv4 слід викор
Якщо ви хочете використовувати IPv6 у своїх контейнерах LXD, ви можете ввімкнути цей наступний параметр. Це вирішувати вам, але здебільшого вам це не потрібно.
-```
+```text
What IPv6 address should be used? (Яку адресу IPv6 слід використовувати?) (Позначення підмережі CIDR, «auto» або «none») [за замовчуванням=auto]:
```
Це необхідно для легкого резервного копіювання сервера та може дозволити вам керувати встановленням LXD з інших комп’ютерів. Якщо вам все це подобається, дайте відповідь «так».
-```
+```text
Would you like the LXD server to be available over the network? (Бажаєте, щоб сервер LXD був доступний через мережу?) (yes/no) [default=no]: yes
```
Якщо ви відповіли «так» на останні запитання, введіть значення за замовчуванням тут:
-```
+```text
Address to bind LXD to (not including port) [default=all]: (Адреса для прив’язки LXD (без порту) [за замовчуванням=all]:
Port to bind LXD to [default=8443]: (Порт для прив’язки LXD до)
@@ -192,7 +192,7 @@ Port to bind LXD to [default=8443]: (Порт для прив’язки LXD д
Тепер вас попросять ввести пароль довіри. Таким чином ви будете підключатися до хост-сервера LXC з інших комп’ютерів і серверів, тому встановіть для цього те, що має сенс у вашому середовищі. Збережіть цей пароль у безпечному місці, наприклад у менеджері паролів.
-```
+```text
Trust password for new clients: (Пароль довіри для нових клієнтів:)
Again: (Повторіть)
@@ -200,7 +200,7 @@ Again: (Повторіть)
А потім продовжуйте використовувати значення за замовчуванням з цього моменту:
-```
+```text
Would you like stale cached images to be updated automatically? (Бажаєте, щоб застарілі кешовані зображення оновлювалися автоматично?) (yes/no) [default=yes]
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]:
@@ -208,7 +208,7 @@ Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]:
#### Налаштування прав користувача
-Перш ніж продовжити, нам потрібно створити нашого користувача «lxdadmin» і переконатися, що він має необхідні привілеї. Нам потрібен користувач «lxdadmin», щоб він міг використовувати _sudo_ для доступу до кореневих команд, і він має бути членом групи «lxd». Щоб додати користувача та переконатися, що він є членом обох груп, виконайте:
+Перш ніж продовжити, нам потрібно створити нашого користувача «lxdadmin» і переконатися, що він має необхідні привілеї. Нам потрібен користувач «lxdadmin», щоб він міг використовувати *sudo* для доступу до кореневих команд, і він має бути членом групи «lxd». Щоб додати користувача та переконатися, що він є членом обох груп, виконайте:
```bash
useradd -G wheel,lxd lxdadmin
@@ -496,7 +496,7 @@ lxc delete my-container
lxc delete my-container --force
```
-Тепер, завдяки завершенню табуляції, помилці користувача та тому, що «d» стоїть поруч із «s» на більшості клавіатур, ви можете випадково видалити контейнери.
+Тепер, завдяки ++tab++ -command-completion, помилці користувача та тому, що ++d++ стоїть поруч із ++s++ на більшості клавіатур, ви можете випадково видалити контейнери.
Щоб захиститися від цього, ви можете встановити будь-який контейнер як «захищений» (щоб зробити процес їх видалення займати додатковий крок) за допомогою цієї команди:
@@ -588,7 +588,7 @@ nano /etc/httpd/conf.d/real-ip.conf
І додайте до нього цей текст:
-```
+```bash
RemoteIPHeader X-Real-IP
RemoteIPTrustedProxy proxy-server.lxd
```
@@ -748,7 +748,7 @@ nano /etc/nginx/conf.d/apache-server.conf
Потім вставте цей тест, змініть доменне ім’я за потреби та збережіть його:
-```
+```apache
upstream apache-server {
server apache-server.lxd:80;
}
@@ -772,12 +772,12 @@ server {
Давайте трохи розберемо це:
-* Розділ `upstream` точно визначає, куди зворотний проксі надсилатиме весь свій трафік. Зокрема, він надсилає трафік до внутрішнього доменного імені контейнера «apache-server»: `apache-server.lxd`.
-* Два рядки, які починаються з `listen`, повідомляють серверу прослуховувати трафік, який надходить на порт 80 за допомогою протоколу проксі. Перший через IPv4, а другий через IPv6.
-* Функція `server_name` приймає весь трафік, який надходить спеціально до "apache.server.test", і направляє його через зворотний проксі.
-* Функція `proxy-pass` — це частина, яка фактично спрямовує весь трафік, отриманий змінною `server_name`, і надсилає його на сервер, визначений у розділі `upstream`.
-* Очевидно, що функція `proxy_redirect` може заважати зворотним проксі-серверам, тому ми переконалися, що її вимкнено.
-* Усі параметри `proxy-set-header` надсилають на веб-сервер таку інформацію, як IP-адреса користувача тощо.
+1. Розділ `upstream` точно визначає, куди зворотний проксі збирається надсилати весь свій трафік. Зокрема, він надсилає трафік до внутрішнього доменного імені контейнера "apache-server": `apache-server.lxd`.
+2. Два рядки, які починаються з `listen`, повідомляють серверу прослуховувати трафік, який надходить на порт 80 за допомогою протоколу проксі. Перший через IPv4, а другий через IPv6.
+3. Функція `server_name` приймає весь трафік, який надходить спеціально до "apache.server.test", і направляє його через зворотний проксі.
+4. Функція `proxy-pass` — це частина, яка фактично спрямовує весь трафік, отриманий змінною `server_name`, і надсилає його на сервер, визначений у `upstream` розділ.
+5. Очевидно, що функція `proxy_redirect` може заважати зворотним проксі-серверам, тому ми переконалися, що її вимкнено.
+6. Усі параметри `proxy-set-header` надсилають на веб-сервер таку інформацію, як IP-адреса користувача тощо.
!!! warning "Важливо"
@@ -794,6 +794,7 @@ server {
Ви можете називати конфігураційні файли як завгодно. Я використовую спрощені імена для навчальних посібників, але деякі системні адміністратори рекомендують імена на основі фактичного домену, але навпаки. Це організація в алфавітному порядку.
Наприклад, "apache.server.test" отримає файл конфігурації з назвою "test.server.apache.conf".
+
#### Спрямування трафіку на сервер Nginx
Просто повторіть процес. Створіть файл, як і раніше:
@@ -804,7 +805,7 @@ nano /etc/nginx/conf.d/nginx-server.conf
Додайте відповідний текст:
-```
+```nginx
upstream nginx-server {
server rocky-nginx.lxd:80;
}
@@ -841,6 +842,7 @@ lxc exec apache-server systemctl restart httpd && lxc exec nginx-server restart
Це застосує створені нами файли «real-ip.conf» до відповідних конфігурацій сервера.
#### Отримання SSL сертифікатів для ваших сайтів
+
Отримати офіційні належні сертифікати SSL найпростіше за допомогою Let's Encrypt і невеликої програми під назвою certbot. certbot автоматично виявить ваші веб-сайти, отримає для них сертифікати SSL і налаштує самі сайти. Він навіть оновлюватиме сертифікати кожні 30 днів або близько того, без будь-якого втручання з вашого боку чи завдань cron.
Це все потрібно робити з контейнера «проксі-сервер», тому увійдіть у цю оболонку. Опинившись там, встановіть репозиторії EPEL так само, як ви робили на хості. Спочатку переконайтеся, що контейнер оновлено:
@@ -871,7 +873,7 @@ Certbot прочитає вашу конфігурацію Nginx і з’ясу
Найважливіші питання полягають у наступному. Введіть адресу електронної пошти, коли побачите це:
-```
+```bash
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel):
@@ -879,7 +881,7 @@ Enter email address (used for urgent renewal and security notices)
Тут ви можете вибрати, які веб-сайти отримають сертифікати. Просто натисніть Enter, щоб отримати сертифікати для всіх них.
-```
+```text
Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: apache.server.test
@@ -892,14 +894,14 @@ Which names would you like to activate HTTPS for?
Перейдіть до файлів `apache-server.conf` і `nginx-server.conf` і знайдіть такі два рядки:
-```
+```bash
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
```
Так, у них відсутній параметр `proxy_protocol`, і це погано. Додайте його.
-```
+```bash
listen proxy_protocol [::]:443 ssl ipv6only=on; # managed by Certbot
listen proxy_protocol 443 ssl; # managed by Certbot
```
@@ -908,8 +910,8 @@ listen proxy_protocol 443 ssl; # managed by Certbot
## Примітки
-1. У цьому підручнику я мало згадував налаштування фактичних веб-серверів. Найменше, що вам слід зробити під час виробництва, це змінити доменні імена у файлах конфігурації сервера у фактичних контейнерах веб-сервера, а не лише в контейнері проксі. І, можливо, налаштуйте користувача веб-сервера в кожному.
-2. Якщо ви хочете дізнатися більше про керування сертифікатами SSL і конфігураціями SSL-сервера вручну, перегляньте [наш посібник із встановлення certbot і генерації сертифікатів SSL](../security/generating_ssl_keys_lets_encrypt.md).
+1. У цьому підручнику я мало згадував налаштування фактичних веб-серверів. Найменше, що вам слід зробити під час виробництва, це змінити імена доменів у файлах конфігурації сервера у фактичних контейнерах веб-сервера, а не лише в контейнері проксі. І, можливо, налаштуйте користувача веб-сервера в кожному.
+2. Якщо ви хочете дізнатися більше про керування сертифікатами SSL і налаштуваннями SSL-сервера вручну, ознайомтеся з [нашим посібником із встановлення certbot і створення сертифікатів SSL](../security/generating_ssl_keys_lets_encrypt.md).
3. Такі програми, як Nextcloud, вимагатимуть додаткової конфігурації (з міркувань безпеки), якщо ви помістите їх у контейнер LXD за проксі.
## Висновок
diff --git a/docs/guides/containers/podman-nextcloud.uk.md b/docs/guides/containers/podman-nextcloud.uk.md
index ef26c5d4f5..6d1049f147 100644
--- a/docs/guides/containers/podman-nextcloud.uk.md
+++ b/docs/guides/containers/podman-nextcloud.uk.md
@@ -37,13 +37,13 @@ tags:
Ось усе, що вам знадобиться або потрібно знати, щоб цей посібник працював:
-* Знайомство з командним рядком, сценаріями bash та редагуванням конфігураційних файлів Linux.
-* Доступ SSH при роботі на віддаленій машині.
-* Текстовий редактор на основі командного рядка на ваш вибір. Для цього посібника ми будемо використовувати `vi`.
-* Підключена до Інтернету машина Rocky Linux (Raspberry Pi чудово працюватиме).
-* Багато з цих команд потрібно запускати від імені користувача root, тому на машині вам знадобиться користувач із підтримкою root або sudo.
-* Знайомство з веб-серверами та MariaDB точно допоможе.
-* Знайомство з контейнерами та, можливо, Docker було б *безсумнівним* плюсом, але це не обов’язково.
+- Знайомство з командним рядком, сценаріями bash та редагуванням конфігураційних файлів Linux.
+- Доступ SSH при роботі на віддаленій машині.
+- Текстовий редактор на основі командного рядка на ваш вибір. Для цього посібника ми будемо використовувати `vi`.
+- Підключена до Інтернету машина Rocky Linux (Raspberry Pi чудово працюватиме).
+- Багато з цих команд потрібно запускати від імені користувача root, тому на машині вам знадобиться користувач із підтримкою root або sudo.
+- Знайомство з веб-серверами та MariaDB точно допоможе.
+- Знайомство з контейнерами та, можливо, Docker було б *безсумнівним* плюсом, але це не обов’язково.
## Крок 01. Встановіть `podman` і `buildah`
@@ -75,7 +75,7 @@ vi /etc/containers/registries.conf
Знайдіть розділ, схожий на те, що ви бачите нижче. Якщо він закоментований, розкоментуйте його.
-```
+```bash
[registries.insecure]
registries = ['registry.access.redhat.com', 'registry.redhat.io', 'docker.io']
insecure = true
@@ -109,7 +109,7 @@ vi Dockerfile
Скопіюйте та вставте наступний текст у свій новий DockerFile.
-```
+```docker
FROM rockylinux/rockylinux:latest
ENV container docker
RUN yum -y install epel-release ; yum -y update
@@ -137,7 +137,7 @@ vi build.sh
Потім вставте цей вміст:
-```
+```bash
#!/bin/bash
clear
buildah rmi `buildah images -q base` ;
@@ -163,10 +163,10 @@ chmod +x build.sh
Для цілей цього посібника ми зробимо налаштування бази даних максимально простими. Ви захочете відстежувати наступне та змінювати їх за потреби:
-* Ім'я бази даних: ncdb
-* Користувач бази даних: nc-user
-* Перехід бази даних: nc-pass
-* IP-адреса вашого сервера (ми будемо використовувати приклад IP-адреси нижче)
+- Ім'я бази даних: ncdb
+- Користувач бази даних: nc-user
+- Перехід бази даних: nc-pass
+- IP-адреса вашого сервера (ми будемо використовувати приклад IP-адреси нижче)
Спочатку перейдіть до папки, де ви будете створювати образ db-tools:
@@ -182,7 +182,7 @@ vi db-create.sh
Тепер скопіюйте та вставте наступний код у цей файл за допомогою вашого улюбленого текстового редактора:
-```
+```bash
#!/bin/bash
mysql -h 10.1.1.160 -u root -p rockylinux << eof
create database ncdb;
@@ -199,7 +199,7 @@ vi db-drop.sh
Скопіюйте та вставте цей код у новий файл:
-```
+```bash
#!/bin/bash
mysql -h 10.1.1.160 -u root -p rockylinux << eof
drop database ncdb;
@@ -215,7 +215,7 @@ vi Dockerfile
Копіювати і вставити:
-```
+```docker
FROM localhost/base
RUN yum -y install mysql
WORKDIR /root
@@ -231,7 +231,7 @@ vi build.sh
Код, який вам потрібен:
-```
+```bash
#!/bin/bash
clear
buildah rmi `buildah images -q db-tools` ;
@@ -271,7 +271,7 @@ vi db-init.sh
Для цілей цього посібника наступний сценарій видалить усі томи Podman. Якщо у вас є інші програми, що працюють із власними томами, змініть/закоментуйте рядок «podman volume rm --all»;
-```
+```bash
#!/bin/bash
clear
echo " "
@@ -302,7 +302,7 @@ vi db-reset.sh
А ось код:
-```
+```bash
#!/bin/bash
clear
echo " "
@@ -322,7 +322,7 @@ vi build.sh
З його кодом:
-```
+```bash
#!/bin/bash
clear
buildah rmi `buildah images -q mariadb` ;
@@ -332,7 +332,7 @@ buildah images -a
Тепер просто створіть свій DockferFile (`vi Dockerfile`) і вставте такий один рядок:
-```
+```docker
FROM arm64v8/mariadb
```
@@ -364,7 +364,7 @@ vi Dockerfile
І вставте цей фрагмент:
-```
+```docker
FROM arm64v8/nextcloud
```
@@ -376,7 +376,7 @@ vi build.sh
І вставте цей код:
-```
+```bash
#!/bin/bash
clear
buildah rmi `buildah images -q nextcloud` ;
@@ -398,7 +398,7 @@ vi run.sh
І ось увесь необхідний для цього код. Переконайтеся, що ви змінили IP-адресу `MYSQL_HOST` на контейнер докерів, у якому запущено ваш екземпляр MariaDB.
-```
+```bash
#!/bin/bash
clear
echo " "
@@ -430,7 +430,7 @@ chmod +x *.sh
Щоб переконатися, що всі ваші зображення створено правильно, запустіть `podman images`. Ви повинні побачити список, який виглядає так:
-```
+```bash
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost/db-tools latest 8f7ccb04ecab 6 days ago 557 MB
localhost/base latest 03ae68ad2271 6 days ago 465 MB
@@ -446,13 +446,13 @@ docker.io/arm64v8/nextcloud latest 579a44c1dc98 3 weeks ago 945 MB
Коли ви запускаєте `podman ps -a`, ви повинні побачити список запущених контейнерів, який виглядає так:
-```
+```bash
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9518756a259a docker.io/arm64v8/mariadb:latest mariadbd 3 minutes ago Up 3 minutes ago mariadb
32534e5a5890 docker.io/arm64v8/nextcloud:latest apache2-foregroun... 12 seconds ago Up 12 seconds ago nextcloud
```
-Звідти ви зможете вказати свій браузер на IP-адресу вашого сервера. Якщо ви дотримуєтесь і маєте ту саму IP-адресу, що й у нашому прикладі, ви можете замінити її тут (наприклад, http://your-server-ip) і побачити, як Nextcloud працює.
+Звідти ви зможете вказати свій браузер на IP-адресу вашого сервера. Якщо ви дотримуєтесь і маєте ту саму IP-адресу, що й у нашому прикладі, ви можете замінити її тут (наприклад, ) і побачити, як Nextcloud працює.
## Висновок
diff --git a/docs/guides/contribute/createnew.uk.md b/docs/guides/contribute/createnew.uk.md
index 5bf8c85155..57d4e47f5b 100644
--- a/docs/guides/contribute/createnew.uk.md
+++ b/docs/guides/contribute/createnew.uk.md
@@ -9,40 +9,56 @@ tags:
# Як створити новий документ у GitHub
-_Коли ви будете готові подати оригінальну письмову документацію на затвердження, виконайте наступні кроки:_
-
+*Коли ви будете готові подати оригінальну письмову документацію на затвердження, виконайте наступні кроки:*
## З графічним інтерфейсом GitHub
Ви можете виконувати майже всі завдання з веб-інтерфейсу на GitHub. Ось приклад додавання файлу, який ви створили на локальній машині, до сховища документації Rocky Linux на GitHub.
-
-
1. Увійдіть у свій обліковий запис GitHub.
-2. Перейдіть до сховища документації Rocky Linux за адресою [https://github.com/rocky-linux/documentation](https://github.com/rocky-linux/documentation).
+2. Перейдіть до сховища документації Rocky Linux за адресою .
3. Ви маєте бути на гілці «Головна», тому перевірте мітку спадного меню в середній частині, щоб переконатися, що ви є. Ваш документ може не потрапити в гілку «Основна», але адміністратори пізніше перемістять його туди, де він логічно підходить.
-4. У правій частині сторінки натисніть кнопку «Fork», яка створить вашу копію документації.
-5. Посередині сторінки розгалуженої копії, ліворуч від зеленого спадного меню «Code», є кнопка «Add file». Натисніть це та виберіть опцію «Upload files».
+4. У правій частині сторінки натисніть кнопку ++"Fork"++, яка створить вашу копію документації.
+5. Посередині сторінки розгалуженої копії, ліворуч від зеленого спадного меню «Code», є кнопка ++"Add file"++. Натисніть це та виберіть опцію «Upload files».
6. Це дозволить вам перетягувати файли сюди або переглядати їх на комп’ютері. Використовуйте спосіб, який вам більше подобається.
7. Після завантаження файлу наступне, що вам потрібно зробити, це створити Pull Request. Цей запит повідомляє адміністраторам верхнього рівня, що у вас є новий файл (або файли), які ви хочете об’єднати з основним.
-8. Натисніть «Pull Request» у верхньому лівому куті екрана.
+8. Натисніть `Pull Request` у верхньому лівому куті екрана.
9. Напишіть коротке повідомлення в розділі «Write», щоб повідомити адміністраторам, що ви зробили. (Новий документ, редакція, запропонована зміна тощо), а потім надішліть свої зміни.
-
## З командного рядка Git
Якщо ви віддаєте перевагу запуску Git локально на своєму комп’ютері, ви можете клонувати репозиторій [Rocky Linux Documentation](https://github.com/rocky-linux/documentation), внести зміни, а потім зафіксувати зміни. Щоб спростити все, виконайте кроки 1-3, використовуючи підхід **За допомогою графічного інтерфейсу GitHub** вище, а потім:
+1. Клонуйте репозиторій Git:
+
+ ```text
+ git clone https://github.com/your_fork_name/documentation.git
+ ```
+
+2. Тепер на вашій машині додайте файли до каталогу. Приклад:
+
+ ```bash
+ mv /home/myname/help.md /home/myname/documentation/
+ ```
+
+3. Далі запустіть Git add для цього імені файлу. Приклад:
+
+ ```text
+ git add help.md
+ ```
+
+4. Тепер запустіть git commit для внесених вами змін. Приклад:
+
+ ```text
+ git commit -m "Added the help.md file"
+ ```
+
+5. Далі надішліть свої зміни до розгалуженого сховища:
+ ```text
+ git push https://github.com/your_fork_name/documentation main
+ ```
-1. Git клонує репозиторій: git clone https://github.com/your_fork_name/documentation.git
-2. Тепер на вашій машині додайте файли до каталогу.
-3. Приклад: mv /home/myname/help.md /home/myname/documentation/
-4. Далі запустіть Git add для цього імені файлу.
-5. Приклад: git add help.md
-6. Тепер запустіть git commit для внесених вами змін.
-7. Приклад: git commit -m "Added the help.md file"
-8. Далі надішліть свої зміни до свого розгалуженого сховища: git push https://github.com/your_fork_name/documentation main
-9. Потім повторіть кроки 6 і 7 вище: Створіть Pull Request. Цей запит дає змогу адміністраторам верхнього рівня знати, що у вас є новий файл (або файли), які ви хочете об’єднати з головною гілкою. Натисніть «Pull Request» у верхньому лівому куті екрана.
+6. Потім повторіть кроки 6 і 7 вище: Створіть Pull Request. Цей запит дає змогу адміністраторам верхнього рівня знати, що у вас є новий файл (або файли), які ви хочете об’єднати з головною гілкою. Натисніть `Pull Request` у верхньому лівому куті екрана.
-Слідкуйте за коментарями в PR щодо запитуваних змін і роз’яснень.
+Слідкуйте за коментарями в PR щодо запитуваних змін і роз’яснень.
diff --git a/docs/guides/contribute/localdocs/local_docs.uk.md b/docs/guides/contribute/localdocs/local_docs.uk.md
index 23d21248c4..5dd73c40ca 100644
--- a/docs/guides/contribute/localdocs/local_docs.uk.md
+++ b/docs/guides/contribute/localdocs/local_docs.uk.md
@@ -14,35 +14,35 @@ tags:
## Процедура
-* Клонуйте репозиторій docs.rockylinux.org:
+- Клонуйте репозиторій docs.rockylinux.org:
-```
-git clone https://github.com/rocky-linux/docs.rockylinux.org.git
-```
+ ```bash
+ git clone https://github.com/rocky-linux/docs.rockylinux.org.git
+ ```
-* Після завершення перейдіть до каталогу docs.rockylinux.org:
+- Після завершення перейдіть до каталогу docs.rockylinux.org:
-```
-cd docs.rockylinux.org
-```
+ ```bash
+ cd docs.rockylinux.org
+ ```
-* Тепер клонуйте сховище документації за допомогою:
+- Тепер клонуйте сховище документації за допомогою:
-```
-git clone https://github.com/rocky-linux/documentation.git docs
-```
+ ```bash
+ git clone https://github.com/rocky-linux/documentation.git docs
+ ```
-* Далі встановіть файл requirements.txt для mkdocs:
+- Далі встановіть файл requirements.txt для mkdocs:
-```
-python3 -m pip install -r requirements.txt
-```
+ ```bash
+ python3 -m pip install -r requirements.txt
+ ```
-* Нарешті запустіть сервер mkdocs:
+- Нарешті запустіть сервер mkdocs:
-```
-mkdocs serve
-```
+ ```text
+ mkdocs serve
+ ```
## Висновок
diff --git a/docs/guides/contribute/localdocs/mkdocs_lsyncd.uk.md b/docs/guides/contribute/localdocs/mkdocs_lsyncd.uk.md
index 8baa66ea66..ff16997e02 100644
--- a/docs/guides/contribute/localdocs/mkdocs_lsyncd.uk.md
+++ b/docs/guides/contribute/localdocs/mkdocs_lsyncd.uk.md
@@ -18,14 +18,14 @@ tags:
## Передумови та припущення
-* Знайомство та комфорт роботи з командним рядком
-* Комфортно користуватися інструментами для редагування, SSH і синхронізації або готовий слідкувати за цим і вчитися
-* Довідка про LXD – тут є довгий документ про [створення та використання LXD на сервері](../../../books/lxd_server/00-toc.md), але ви будете використовувати лише базову інсталяцію на нашій робочій станції Linux
-* Використання `lsyncd` для дзеркального відображення файлів. Перегляньте [документацію про це тут](../../backup/mirroring_lsyncd.md)
-* Вам знадобляться відкриті ключі, згенеровані для вашого користувача та користувача «root» на локальній робочій станції за допомогою [цього документа](../../security/ssh_public_private_keys.md)
-* Наш інтерфейс мосту працює на 10.56.233.1, а наш контейнер працює на 10.56.233.189 у наших прикладах. Однак ваші IP-адреси для моста та контейнера будуть різними.
-* "youruser" у цьому документі представляє ваш ідентифікатор користувача
-* Припускається, що ви вже розробляєте документацію за допомогою клону сховища документації на вашій робочій станції
+- Знайомство та комфорт роботи з командним рядком
+- Комфортно користуватися інструментами для редагування, SSH і синхронізації або готовий слідкувати за цим і вчитися
+- Довідка про LXD – тут є довгий документ про [створення та використання LXD на сервері](../../../books/lxd_server/00-toc.md), але ви будете використовувати лише базову інсталяцію на нашій робочій станції Linux
+- Використання `lsyncd` для дзеркального відображення файлів. Перегляньте [документацію про це тут](../../backup/mirroring_lsyncd.md)
+- Вам знадобляться відкриті ключі, згенеровані для вашого користувача та користувача «root» на локальній робочій станції за допомогою [цього документа](../../security/ssh_public_private_keys.md)
+- Наш інтерфейс мосту працює на 10.56.233.1, а наш контейнер працює на 10.56.233.189 у наших прикладах. Однак ваші IP-адреси для моста та контейнера будуть різними.
+- "youruser" у цьому документі представляє ваш ідентифікатор користувача
+- Припускається, що ви вже розробляєте документацію за допомогою клону сховища документації на вашій робочій станції
## Контейнер `mkdocs`
@@ -35,13 +35,13 @@ tags:
Ви додасте контейнер Rocky до нашої робочої станції для `mkdocs`. Просто назвіть його "mkdocs":
-```
+```bash
lxc launch images:rockylinux/8 mkdocs
```
Контейнер повинен бути проксі. За замовчуванням, коли `mkdocs serve` запускається, він працює на 127.0.0.1:8000. Це добре, коли він знаходиться на вашій локальній робочій станції без контейнера. Однак, якщо він знаходиться в **контейнері** LXD на вашій локальній робочій станції, вам потрібно налаштувати контейнер із проксі-портом. Зробіть це за допомогою:
-```
+```bash
lxc config device add mkdocs mkdocsport proxy listen=tcp:0.0.0.0:8000 connect=tcp:127.0.0.1:8000
```
@@ -55,7 +55,7 @@ lxc config device add mkdocs mkdocsport proxy listen=tcp:0.0.0.0:8000 connect=tc
Спочатку зайдіть в контейнер з:
-```
+```bash
lxc exec mkdocs bash
```
@@ -80,22 +80,21 @@ lxc exec mkdocs bash
Для Rocky Linux 9.x вам знадобиться кілька пакетів (дивіться «Зміни в requirements.txt для 8.x» для встановлення пакета 8.x!):
-```
+```bash
dnf install git openssh-server python3-pip rsync
```
Після встановлення вам потрібно ввімкнути та запустити `sshd`:
-
-```
+```bash
systemctl enable --now sshd
```
+
### Користувачі контейнерів
Вам потрібно встановити пароль для нашого користувача root, а потім додати нашого користувача (користувача, якого ви використовуєте на своїй локальній машині) до списку sudoers. На даний момент ви є «root» користувачем. Щоб змінити пароль, введіть:
-
-```
+```text
passwd
```
@@ -103,14 +102,14 @@ passwd
Далі додайте свого користувача та встановіть пароль:
-```
+```bash
adduser youruser
passwd youruser
```
Додайте свого користувача до групи sudoers:
-```
+```bash
usermod -aG wheel youruser
```
@@ -120,13 +119,13 @@ usermod -aG wheel youruser
У цій процедурі root-користувач (як мінімум) повинен мати можливість входити в контейнер через SSH без введення пароля; це через процес `lsyncd`, який ви запроваджуватимете. Тут припускається, що ви можете використовувати sudo для користувача root на вашій локальній робочій станції:
-```
+```bash
sudo -s
```
Також припускається, що користувач root має ключ `id_rsa.pub` у каталозі `./ssh`. Якщо ні, створіть його за допомогою [цієї процедури](../../security/ssh_public_private_keys.md):
-```
+```bash
ls -al .ssh/
drwx------ 2 root root 4096 Feb 25 08:06 .
drwx------ 14 root root 4096 Feb 25 08:10 ..
@@ -137,7 +136,7 @@ drwx------ 14 root root 4096 Feb 25 08:10 ..
Щоб отримати доступ SSH до нашого контейнера без необхідності вводити пароль, за умови наявності ключа `id_rsa.pub`, як це робиться вище, просто запустіть:
-```
+```bash
ssh-copy-id root@10.56.233.189
```
@@ -145,38 +144,38 @@ ssh-copy-id root@10.56.233.189
Щоб скопіювати все до нашого контейнера, вам просто потрібно зробити це як ваш користувач, **а не** sudo:
-```
+```bash
scp -r .ssh/ youruser@10.56.233.189:/home/youruser/
```
Далі введіть SSH у контейнер як ваш користувач:
-```
+```bash
ssh -l youruser 10.56.233.189
```
-Вам потрібно зробити речі ідентичними. Ви робите це за допомогою `ssh-add`. Для цього переконайтеся, що у вас є ssh-agent:
+Вам потрібно зробити речі ідентичними. Ви робите це за допомогою `ssh-add`. Для цього переконайтеся, що у вас є `ssh-agent`:
-```
+```bash
eval "$(ssh-agent)"
ssh-add
```
## Клонування сховищ
-Вам потрібно клонувати два репозиторії, але не потрібно додавати віддалені git. У сховищі документації тут відображатиметься лише поточна документація (віддзеркалена з вашої робочої станції) і документи.
+Вам потрібно клонувати два репозиторії, але не потрібно додавати віддалені `git`. У сховищі документації тут відображатиметься лише поточна документація (віддзеркалена з вашої робочої станції) і документи.
Репозиторій rockylinux.org призначений для запуску `mkdocs serve` і використовуватиме дзеркало як джерело. Виконайте всі ці кроки від імені користувача без права root. Якщо ви не можете клонувати репозиторії як свій ідентифікатор користувача, то **Є** проблема з вашою ідентичністю, що стосується `git`, і ви потрібно переглянути кілька останніх кроків для повторного створення вашого ключового середовища (вище).
Спочатку клонуйте документацію:
-```
+```bash
git clone git@github.com:rocky-linux/documentation.git
```
Далі клонуйте docs.rockylinux.org:
-```
+```bash
git clone git@github.com:rocky-linux/docs.rockylinux.org.git
```
@@ -190,34 +189,35 @@ git clone git@github.com:rocky-linux/docs.rockylinux.org.git
Перейти в каталог:
-```
+```bash
cd docs.rockylinux.org
```
Потім запустіть:
-```
+```bash
sudo pip3 install -r requirements.txt
```
Далі ви повинні налаштувати `mkdocs` з додатковим каталогом. `mkdocs` вимагає створення каталогу документів, а потім каталогу документації/документів, пов’язаного з ним. Зробіть це за допомогою:
-```
+```bash
mkdir docs
cd docs
ln -s ../../documentation/docs
```
+
### Тестування `mkdocs`
Тепер, коли ви налаштували `mkdocs`, спробуйте запустити сервер. Пам’ятайте, що цей процес буде стверджувати, що це схоже на виробництво. Це не так, тому ігноруйте попередження. Запустіть `mkdocs serve` за допомогою:
-```
+```bash
mkdocs serve -a 0.0.0.0:8000
```
У консолі ви побачите щось подібне:
-```
+```bash
INFO - Building documentation...
WARNING - Config value: 'dev_addr'. Warning: The use of the IP address '0.0.0.0' suggests a production environment or the use of a
proxy to connect to the MkDocs server. However, the MkDocs' server is intended for local development purposes only. Please
@@ -246,9 +246,10 @@ INFO - [14:12:56] Reloading browsers
У нашому прикладі введіть наступне в адресу веб-переглядача (**ПРИМІТКА** Щоб уникнути непрацюючих URL-адрес, IP-адресу тут змінено на «ip-адресу вашого-сервера». Потрібно просто підставити в IP):
-```
+```bash
http://your-server-ip:8000
```
+
## `lsyncd`
Ви майже готові, якщо побачили документацію у веб-переглядачі. Останнім кроком є синхронізація документації у вашому контейнері з документацією на локальній робочій станції.
@@ -269,26 +270,26 @@ Ubuntu, наприклад, називає файл конфігурації п
Для запису `lsyncd` потрібно мати деякі файли журналу:
-```
+```bash
touch /var/log/lsyncd-status.log
touch /var/log/lsyncd.log
```
Вам також потрібно створити файл виключення, навіть якщо в цьому випадку ви нічого не виключаєте:
-```
+```bash
touch /etc/lsyncd.exclude
```
Нарешті, вам потрібно створити файл конфігурації. У цьому прикладі ми використовуємо `vi` як наш редактор, але ви можете використовувати будь-який редактор, який вам зручно:
-```
+```bash
vi /etc/lsyncd.conf
```
Потім помістіть цей вміст у цей файл і збережіть його. Обов’язково замініть «youruser» на фактичного користувача, а IP-адресу — на власну IP-адресу контейнера:
-```
+```bash
settings {
logfile = "/var/log/lsyncd.log",
statusFile = "/var/log/lsyncd-status.log",
@@ -315,13 +316,13 @@ sync {
Припускаючи, що ви ввімкнули `lsyncd` під час встановлення, на цьому етапі вам потрібно просто запустити або перезапустити процес:
-```
+```bash
systemctl restart lsyncd
```
Щоб переконатися, що все працює, перевірте журнали, зокрема `lsyncd.log`, який має показати вам щось на кшталт цього, якщо все запущено правильно:
-```
+```bash
Fri Feb 25 08:10:16 2022 Normal: --- Startup, daemonizing ---
Fri Feb 25 08:10:16 2022 Normal: recursive startup rsync: /home/youruser/documentation/ -> root@10.56.233.189:/home/youruser/documentation/
Fri Feb 25 08:10:41 2022 Normal: Startup of "/home/youruser/documentation/" finished: 0
diff --git a/docs/guides/contribute/localdocs/rockydocs_web_dev.uk.md b/docs/guides/contribute/localdocs/rockydocs_web_dev.uk.md
index 1254928574..319adca8ef 100644
--- a/docs/guides/contribute/localdocs/rockydocs_web_dev.uk.md
+++ b/docs/guides/contribute/localdocs/rockydocs_web_dev.uk.md
@@ -11,94 +11,87 @@ update: 27 лютого 2022 р
Запуск локальної копії веб-сайту документації може бути корисним у таких випадках:
-* Вам цікаво дізнатися про аспекти веб-розробки веб-сайту docs.rockylinux.org і зробити свій внесок у них
-* Ви автор і хотіли б побачити, як ваші документи відображатимуться/виглядатимуть на веб-сайті документів, перш ніж надсилати їх
-* Ви веб-розробник, який хоче внести свій внесок або допомогти підтримувати веб-сайт docs.rockylinux.org
+- Вам цікаво дізнатися про аспекти веб-розробки веб-сайту docs.rockylinux.org і зробити свій внесок у них
+- Ви автор і хотіли б побачити, як ваші документи відображатимуться/виглядатимуть на веб-сайті документів, перш ніж надсилати їх
+- Ви веб-розробник, який хоче внести свій внесок або допомогти підтримувати веб-сайт docs.rockylinux.org
+## Декілька нотаток
-### Деякі примітки:
-
-* Інструкції в цьому посібнику **НЕ** є обов’язковою умовою для авторів/учасників документації Rocky
-* Усе середовище працює в контейнері Docker, тому вам знадобиться механізм Docker на вашій локальній машині
-* Контейнер створено на основі офіційного образу докера RockyLinux, доступного тут https://hub.docker.com/r/rockylinux/rockylinux
-* Контейнер зберігає вміст документації (посібники, книги, зображення тощо) окремо від веб-механізму (mkdocs)
-* Контейнер запускає локальний веб-сервер, який прослуховує порт 8000. І порт 8000 буде перенаправлено на хост Docker
-
+- Інструкції в цьому посібнику **НЕ** є обов’язковою умовою для авторів/учасників документації Rocky
+- Усе середовище працює в контейнері Docker, тому вам знадобиться механізм Docker на вашій локальній машині
+- Контейнер створено на основі офіційного образу докера RockyLinux, доступного тут
+- Контейнер зберігає вміст документації (посібники, книги, зображення тощо) окремо від веб-механізму (mkdocs)
+- Контейнер запускає локальний веб-сервер, який прослуховує порт 8000. І порт 8000 буде перенаправлено на хост Docker
## Створення середовища вмісту
1. Змініть поточний робочий каталог у вашій локальній системі на папку, у якій ви збираєтеся писати. Ми називатимемо цей каталог як `$ROCKYDOCS` в решті цього посібника. Для нашої демонстрації тут `$ROCKYDOCS` вказує на `~/projects/rockydocs` у нашій демонстраційній системі.
-Створіть $ROCKYDOCS, якщо він ще не існує, а потім введіть:
+ Створіть $ROCKYDOCS, якщо він ще не існує, а потім введіть:
-```
-cd $ROCKYDOCS
-```
+ ```bash
+ cd $ROCKYDOCS
+ ```
2. Переконайтеся, що у вас встановлено `git` (`dnf -y install git`). Перебуваючи в $ROCKYDOCS, використовуйте git, щоб клонувати офіційне сховище вмісту Rocky Documentation. Впишіть:
-```
-git clone https://github.com/rocky-linux/documentation.git
-```
+ ```bash
+ git clone https://github.com/rocky-linux/documentation.git
+ ```
Тепер у вас буде папка `$ROCKYDOCS/documentation`. Ця папка є репозиторієм git і знаходиться під контролем git.
+## Створіть і запустіть середовище веб-розробки RockyDocs
-## Створення та запуск середовища веб-розробки RockyDocs
-
-3. Переконайтеся, що Docker запущено на вашій локальній машині (це можна перевірити за допомогою `systemctl`)
+1. Переконайтеся, що Docker запущено та працює на вашій локальній машині (ви можете перевірити за допомогою `systemctl`)
-4. З терміналу введіть:
+2. З терміналу впишіть наступне:
-```
-docker pull wsoyinka/rockydocs:latest
-```
+ ```bash
+ docker pull wsoyinka/rockydocs:latest
+ ```
-5. Переконайтеся, що зображення завантажено успішно. Впишіть:
+3. Переконайтеся, що зображення завантажено успішно. Впишіть:
-```
-docker image ls
-```
+ ```bash
+ docker image ls
+ ```
## Запуск контейнера RockyDocs
-1. Запустіть контейнер з образу Rockydocs. Впишіть:
-
-```
-docker run -it --name rockydoc --rm \
- -p 8000:8000 \
- --mount type=bind,source="$(pwd)"/documentation,target=/documentation \
- wsoyinka/rockydocs:latest
-
-```
-
-
-Крім того, якщо ви віддаєте перевагу та якщо у вас встановлено `docker-compose`, ви можете створити файл створення під назвою `docker-compose.yml` із таким вмістом:
-
-```
-version: "3.9"
-services:
- rockydocs:
- image: wsoyinka/rockydocs:latest
- volumes:
- - type: bind
- source: ./documentation
- target: /documentation
- container_name: rocky
- ports:
- - "8000:8000"
-
-```
-
-Збережіть файл із назвою `docker-compose.yml` у робочому каталозі $ROCKYDOCS. І запустіть службу/контейнер, виконавши:
-
-```
-docker-compose up
-```
-
+1. Запустіть контейнер із зображення rockydocs. Впишіть:
+
+ ```bash
+ docker run -it --name rockydoc --rm \
+ -p 8000:8000 \
+ --mount type=bind,source="$(pwd)"/documentation,target=/documentation \
+ wsoyinka/rockydocs:latest
+ ```
+
+ Крім того, за бажанням і якщо у вас встановлено `docker-compose`, ви можете створити файл створення під назвою `docker-compose.yml` із таким вмістом:
+
+ ```bash
+ version: "3.9"
+ services:
+ rockydocs:
+ image: wsoyinka/rockydocs:latest
+ volumes:
+ - type: bind
+ source: ./documentation
+ target: /documentation
+ container_name: rocky
+ ports:
+ - "8000:8000"
+ ```
+
+ Збережіть файл із назвою `docker-compose.yml` у робочому каталозі $ROCKYDOCS. І запустіть службу/контейнер, виконавши:
+
+ ```bash
+ docker-compose up
+ ```
## Перегляньте місцевий веб-сайт docs.rockylinux.org
-Коли контейнер запущено, ви можете вказати свій веб-браузер за такою URL-адресою, щоб переглянути локальну копію сайту:
+Коли контейнер запущений і запущений, тепер ви зможете вказати свій веб-браузер за такою URL-адресою, щоб переглянути локальну копію сайту:
-http://localhost:8000
+
diff --git a/docs/guides/contribute/localdocs/rockydocs_webdev_v2.uk.md b/docs/guides/contribute/localdocs/rockydocs_webdev_v2.uk.md
index 9fca00aa2d..a6e10ce813 100644
--- a/docs/guides/contribute/localdocs/rockydocs_webdev_v2.uk.md
+++ b/docs/guides/contribute/localdocs/rockydocs_webdev_v2.uk.md
@@ -7,12 +7,10 @@ update: 13 лютого 2023 р
# Запуск веб-сайту docs.rockylinux.org локально для веб-розробки | Podman
-
У цьому документі описано, як відтворити та запустити локальну копію всього веб-сайту docs.rockylinux.org на вашій локальній машині. Запуск локальної копії веб-сайту документації може бути корисним у таких випадках:
-* Вам цікаво дізнатися про аспекти веб-розробки веб-сайту docs.rockylinux.org і зробити свій внесок у них
-* Ви автор і хотіли б побачити, як ваші документи відображатимуться/виглядатимуть на веб-сайті документів, перш ніж надсилати їх
-
+- Вам цікаво дізнатися про аспекти веб-розробки веб-сайту docs.rockylinux.org і зробити свій внесок у них
+- Ви автор і хотіли б побачити, як ваші документи відображатимуться/виглядатимуть на веб-сайті документів, перш ніж надсилати їх
## Створення середовища вмісту
@@ -20,142 +18,132 @@ update: 13 лютого 2023 р
2. Змініть поточний робочий каталог у вашій локальній системі на папку, у якій ви збираєтеся писати. Ми будемо посилатися на цей каталог як `$ROCKYDOCS` в решті цього посібника. Для нашої демонстрації тут `$ROCKYDOCS` вказує на `$HOME/projects/rockydocs` у нашій демонстраційній системі.
-Створіть $ROCKYDOCS, якщо він ще не існує, і змініть свій робочий каталог на тип $ROCKYDOCS:
+ Створіть `$ROCKYDOCS`, якщо він ще не існує, і змініть свій робочий каталог на тип `$ROCKYDOCS`:
-```
-mkdir -p $HOME/projects/rockydocs
-export ROCKYDOCS=${HOME}/projects/rockydocs
-cd $ROCKYDOCS
-```
+ ```bash
+ mkdir -p $HOME/projects/rockydocs
+ export ROCKYDOCS=${HOME}/projects/rockydocs
+ cd $ROCKYDOCS
+ ```
3. Переконайтеся, що у вас встановлено `git` (`dnf -y install git`). Перебуваючи в $ROCKYDOCS, використовуйте git, щоб клонувати офіційне сховище вмісту Rocky Documentation. Впишіть:
-```
-git clone https://github.com/rocky-linux/documentation.git
-```
+ ```bash
+ git clone https://github.com/rocky-linux/documentation.git
+ ```
-Тепер у вас буде папка `$ROCKYDOCS/documentation`. Ця папка є репозиторієм git і знаходиться під контролем git.
+ Тепер у вас буде папка `$ROCKYDOCS/documentation`. Ця папка є репозиторієм git і знаходиться під контролем git.
-4. Також використовуйте git, щоб клонувати офіційне сховище docs.rockylinux.org. Впишіть:
+4. Також використовуйте `git`, щоб клонувати офіційне сховище docs.rockylinux.org. Впишіть:
-```
-git clone https://github.com/rocky-linux/docs.rockylinux.org.git
-```
+ ```bash
+ git clone https://github.com/rocky-linux/docs.rockylinux.org.git
+ ```
Тепер у вас буде папка `$ROCKYDOCS/docs.rockylinux.org`. У цій папці ви можете експериментувати зі своїми внесками в веб-розробку.
-
## Створіть і запустіть середовище веб-розробки RockyDocs
-5. Переконайтеся, що на вашій локальній машині запущено та працює Podman (можна перевірити за допомогою `systemctl`). Перевірте, запустивши:
-
-```
-systemctl enable --now podman.socket
-```
-
-6. Створіть новий файл `docker-compose.yml` із таким вмістом:
-
-```
-version: '2'
-services:
- mkdocs:
- privileged: true
- image: rockylinux:9.1
- ports:
- - 8001:8001
- environment:
- PIP_NO_CACHE_DIR: "off"
- PIP_DISABLE_PIP_VERSION_CHECK: "on"
- volumes:
- - type: bind
- source: ./documentation
- target: /app/docs
- - type: bind
- source: ./docs.rockylinux.org
- target: /app/docs.rockylinux.org
- working_dir: /app
- command: bash -c "dnf install -y python3 pip git && \
- ln -sfn /app/docs docs.rockylinux.org/docs && \
- cd docs.rockylinux.org && \
- git config --global user.name webmaster && \
- git config --global user.email webmaster@rockylinux.org && \
- curl -SL https://raw.githubusercontent.com/rocky-linux/documentation-test/main/docs/labs/mike-plugin-changes.patch -o mike-plugin-changes.patch && \
- git apply --reverse --check mike-plugin-changes.patch && \
- /usr/bin/pip3 install --no-cache-dir -r requirements.txt && \
- /usr/local/bin/mike deploy -F mkdocs.yml 9.1 91alias && \
- /usr/local/bin/mike set-default 9.1 && \
- echo All done && \
- /usr/local/bin/mike serve -F mkdocs.yml -a 0.0.0.0:8001"
-
-```
-
-Збережіть файл із назвою `docker-compose.yml` у робочому каталозі $ROCKYDOCS.
-
-Ви також можете швидко завантажити копію файлу docker-compose.yml, виконавши:
-
-```
-curl -SL https://raw.githubusercontent.com/rocky-linux/documentation-test/main/docs/labs/docker-compose-rockydocs.yml -o docker-compose.yml
-```
-
-
-7. Нарешті використовуйте docker-compose, щоб відкрити службу. Впишіть:
-
-```
-docker-compose up
-```
-
+1. Переконайтеся, що Podman запущено та працює на вашій локальній машині (це можна перевірити за допомогою `systemctl`). Перевірте, запустивши:
+
+ ```bash
+ systemctl enable --now podman.socket
+ ```
+
+2. Створіть новий файл `docker-compose.yml` із таким вмістом:
+
+ ```bash
+ version: '2'
+ services:
+ mkdocs:
+ privileged: true
+ image: rockylinux:9.1
+ ports:
+ - 8001:8001
+ environment:
+ PIP_NO_CACHE_DIR: "off"
+ PIP_DISABLE_PIP_VERSION_CHECK: "on"
+ volumes:
+ - type: bind
+ source: ./documentation
+ target: /app/docs
+ - type: bind
+ source: ./docs.rockylinux.org
+ target: /app/docs.rockylinux.org
+ working_dir: /app
+ command: bash -c "dnf install -y python3 pip git && \
+ ln -sfn /app/docs docs.rockylinux.org/docs && \
+ cd docs.rockylinux.org && \
+ git config --global user.name webmaster && \
+ git config --global user.email webmaster@rockylinux.org && \
+ curl -SL https://raw.githubusercontent.com/rocky-linux/documentation-test/main/docs/labs/mike-plugin-changes.patch -o mike-plugin-changes.patch && \
+ git apply --reverse --check mike-plugin-changes.patch && \
+ /usr/bin/pip3 install --no-cache-dir -r requirements.txt && \
+ /usr/local/bin/mike deploy -F mkdocs.yml 9.1 91alias && \
+ /usr/local/bin/mike set-default 9.1 && \
+ echo All done && \
+ /usr/local/bin/mike serve -F mkdocs.yml -a 0.0.0.0:8001"
+ ```
+
+ Збережіть файл із назвою `docker-compose.yml` у робочому каталозі $ROCKYDOCS.
+
+ Ви також можете швидко завантажити копію файлу docker-compose.yml, виконавши:
+
+ ```bash
+ curl -SL https://raw.githubusercontent.com/rocky-linux/documentation-test/main/docs/labs/docker-compose-rockydocs.yml -o docker-compose.yml
+ ```
+
+3. Нарешті використовуйте docker-compose, щоб відкрити службу. Впишіть:
+
+ ```bash
+ docker-compose up
+ ```
## Перегляньте місцевий веб-сайт docs.rockylinux.org
-8. Якщо у вашій системі Rocky Linux працює брандмауер, переконайтеся, що порт 8001 відкритий. Впишіть:
+Якщо у вашій системі Rocky Linux працює брандмауер, переконайтеся, що порт 8001 відкритий. Впишіть:
-```
-firewall-cmd --add-port=8001/tcp --permanent
-firewall-cmd --reload
-```
+ ```bash
+ firewall-cmd --add-port=8001/tcp --permanent
+ firewall-cmd --reload
+ ```
-Коли контейнер запущено, ви можете вказати свій веб-браузер за такою URL-адресою, щоб переглянути локальну копію сайту:
-
-http://localhost:8001
-
-Або
-
-http://SERVER_IP:8001
+ Коли контейнер запущений і запущений, тепер ви зможете вказати свій веб-браузер за такою URL-адресою, щоб переглянути локальну копію сайту:
+
+ Або
+
## Налаштування передумов
Встановіть і налаштуйте Podman та інші інструменти, виконавши:
-```
+```bash
sudo dnf -y install podman podman-docker git
sudo systemctl enable --now podman.socket
-
```
Встановіть docker-compose і зробіть його виконуваним. Впишіть:
-```
+```bash
curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
chmod 755 /usr/local/bin/docker-compose
```
-
Виправте дозволи на сокет докера. Впишіть:
-```
+```bash
sudo chmod 666 /var/run/docker.sock
```
-
### Примітки:
-* Інструкції в цьому посібнику **НЕ** є обов’язковою умовою для авторів документації Rocky або учасників вмісту
-* Все середовище працює в контейнері Podman, тому вам потрібно буде правильно налаштувати Podman на вашій локальній машині
-* Контейнер створено на основі офіційного образу докерів Rocky Linux 9.1, доступного тут https://hub.docker.com/r/rockylinux/rockylinux
-* Контейнер зберігає вміст документації окремо від веб-механізму (mkdocs)
-* Контейнер запускає локальний веб-сервер, який прослуховує порт 8001.
+- Інструкції в цьому посібнику **НЕ** є обов’язковою умовою для авторів документації Rocky або учасників вмісту
+- Все середовище працює в контейнері Podman, тому вам потрібно буде правильно налаштувати Podman на вашій локальній машині
+- Контейнер створено на основі офіційного образу докерів Rocky Linux 9.1, доступного тут
+- Контейнер зберігає вміст документації окремо від веб-механізму (mkdocs)
+- Контейнер запускає локальний веб-сервер, який прослуховує порт 8001.
diff --git a/docs/guides/contribute/navigation.uk.md b/docs/guides/contribute/navigation.uk.md
index 8ca600827a..dc7912dfae 100644
--- a/docs/guides/contribute/navigation.uk.md
+++ b/docs/guides/contribute/navigation.uk.md
@@ -17,37 +17,37 @@ tags:
Нашими цілями були:
-* Створення потрібної структури папок зараз (у майбутньому можуть знадобитися нові папки).
-* Налаштувати навігацію так, щоб області Rocky Installation, Migration і Contribution були вгорі
-* Налаштувати навігацію, щоб краще назвати деякі папки, і увімкнути правильне використання великих літер. Як приклад, «DNS» і «File Sharing Services» інакше відображаються як «Dns» і «File sharing» без будь-яких маніпуляцій.
-* Переконатися, що ці навігаційні файли доступні тільки менеджерам і редакторам.
+- Створення потрібної структури папок зараз (у майбутньому можуть знадобитися нові папки).
+- Налаштувати навігацію так, щоб області Rocky Installation, Migration і Contribution були вгорі
+- Налаштувати навігацію, щоб краще назвати деякі папки, і увімкнути правильне використання великих літер. Як приклад, «DNS» і «File Sharing Services» інакше відображаються як «Dns» і «File sharing» без будь-яких маніпуляцій.
+- Переконатися, що ці навігаційні файли доступні тільки менеджерам і редакторам.
Цей останній пункт може здатися деяким читачам непотрібним, але він стане більш очевидним, коли цей документ продовжиться.
## Припущення
-Передбачається, що у вас є локальний клон репозиторію Rocky GitHub: [https://github.com/rocky-linux/documentation](https://github.com/rocky-linux/documentation).
+Передбачається, що у вас є локальний клон репозиторію Rocky GitHub: .
## Зміни середовища
-З цими змінами виникає справжня потреба «побачити», як будь-які зміни, які ви вносите, впливають на вміст у контексті веб-сайту, _ПЕРЕД_, як цей вміст буде закріплено в сховищі документів, а згодом стане «активним».
+З цими змінами виникає справжня потреба «побачити», як будь-які зміни, які ви вносите, впливають на вміст у контексті веб-сайту, *ПЕРЕД*, як цей вміст буде закріплено в сховищі документів, а згодом стане «активним».
MkDocs — це програма [Python](https://www.python.org), і додаткові пакети, які вона використовує, також є кодом Python, це означає, що середовище, необхідне для запуску MkDocs, має бути **правильно налаштованим середовищем Python**. Налаштування Python для завдань розробки (а саме те, що робиться під час запуску MkDocs) не є тривіальним завданням, і інструкції щодо цього виходять за рамки цього документа. Деякі міркування:
-* Версія Python має бути >= 3.8, також **необхідно бути особливо обережним, щоб не використовувати «системну» версію Python комп’ютера, якщо на комп’ютері працює Linux/macOS**. Наприклад, на момент написання цього документа системною версією Python для macOS залишається версія 2.7.
-* Запуск «віртуального середовища» Python. Під час запуску проектів програм Python і встановлення пакетів, наприклад MkDocs, спільнота Python **наполегливо рекомендує** [створити ізольоване віртуальне середовище](https://realpython.com/python-virtual-environments-a-primer/) для кожного проекту.
-* Використовуйте сучасне IDE (інтегроване середовище розробки), яке добре підтримує Python. Дві популярні IDE, які також мають вбудовану підтримку запуску віртуальних середовищ, це:
- * PyCharm - (доступна безкоштовна версія) провідна IDE для Python https://www.jetbrains.com/pycharm/
- * Visual Studio Code - (доступна безкоштовна версія) від Microsoft https://code.visualstudio.com
+- Версія Python має бути >= 3.8, також **необхідно бути особливо обережним, щоб не використовувати «системну» версію Python комп’ютера, якщо на комп’ютері працює Linux/macOS**. Наприклад, на момент написання цього документа системною версією Python для macOS залишається версія 2.7.
+- Запуск «віртуального середовища» Python. Під час запуску проектів програм Python і встановлення пакетів, наприклад MkDocs, спільнота Python **наполегливо рекомендує** [створити ізольоване віртуальне середовище](https://realpython.com/python-virtual-environments-a-primer/) для кожного проекту.
+- Використовуйте сучасне IDE (інтегроване середовище розробки), яке добре підтримує Python. Дві популярні IDE, які також мають вбудовану підтримку запуску віртуальних середовищ, це:
+ - PyCharm - (доступна безкоштовна версія) провідна IDE для Python
+ - Visual Studio Code - (доступна безкоштовна версія) від Microsoft
Щоб це зробити ефективно, потрібно:
-* Налаштування нового проекту Python, який, в ідеалі, використовує віртуальне середовище (вище).
-* Встановлення `mkdocs`
-* Встановлення деяких плагінів python
-* Клонування цього репозиторію Rocky GitHub: [https://github.com/rocky-linux/docs.rockylinux.org](https://github.com/rocky-linux/docs.rockylinux.org)
-* Посилання на папку `docs` у вашому клонованому сховищі документації (ви також можете просто змінити файл mkdocs.yml, якщо хочете завантажити правильну папку, але зв’язування зробить ваше середовище mkdocs чистішим)
-* Запуск `mkdocs serve` у вашому клоні docs.rockylinux.org
+- Налаштування нового проекту Python, який, в ідеалі, використовує віртуальне середовище (вище).
+- Встановлення `mkdocs`
+- Встановлення деяких плагінів python
+- Клонування цього репозиторію Rocky GitHub:
+- Посилання на папку `docs` у вашому клонованому сховищі документації (ви також можете просто змінити файл mkdocs.yml, якщо хочете завантажити правильну папку, але зв’язування зробить ваше середовище mkdocs чистішим)
+- Запуск `mkdocs serve` у вашому клоні docs.rockylinux.org
!!! tip "Підказка"
@@ -59,9 +59,9 @@ MkDocs — це програма [Python](https://www.python.org), і додат
### Встановлення
-* Встановіть `mkdocs` у середовищі python: `pip install mkdocs`
-* Встановіть необхідні плагіни: `pip install mkdocs-material mkdocs-localsearch mkdocs-awesome-pages-plugin mkdocs-redirects mkdocs-i18n`
-* Клонувати репозиторій (зазначено вище)
+- Встановіть `mkdocs` у середовищі python: `pip install mkdocs`
+- Встановіть необхідні плагіни: `pip install mkdocs-material mkdocs-localsearch mkdocs-awesome-pages-plugin mkdocs-redirects mkdocs-i18n`
+- Клонувати репозиторій (зазначено вище)
### Приєднання та запуск `mkdocs`
@@ -71,22 +71,21 @@ MkDocs — це програма [Python](https://www.python.org), і додат
Знову ж таки, за бажанням ви можете змінити локальну копію файлу `mkdocs.yml`, щоб установити шлях. Якщо ви використовуєте цей метод, ви повинні змінити цей рядок, щоб вказувати на вашу папку `documentation/docs`:
-```
+```text
docs_dir: 'docs/docs'
```
-Після завершення ви можете спробувати запустити `mkdocs serve`, щоб побачити, чи ви отримали бажаний вміст. Це буде працювати на вашому локальному хості на порту 8000; наприклад: http://127.0.0.1:8000/
+Після завершення ви можете спробувати запустити `mkdocs serve`, щоб побачити, чи ви отримали бажаний вміст. Це буде працювати на вашому локальному хості на порту 8000; наприклад:
## Навігація та інші зміни
Навігація обробляється за допомогою файлів mkdocs `.pages` **АБО** значенням мета "title:" у передній частині документа. Файли `.pages` не є складними, АЛЕ якщо щось пропущено, це може спричинити збій завантаження сервера. Ось чому ця процедура **ЛИШЕ** для менеджерів і редакторів. Ці особи матимуть інструменти (локальне встановлення mkdocs, а також клони документації та docs.rockylinux.org), щоб щось, передане та об’єднане з GitHub, не порушувало обслуговування веб-сайту документації. Не можна очікувати, що учасник відповідатиме хоча б одній із цих вимог.
-
### Файли `.pages`
Як уже зазначалося, файли `.pages` загалом досить прості. Це файл у форматі YAML, який `mkdocs` зчитує перед відтворенням вмісту. Щоб поглянути на один із складніших файлів `.pages`, давайте розглянемо файл, створений для форматування бічної навігації:
-```
+```yaml
---
nav:
- ... | index*.md
@@ -109,16 +108,18 @@ nav:
- Network: network
- Package Management: package_management
- ...
-
```
+
Тут `index*md` показує «Guides Home: », `installation*.md` показує посилання на документ «Встановлення Rocky Linux», а `migrate2rocky*.md` показує посилання на документ «Міграція на Rocky Linux». "*" у кожному посиланні дозволяє документу бути _будь-якою_ мовою. Нарешті, розміщення "Внести свій внесок" знаходиться під цими елементами, а не в звичайному (алфавітному) порядку сортування. Переглядаючи список, ви можете побачити, що робить кожен елемент. Зауважте, що після запису «Керування пакетами: package_management» є ще дві папки (безпека та веб). Вони не потребують додаткового форматування, тому ми просто повідомляємо `mkdocs` завантажувати їх зазвичай із «-...»
Ви також можете використовувати форматування YAML у реальному файлі. Причиною для цього може бути те, що початковий заголовок файлу такий довгий, що він просто погано відображається в розділі навігації. Як приклад візьмемо заголовок цього документа "# `mod_ssl` на Rocky Linux у середовищі веб-сервера httpd Apache". Це дуже довго. Він дуже погано відображається на бічній панелі навігації, коли відкрито навігаційний елемент «Інтернет». Щоб виправити це, ви можете спільно з автором змінити його заголовок або змінити спосіб його відображення в меню, додавши заголовок перед заголовком усередині документа. Для прикладу документа додано назву:
-```
+
+```text
---
title: Apache With `mod_ssl`
---
```
+
Це змінює назву щодо навігації, але залишає оригінальну назву автора в документі.
Ймовірно, не буде великої потреби в додаткових файлах `.pages`. Їх слід використовувати економно.
diff --git a/docs/guides/database/database_mariadb-server.uk.md b/docs/guides/database/database_mariadb-server.uk.md
index 2ecad50316..61082dff0a 100644
--- a/docs/guides/database/database_mariadb-server.uk.md
+++ b/docs/guides/database/database_mariadb-server.uk.md
@@ -12,27 +12,33 @@ tags:
## Передумови
-* Сервер Rocky Linux
-* Вміння працювати з редактором командного рядка (у цьому прикладі ми використовуємо _vi_)
-* Високий рівень комфорту з видачею команд із командного рядка, переглядом журналів та іншими загальними обов’язками системного адміністратора
-* Розуміння баз даних _mariadb-server_ є корисним
-* Усі команди виконуються від імені користувача root або _sudo_
+- Сервер Rocky Linux
+- Вміння працювати з редактором командного рядка (у цьому прикладі ми використовуємо *vi*)
+- Високий рівень комфорту з видачею команд із командного рядка, переглядом журналів та іншими загальними обов’язками системного адміністратора
+- Розуміння баз даних *mariadb-server* є корисним
+- Усі команди виконуються від імені користувача root або *sudo*
## Вступ
-_Mariadb-сервер_ і його клієнт _mariadb_ є альтернативою _mysql-server_ і _mysql_ з відкритим вихідним кодом і мають спільну структуру команд. _mariadb-server_ можна знайти запущеним на багатьох веб-серверах завдяки популярній [Wordpress CMS](https://wordpress.org/) яка цього вимагає. Однак ця база даних має багато інших застосувань.
+*Mariadb-сервер* і його клієнт *mariadb* є альтернативою *mysql-server* і *mysql* з відкритим вихідним кодом і мають спільну структуру команд. *mariadb-server* можна знайти запущеним на багатьох веб-серверах завдяки популярній
+
+Wordpress CMS1 > яка цього вимагає. Однак ця база даних має багато інших застосувань.
Якщо ви бажаєте використовувати це разом з іншими інструментами для посилення безпеки веб-сервера, поверніться до [посібника Apache Hardened Web Server](../web/apache_hardened_webserver/index.md).
+
+
## Встановлення mariadb-сервера
-Вам потрібно встановити _mariadb-server_:
+Вам потрібно встановити *mariadb-server*:
`dnf install mariadb-server`
+
+
## Захист mariadb-сервера
-Щоб посилити безпеку _mariadb-server_, нам потрібно запустити сценарій, але перед тим, як це зробити, нам потрібно ввімкнути та запустити mariadb:
+Щоб посилити безпеку *mariadb-server*, нам потрібно запустити сценарій, але перед тим, як це зробити, нам потрібно ввімкнути та запустити mariadb:
`systemctl enable mariadb`
@@ -47,6 +53,9 @@ _Mariadb-сервер_ і його клієнт _mariadb_ є альтернат
!!! tip "Підказка"
Версія MariaDB-сервера, яка ввімкнена за замовчуванням у Rocky Linux 8.5, це 10.3.32. Ви можете встановити 10.5.13, увімкнувши модуль:
+
+
+
```
dnf module enable mariadb:10.5
@@ -54,10 +63,13 @@ _Mariadb-сервер_ і його клієнт _mariadb_ є альтернат
Потім ми встановлюємо `mariadb`. Починаючи з версії 10.4.6 MariaDB, доступні спеціальні команди MariaDB, які можна використовувати замість старих команд із префіксом `mysql`. До них відноситься раніше згадана `mysql_secure_installation`, яку тепер можна викликати за допомогою версії MariaDB `mariadb-secure-installation`.
+
Це викликає діалогове вікно:
-```
+
+
+```text
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
@@ -69,11 +81,14 @@ so you should just press enter here.
Enter current password for root (enter for none):
```
-Оскільки це абсолютно нова інсталяція, пароль адміністратора не встановлено. Тож просто натисніть тут Enter.
+
+Оскільки це абсолютно нова інсталяція, пароль адміністратора не встановлено. Тож просто натисніть тут ++enter++.
Наступна частина діалогу продовжується:
-```
+
+
+```text
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
@@ -82,24 +97,33 @@ root user without the proper authorisation.
Set root password? [Y/n]
```
-Ви абсолютно _обов'язково_ бажаєте встановити пароль root. Ви захочете з’ясувати, що це має бути, і задокументувати це десь у менеджері паролів, щоб за потреби можна було його відкрити. Почніть із натискання «Enter», щоб прийняти «Y» за умовчанням. Відкриється діалогове вікно пароля:
-```
+Ви абсолютно *обов'язково* бажаєте встановити пароль root. Ви захочете з’ясувати, що це має бути, і задокументувати це десь у менеджері паролів, щоб за потреби можна було його відкрити. Почніть із натискання ++enter++, щоб прийняти «Y» за умовчанням. Відкриється діалогове вікно пароля:
+
+
+
+```text
New password:
Re-enter new password:
```
+
Введіть вибраний пароль, а потім підтвердіть його, ввівши ще раз. Якщо це буде успішно, ви отримаєте таке діалогове вікно:
-```
+
+
+```text
Password updated successfully!
Reloading privilege tables..
... Success!
```
+
Далі діалогове вікно має справу з анонімним користувачем:
-```
+
+
+```text
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
@@ -109,11 +133,14 @@ production environment.
Remove anonymous users? [Y/n]
```
-Відповідь тут "Y", тому просто натисніть "Enter", щоб прийняти значення за умовчанням.
+
+Відповідь тут "Y", тому просто натисніть ++enter++, щоб прийняти значення за умовчанням.
Діалогове вікно переходить до розділу, що стосується дозволу користувача root входити віддалено:
-```
+
+
+```text
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
@@ -122,11 +149,14 @@ ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n]
```
-root потрібен лише локально на машині. Тому також прийміть це значення за замовчуванням, натиснувши «Enter».
-Потім діалогове вікно переходить до «тестової» бази даних, яка автоматично встановлюється за допомогою _mariadb-server_:
+root потрібен лише локально на машині. Тому також прийміть це значення за замовчуванням, натиснувши ++enter++.
-```
+Потім діалогове вікно переходить до «тестової» бази даних, яка автоматично встановлюється за допомогою *mariadb-server*:
+
+
+
+```text
... Success!
@@ -137,11 +167,14 @@ before moving into a production environment.
Remove test database and access to it? [Y/n]
```
-Знову ж таки, відповідь є типовою, тому просто натисніть «Enter», щоб видалити її.
+
+Знову ж таки, відповідь є типовою, тому просто натисніть ++enter++, щоб видалити її.
Нарешті, діалогове вікно запитає вас, чи бажаєте ви перезавантажити привілеї:
-```
+
+
+```text
- Dropping test database...
... Success!
- Removing privileges on test database...
@@ -153,9 +186,12 @@ will take effect immediately.
Reload privilege tables now? [Y/n]
```
-Знову ж таки, просто натисніть «Enter», щоб зробити це. Якщо все піде добре, ви повинні отримати це повідомлення:
-```
+Знову ж таки, просто натисніть ++enter++, щоб зробити це. Якщо все піде добре, ви повинні отримати це повідомлення:
+
+
+
+```text
... Success!
Cleaning up...
@@ -166,35 +202,49 @@ installation should now be secure.
Thanks for using MariaDB!
```
+
Тепер MariaDB має бути готова до використання.
+
+
### Зміни Rocky Linux 9.0
Rocky Linux 9.0 використовує `mariadb-server-10.5.13-2` як версію mariadb-server за умовчанням. Починаючи з версії 10.4.3, на сервері автоматично вмикається новий плагін, який змінює діалогове вікно `mariadb-secure-installation`. Цей плагін є автентифікацією `unix-socket`. [Ця стаття](https://mariadb.com/kb/en/authentication-plugin-unix-socket/) добре пояснює нову функцію. По суті, використання автентифікації `unix-socket` використовує облікові дані користувача, який увійшов у систему, для доступу до бази даних. Це робить так, що якщо користувач root, наприклад, увійшов, а потім використав `mysqladmin` для створення або видалення бази даних (або будь-якої іншої функції), для доступу не потрібен пароль. Те саме працює з `mysql`. Це також означає, що немає пароля для віддаленого зламу. Це залежить від безпеки користувачів, налаштованих на сервері для захисту всіх баз даних.
Друге діалогове вікно під час `mariadb-secure-installation` після встановлення пароля для адміністратора:
-```
+
+
+```text
Switch to unix_socket authentication Y/n
```
+
За замовчуванням тут є «Y», але навіть якщо ви відповідаєте «n», коли плагін увімкнено, пароль для користувача не запитуватиметься, принаймні через інтерфейс командного рядка. Ви можете вказати пароль або не вказати пароль, і вони обидва працюють:
-```
+
+
+```bash
mysql
MariaDB [(none)]>
```
-```
+
+
+
+```bash
mysql -p
Enter password:
MariaDB [(none)]>
```
+
Щоб дізнатися більше про цю функцію, перейдіть за посиланням вище. Існує спосіб вимкнути цей плагін і повернути пароль як обов’язкове поле, яке також детально описано в цьому посиланні.
+
+
## Висновок
-Сервер бази даних, такий як _mariadb-server_, можна використовувати для багатьох цілей. Через популярність CMS Wordpress її часто можна знайти на веб-серверах. Однак перед тим, як запускати базу даних у виробництві, доцільно посилити її захист.
+Сервер бази даних, такий як *mariadb-server*, можна використовувати для багатьох цілей. Через популярність CMS Wordpress її часто можна знайти на веб-серверах. Однак перед тим, як запускати базу даних у виробництві, доцільно посилити її захист.
diff --git a/docs/guides/desktop/kde_installation.uk.md b/docs/guides/desktop/kde_installation.uk.md
index 606a9b34ca..e0f08de830 100644
--- a/docs/guides/desktop/kde_installation.uk.md
+++ b/docs/guides/desktop/kde_installation.uk.md
@@ -19,9 +19,9 @@ tags:
## Передумови
-* Машина сумісна з Rocky Linux 9.0 (настільний комп’ютер, ноутбук або сервер), на якій ви хочете запустити робочий стіл KDE.
-* Можливість виконувати деякі дії з командного рядка, наприклад перевіряти контрольні суми зображення.
-* Знання того, як записати завантажувальний образ на DVD або флешку USB.
+- Машина сумісна з Rocky Linux 9.0 (настільний комп’ютер, ноутбук або сервер), на якій ви хочете запустити робочий стіл KDE.
+- Можливість виконувати деякі дії з командного рядка, наприклад перевіряти контрольні суми зображення.
+- Знання того, як записати завантажувальний образ на DVD або флешку USB.
## Отримання, перевірка та запис живого образу KDE
@@ -31,13 +31,13 @@ tags:
Тепер перевірте зображення за допомогою файлу CHECKSUM за допомогою наступного (зверніть увагу: це приклад! Переконайтеся, що назва вашого зображення та файли CHECKSUM збігаються):
-```
+```text
sha256sum -c CHECKSUM --ignore-missing Rocky-9-KDE-x86_64-latest.iso.CHECKSUM
```
Якщо все піде добре, ви повинні отримати це повідомлення:
-```
+```text
Rocky-9-KDE-x86_64-latest.iso: OK
```
@@ -97,7 +97,7 @@ Rocky-9-KDE-x86_64-latest.iso: OK

-Після завершення цього кроку з’явиться створене вами ім’я користувача. Введіть пароль, який ви створили для користувача, і натисніть ENTER. Це повинно показати вам незайманий екран стільниці KDE:
+Після завершення цього кроку з’явиться створене вами ім’я користувача. Введіть пароль, який ви створили для користувача, і натисніть ++enter++. Це повинно показати вам незайманий екран стільниці KDE:

diff --git a/docs/guides/dns/private_dns_server_using_bind.uk.md b/docs/guides/dns/private_dns_server_using_bind.uk.md
index 8136cfcfea..c6294647b0 100644
--- a/docs/guides/dns/private_dns_server_using_bind.uk.md
+++ b/docs/guides/dns/private_dns_server_using_bind.uk.md
@@ -12,12 +12,12 @@ tags:
## Передумови та припущення
-* Сервер під керуванням Rocky Linux
-* Кілька внутрішніх серверів, яким потрібен лише локальний доступ, а не через Інтернет
-* Кілька робочих станцій, яким потрібен доступ до тих самих серверів, які існують в одній мережі
-* Здоровий рівень комфорту при введенні команд із командного рядка
-* Знайомство з редактором командного рядка (у цьому прикладі ми використовуємо _vi_)
-* Можливість використовувати _firewalld_ для створення правил брандмауера
+- Сервер під керуванням Rocky Linux
+- Кілька внутрішніх серверів, яким потрібен лише локальний доступ, а не через Інтернет
+- Кілька робочих станцій, яким потрібен доступ до тих самих серверів, які існують в одній мережі
+- Здоровий рівень комфорту при введенні команд із командного рядка
+- Знайомство з редактором командного рядка (у цьому прикладі ми використовуємо *vi*)
+- Можливість використовувати *firewalld* для створення правил брандмауера
## Вступ
@@ -25,7 +25,7 @@ tags:
У приватній мережі, зокрема для розробки багатьох систем, ви можете використовувати файл */etc/hosts* вашої робочої станції Rocky Linux, щоб зіставити ім’я з IP-адресою.
-Це працюватиме для _вашої_ робочої станції, але не для будь-якої іншої машини у вашій мережі. Найкращий спосіб зробити речі універсальними — це взяти деякий час і створити локальний приватний DNS-сервер, який оброблятиме це для всіх ваших машин.
+Це працюватиме для *вашої* робочої станції, але не для будь-якої іншої машини у вашій мережі. Найкращий спосіб зробити речі універсальними — це взяти деякий час і створити локальний приватний DNS-сервер, який оброблятиме це для всіх ваших машин.
Припустімо, ви створюєте загальнодоступні DNS-сервери та резолвери робочого рівня. У такому випадку автор рекомендує надійніший авторитетний і рекурсивний DNS [PowerDNS](https://www.powerdns.com/), який можна встановити на серверах Rocky Linux. Однак цей документ призначений для локальної мережі, яка не відкриває свої DNS-сервери для зовнішнього світу. Ось чому автор вибрав для цього прикладу `bind`.
@@ -39,35 +39,35 @@ DNS поділяє служби на авторитетні та рекурси
Першим кроком є встановлення пакетів:
-```
+```bash
dnf install bind bind-utils
```
-Службовий демон _bind_ має `named`. Увімкніть це для запуску під час завантаження:
+Службовий демон *bind* має `named`. Увімкніть це для запуску під час завантаження:
-```
+```bash
systemctl enable named
```
Запустіть `named`:
-```
+```bash
systemctl start named
```
## Конфігурація
-Перш ніж вносити зміни до будь-якого файлу конфігурації, створіть резервну копію вихідного встановленого робочого файлу _named.conf_:
+Перш ніж вносити зміни до будь-якого файлу конфігурації, створіть резервну копію вихідного встановленого робочого файлу *named.conf*:
-```
+```bash
cp /etc/named.conf /etc/named.conf.orig
```
Це допоможе в майбутньому, якщо станеться введення помилок у файл конфігурації. *Завжди* є чудовою ідеєю зробити резервну копію перед внесенням змін.
-Відредагуйте файл _named.conf_. Автор використовує _vi_, але ви можете замінити його улюбленим редактором командного рядка:
+Відредагуйте файл *named.conf*. Автор використовує *vi*, але ви можете замінити його улюбленим редактором командного рядка:
-```
+```bash
vi /etc/named.conf
```
@@ -77,7 +77,7 @@ vi /etc/named.conf
Таким чином, інші налаштовані DNS-сервери майже негайно візьмуть на себе роботу для пошуку Інтернет-служб:
-```
+```bash
options {
# listen-on port 53 { 127.0.0.1; };
# listen-on-v6 port 53 { ::1; };
@@ -85,7 +85,7 @@ options {
Нарешті, перейдіть до кінця файлу *named.conf* і додайте розділ для вашої мережі. Наш приклад — «ourdomain», тож підставте те, що ви хочете назвати хостами локальної мережі:
-```
+```bash
# primary forward and reverse zones
//forward zone
zone "ourdomain.lan" IN {
@@ -103,7 +103,7 @@ zone "1.168.192.in-addr.arpa" IN {
};
```
-Збережіть зміни (для _vi_, `SHIFT:wq!`)
+Збережіть зміни (для *vi*, ++shift+colon+w+q+exclam++)
## Прямі та зворотні записи
@@ -111,13 +111,13 @@ zone "1.168.192.in-addr.arpa" IN {
Перший — це файл пересилання, щоб зіставити нашу IP-адресу з іменем хоста. Знову ж таки, ми використовуємо "ourdomain" як приклад. Зверніть увагу, що IP-адреса нашого локального DNS тут 192.168.1.136. Хости додаються внизу цього файлу.
-```
+```bash
vi /var/named/ourdomain.lan.db
```
Після завершення файл виглядатиме приблизно так:
-```
+```bash
$TTL 86400
@ IN SOA dns-primary.ourdomain.lan. admin.ourdomain.lan. (
2019061800 ;Serial
@@ -143,13 +143,13 @@ devel IN A 192.168.1.15
Вам потрібен зворотний файл, щоб зіставити наше ім’я хоста з IP-адресою. У цьому випадку єдиною частиною IP-адреси, яка вам потрібна, є останній октет (в адресі IPv4 кожне число, розділене «.», є октетом) хоста, PTR та імені хоста.
-```
+```bash
vi /var/named/ourdomain.lan.rev
```
Після завершення файл виглядатиме приблизно так:
-```
+```bash
$TTL 86400
@ IN SOA dns-primary.ourdomain.lan. admin.ourdomain.lan. (
2019061800 ;Serial
@@ -174,28 +174,28 @@ $TTL 86400
### Що все це означає
-Оскільки ви все це додали та готуєтеся перезапустити наш DNS-сервер _bind_, давайте розглянемо деякі терміни, які використовуються в цих двох файлах.
+Оскільки ви все це додали та готуєтеся перезапустити наш DNS-сервер *bind*, давайте розглянемо деякі терміни, які використовуються в цих двох файлах.
Просто змушувати все працювати недостатньо, якщо ви не знаєте, що означає кожен термін, чи не так?
-* **TTL** означає "Time To Live". TTL повідомляє DNS-серверу, як довго зберігати його кеш, перш ніж запитувати нову копію. У цьому випадку TTL є налаштуванням за замовчуванням для всіх записів, якщо не встановлено певний TTL запису. За замовчуванням тут встановлено 86400 секунд або 24 години.
-* **IN** означає Інтернет. У цьому випадку ми не використовуємо Інтернет. Подумайте про це як про інтранет.
-* **SOA** означає "Start Of Authority" або те, що є основним сервером DNS для домену.
-* **NS** означає "сервер імен"
-* **Serial** – це значення, яке використовує сервер DNS для перевірки актуальності вмісту файлу зони.
-* **Refresh** вказує, як часто підлеглий DNS-сервер має виконувати передачу зони від головного.
-* **Retry** вказує тривалість очікування в секундах перед повторною спробою під час невдалої передачі зони.
-* **Expire** визначає, як довго підлеглий сервер має чекати відповіді на запит, коли головний недоступний.
-* **A** – це адреса хоста або запис пересилання, і він міститься лише у файлі пересилання (вище).
-* **PTR** - це запис вказівника, більш відомий як "реверс" і міститься лише в нашому файлі реверсу (вище).
+- **TTL** означає "Time To Live". TTL повідомляє DNS-серверу, як довго зберігати його кеш, перш ніж запитувати нову копію. У цьому випадку TTL є налаштуванням за замовчуванням для всіх записів, якщо не встановлено певний TTL запису. За замовчуванням тут встановлено 86400 секунд або 24 години.
+- **IN** означає Інтернет. У цьому випадку ми не використовуємо Інтернет. Подумайте про це як про інтранет.
+- **SOA** означає "Start Of Authority" або те, що є основним сервером DNS для домену.
+- **NS** означає "сервер імен"
+- **Serial** – це значення, яке використовує сервер DNS для перевірки актуальності вмісту файлу зони.
+- **Refresh** вказує, як часто підлеглий DNS-сервер має виконувати передачу зони від головного.
+- **Retry** вказує тривалість очікування в секундах перед повторною спробою під час невдалої передачі зони.
+- **Expire** визначає, як довго підлеглий сервер має чекати відповіді на запит, коли головний недоступний.
+- **A** – це адреса хоста або запис пересилання, і він міститься лише у файлі пересилання (вище).
+- **PTR** - це запис вказівника, більш відомий як "реверс" і міститься лише в нашому файлі реверсу (вище).
## Тестування конфігурацій
-Коли ви створите всі свої файли, вам потрібно переконатися, що файли конфігурації та зони працюють у належному стані, перш ніж запускати службу _bind_ знову.
+Коли ви створите всі свої файли, вам потрібно переконатися, що файли конфігурації та зони працюють у належному стані, перш ніж запускати службу *bind* знову.
Перевірте основну конфігурацію:
-```
+```bash
named-checkconf
```
@@ -203,33 +203,33 @@ named-checkconf
Потім перевірте передню зону:
-```
+```bash
named-checkzone ourdomain.lan /var/named/ourdomain.lan.db
```
Це повинно повернути щось на зразок цього, якщо все добре:
-```
+```bash
zone ourdomain.lan/IN: loaded serial 2019061800
OK
```
І нарешті перевірте реверсну зону:
-```
+```bash
named-checkzone 192.168.1.136 /var/named/ourdomain.lan.rev
```
Що має повернути щось подібне, якщо все добре:
-```
+```bash
zone 192.168.1.136/IN: loaded serial 2019061800
OK
```
-Якщо припустити, що все виглядає добре, перезапустіть _bind_:
+Якщо припустити, що все виглядає добре, перезапустіть *bind*:
-```
+```bash
systemctl restart named
```
@@ -353,7 +353,7 @@ systemctl restart named

- Щойно ви внесете цю зміну, збережіть її та вийдіть із `named.conf` (для _vi_, `SHIFT:wq!`)
+ Щойно ви внесете цю зміну, збережіть її та вийдіть із `named.conf` (для _vi_, ++shift+colon+w+q+exclam++)
Вам потрібно внести аналогічні зміни до `/etc/sysconfig/named`:
@@ -369,7 +369,7 @@ systemctl restart named
```
- Збережіть ці зміни (знову ж таки, для _vi_, `SHIFT:wq!`)
+ Збережіть ці зміни (знову ж таки, для _vi_, ++shift+colon+w+q+exclam++)
## 8 Тестування машин
@@ -429,7 +429,6 @@ systemctl restart named
Тепер ви зможете отримувати будь-який доступ у домені *ourdomain.lan* зі своїх робочих станцій, а також матимете змогу розпізнавати та отримувати доступ до Інтернет-адрес.
-
## Правила брандмауера - `firewalld`
!!! note "`firewalld` за замовчуванням"
@@ -440,31 +439,31 @@ systemctl restart named
Першим кроком буде додавання нашої локальної мережі до «довіреної» зони:
-```
+```bash
firewall-cmd --zone=trusted --add-source=192.168.1.0/24 --permanent
```
Додайте наші дві служби в «довірену» зону:
-```
+```bash
vi /etc/sysconfig/named
```
Видаліть службу SSH із нашої «публічної» зони, яка ввімкнена за замовчуванням:
-```
+```bash
firewall-cmd --zone=public --remove-service=ssh --permanent
```
Перезавантажте брандмауер і вкажіть зони, які ви змінили:
-```
+```bash
OPTIONS="-4"
```
Це покаже, що ви правильно додали служби та вихідну мережу:
-```
+```bash
trusted (active)
target: ACCEPT
icmp-block-inversion: no
@@ -483,13 +482,13 @@ trusted (active)
Перелік «публічної» зони покаже, що доступ через SSH більше не дозволено:
-```
+```bash
firewall-cmd --zone=public --list-all
```
Показує:
-```
+```bash
public
target: default
icmp-block-inversion: no
@@ -510,6 +509,6 @@ public
## Висновки
-Зміна */etc/hosts* на окремій робочій станції дасть вам доступ до машини у вашій внутрішній мережі, але ви можете використовувати її лише на цій машині. Приватний сервер DNS, який використовує _bind_, дозволить вам додавати хости до DNS; за умови, що робочі станції мають доступ до цього приватного сервера DNS, вони можуть отримати доступ до цих локальних серверів.
+Зміна */etc/hosts* на окремій робочій станції дасть вам доступ до машини у вашій внутрішній мережі, але ви можете використовувати її лише на цій машині. Приватний сервер DNS, який використовує *bind*, дозволить вам додавати хости до DNS; за умови, що робочі станції мають доступ до цього приватного сервера DNS, вони можуть отримати доступ до цих локальних серверів.
Якщо вам не потрібні комп’ютери для вирішення в Інтернеті, але вам потрібен локальний доступ кількох машин до локальних серверів, розгляньте натомість приватний DNS-сервер.
diff --git a/docs/guides/editors/micro.uk.md b/docs/guides/editors/micro.uk.md
index a79eac270a..6b2503e8d5 100644
--- a/docs/guides/editors/micro.uk.md
+++ b/docs/guides/editors/micro.uk.md
@@ -15,12 +15,12 @@ tags:
*[micro](https://micro-editor.github.io)* – це фантастичний маленький термінальний текстовий редактор, який знаходиться між *nano* та *vim* з точки зору складності. Він має простий, легко впізнаваний робочий процес із кількома приголомшливими функціями:
-* Усі звичайні команди «Control-C», «Control-V» і «Control-F» працюють так само, як і в текстовому редакторі на робочому столі. Звичайно, усі прив’язки клавіш можна перев’язати.
-* Підтримка миші — клацніть і перетягніть, щоб вибрати текст, двічі клацніть, щоб вибрати слова, та тричі клацніть, щоб вибрати рядки.
-* Понад 75 мов підтримуються з підсвічуванням синтаксису за замовчуванням.
-* Кілька курсорів, коли вам потрібно редагувати кілька рядків одночасно.
-* Включає систему плагінів.
-* Кілька панелей.
+- Усі ваші звичайні команди ++control+c++, ++control+v++ та ++control+f++ працюють так само, як і в текстовому редакторі на основі настільного комп’ютера. Звичайно, усі прив’язки клавіш можна перев’язати.
+- Підтримка миші — клацніть і перетягніть, щоб вибрати текст, двічі клацніть, щоб вибрати слова, та тричі клацніть, щоб вибрати рядки.
+- Понад 75 мов підтримуються з підсвічуванням синтаксису за замовчуванням.
+- Кілька курсорів, коли вам потрібно редагувати кілька рядків одночасно.
+- Включає систему плагінів.
+- Кілька панелей.
А ось як це виглядає в моєму власному терміналі:
@@ -32,9 +32,9 @@ tags:
## Передумови
-* Будь-яка підключена до Інтернету машина або контейнер Rocky Linux.
-* Базове знання командного рядка, бажання редагувати там свій текст.
-* Деякі команди потрібно буде запускати від імені користувача root або за допомогою `sudo`.
+- Будь-яка підключена до Інтернету машина або контейнер Rocky Linux.
+- Базове знання командного рядка, бажання редагувати там свій текст.
+- Деякі команди потрібно буде запускати від імені користувача root або за допомогою `sudo`.
### Як встановити мікро
diff --git a/docs/guides/email/01-email-system.uk.md b/docs/guides/email/01-email-system.uk.md
index a8103ab14f..d14bc4f095 100644
--- a/docs/guides/email/01-email-system.uk.md
+++ b/docs/guides/email/01-email-system.uk.md
@@ -14,16 +14,16 @@ version: 1.0.0
Система електронної пошти в основному складається з чотирьох частин: **MUA**, **MTA**, **MRA** та **MDA**.
-* **MUA (Mail User Agent)**: це поштові клієнти для користувачів, наприклад Outlook, Foxmail тощо.
-* **MTA (агент передачі електронної пошти)**: відноситься до програми сервера електронної пошти, яка використовується для передачі пошти. MTA є реалізацією SMTP.
-* **MDA (агент доставки пошти)**: коли MTA отримує пошту, MDA відповідає за збереження електронної пошти у вказаному місці на сервері електронної пошти, а також виконує фільтрацію електронної пошти та антивірусні операції.
-* **MRA (агент отримання пошти)**: MRA – це реалізація IMAP і POP3, яка використовується для взаємодії з MUA та передачі електронних листів поштовим клієнтам через IMAP або POP3.
+- **MUA (Mail User Agent)**: це поштові клієнти для користувачів, наприклад Outlook, Foxmail тощо.
+- **MTA (агент передачі електронної пошти)**: відноситься до програми сервера електронної пошти, яка використовується для передачі пошти. MTA є реалізацією SMTP.
+- **MDA (агент доставки пошти)**: коли MTA отримує пошту, MDA відповідає за збереження електронної пошти у вказаному місці на сервері електронної пошти, а також виконує фільтрацію електронної пошти та антивірусні операції.
+- **MRA (агент отримання пошти)**: MRA – це реалізація IMAP і POP3, яка використовується для взаємодії з MUA та передачі електронних листів поштовим клієнтам через IMAP або POP3.
### Три протоколи
-* **SMTP (Simple Mail Transfer Protocol)**: стандартний протокол для надсилання електронних листів із стандартним портом TCP 25. Використовуйте порт "TCP 465", якщо потрібна функція шифрування.
-* **IMAP (Internet Mail Access Protocol)**: використовується для отримання електронних листів із сервера електронної пошти, порт за умовчанням – 143. Якщо потрібна функція шифрування, використовуйте порт 993.
-* **POP3 (протокол поштового відділення – версія 3)**: використовується для отримання електронних листів із сервера електронної пошти, порт за умовчанням – 110. Якщо потрібна функція шифрування, використовуйте порт 995.
+- **SMTP (Simple Mail Transfer Protocol)**: стандартний протокол для надсилання електронних листів із стандартним портом TCP 25. Використовуйте порт "TCP 465", якщо потрібна функція шифрування.
+- **IMAP (Internet Mail Access Protocol)**: використовується для отримання електронних листів із сервера електронної пошти, порт за умовчанням – 143. Якщо потрібна функція шифрування, використовуйте порт 993.
+- **POP3 (протокол поштового відділення – версія 3)**: використовується для отримання електронних листів із сервера електронної пошти, порт за умовчанням – 110. Якщо потрібна функція шифрування, використовуйте порт 995.
Різниця між IMAP і POP3 полягає в наступному:
@@ -42,13 +42,13 @@ version: 1.0.0

-* **MTA**: у GNU/Linux основним і поширеним MTA є **postfix**,**qmail**, **sendmail**.
-* **MDA**: у GNU/Linux основними та поширеними MDA є **procmail** і **maildrop**.
-* **MRA**: у GNU/Linux основним і поширеним MDA є **dovecot**.
+- **MTA**: у GNU/Linux основним і поширеним MTA є **postfix**,**qmail**, **sendmail**.
+- **MDA**: у GNU/Linux основними та поширеними MDA є **procmail** і **maildrop**.
+- **MRA**: у GNU/Linux основним і поширеним MDA є **dovecot**.
!!! question "Питання"
- «Чому DNS потрібен для участі в роботі поштової системи?»
+ **Чому для участі в роботі поштової системи потрібна DNS?**
У щоденному використанні стандартним форматом для користувача електронної пошти є «ім’я користувача@ім’я домену». Ім’я домену не може представляти конкретний хост, і вам потрібно вказати доменне ім’я на певне ім’я хоста, тому нам потрібен запис роздільної здатності DNS MX.
## Postfix Процес надсилання та отримання електронних листів
@@ -78,10 +78,9 @@ Postfix визначає, чи належить електронний лист,
Повна система електронної пошти складається з децентралізованих компонентів, які обслуговуються різними особами чи організаціями, і для деяких людей існують високі перешкоди для використання. Як наслідок, деякі сервери електронної пошти з відкритим кодом з’являються, як того вимагає час; ці сервери електронної пошти поєднують ці компоненти, щоб створити продукт із коробки; для користувачів усі аспекти відносно прості та легкі.
-* [iredmail](https://www.iredmail.com/index.html)
-* [Zimbra Email Server](https://www.zimbra.com/)
-* [modoboa](https://modoboa.org/en/)
-* [Mail-in-a-Box](https://mailinabox.email/)
-* [squirrelmail](https://www.squirrelmail.org/index.php)
-* [hmailserve](https://www.hmailserver.com/)
-* ...
+- [iredmail](https://www.iredmail.com/index.html)
+- [Zimbra Email Server](https://www.zimbra.com/)
+- [modoboa](https://modoboa.org/en/)
+- [Mail-in-a-Box](https://mailinabox.email/)
+- [squirrelmail](https://www.squirrelmail.org/index.php)
+- [hmailserve](https://www.hmailserver.com/) ...
diff --git a/docs/guides/email/02-basic-email-system.uk.md b/docs/guides/email/02-basic-email-system.uk.md
index 2a658e0725..5a65f0d7c7 100644
--- a/docs/guides/email/02-basic-email-system.uk.md
+++ b/docs/guides/email/02-basic-email-system.uk.md
@@ -60,7 +60,7 @@ zone "rockylinux.me" IN {
};
```
-!!! question "Питання"
+!!! question "Питання"
**Що таке зона DNS?** Зона DNS — це частина простору імен DNS, розміщена на сервері DNS. Зона DNS містить записи ресурсів, а сервер DNS відповідає на запити щодо записів у цьому просторі імен. DNS-сервер може мати кілька зон DNS. Простіше кажучи, зона DNS аналогічна каталогу книг.
@@ -188,7 +188,7 @@ Mysql > create user 'mailrl'@'%' identified by 'mail.rockylinux.me';
Mysql > grant all privileges on *.* to 'mailrl'@'%' with grant option;
```
-!!! info "Інформація"
+!!! info "Інформація"
Ви також можете встановити MySQL зі сховища або контейнера `dnf`.
@@ -237,10 +237,10 @@ Mysql > insert into virtual_aliases(id,domain_id,source,destination) values(2,1,
Основні алгоритми хешування паролів:
-* SHA-0
-* SHA-1
-* SHA-2: включає SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, та SHA-512/256
-* SHA-3
+- SHA-0
+- SHA-1
+- SHA-2: включає SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, та SHA-512/256
+- SHA-3
У стандарті хешування SHA-2 число в алгоритмі відноситься до довжини дайджесту в бітах.
@@ -260,9 +260,9 @@ $6$8jpmvCw8RqNfHYW4$pOlsEZG066eJuTmNHoidtvfWHe/6HORrKkQPwv4eyFxqGXKEXhep6aIRxAtv
Інформація, яка відображається в хеші (розділена $), наступна:
-* 6: Це означає ідентифікатор. Для алгоритму шифрування SHA-512 він встановлений на 6.
-* 8jpmvCw8RqNfHYW4: також відомий як "salt". Його основна функція полягає в підвищенні безпеки та покращенні складності злому. Система може генерувати його випадковим чином або вказати вручну.
-* pOlsEZG066eJuTmNHoidtvfWHe/6HORrKkQPwv4eyFxqGXKEXhep6aIRxAtv7FDDIq/ojIY1SfWAQkk7XACeZ0: 86 фіксована кількість символів. Відноситься до зашифрованих паролів, згенерованих за допомогою алгоритмів шифрування.
+- 6: Це означає ідентифікатор. Для алгоритму шифрування SHA-512 він встановлений на 6.
+- 8jpmvCw8RqNfHYW4: також відомий як "salt". Його основна функція полягає в підвищенні безпеки та покращенні складності злому. Система може генерувати його випадковим чином або вказати вручну.
+- pOlsEZG066eJuTmNHoidtvfWHe/6HORrKkQPwv4eyFxqGXKEXhep6aIRxAtv7FDDIq/ojIY1SfWAQkk7XACeZ0: 86 фіксована кількість символів. Відноситься до зашифрованих паролів, згенерованих за допомогою алгоритмів шифрування.
### Встановіть і налаштуйте `postfix`
@@ -274,23 +274,22 @@ Shell(192.168.100.6) > dnf -y install postfix postfix-mysql
Після встановлення Postfix необхідно змінити наступні файли:
-* `/etc/postfix/main.cf`. Основний і найважливіший конфігураційний файл
-* `/etc/postfix/master.cf`. Використовується для встановлення параметрів виконання для кожного компонента. Цей файл використовується, якщо ми хочемо ввімкнути фільтрацію спаму або інші порти SMTP.
-* `/etc/postfix/access`. Файл контролю доступу для SMTP.
-* `/etc/postfix/transport`. Відображає адреси електронної пошти для хостів ретрансляції.
+- `/etc/postfix/main.cf`. Основний і найважливіший конфігураційний файл
+- `/etc/postfix/master.cf`. Використовується для встановлення параметрів виконання для кожного компонента. Цей файл використовується, якщо ми хочемо ввімкнути фільтрацію спаму або інші порти SMTP.
+- `/etc/postfix/access`. Файл контролю доступу для SMTP.
+- `/etc/postfix/transport`. Відображає адреси електронної пошти для хостів ретрансляції.
Вам потрібно знати ці двійкові виконувані файли:
-* `/usr/sbin/postalias`: ця програма створює базу даних псевдонімів у `/etc/aliases.db` на основі файлу /etc/aliases.
-* `/usr/sbin/postcat` переглядає вміст пошти в черзі пошти.
-* `/usr/sbin/postconf` запитує конфігурацію Postfix.
-* `/usr/sbin/postfix` є головним демоном. Його можна використовувати наступним чином:
-
- * `postfix check`
- * `postfix start`
- * `postfix stop`
- * `postfix reload`
- * `postfix status`
+- `/usr/sbin/postalias`: ця програма створює базу даних псевдонімів у `/etc/aliases.db` на основі файлу /etc/aliases.
+- `/usr/sbin/postcat` переглядає вміст пошти в черзі пошти.
+- `/usr/sbin/postconf` запитує конфігурацію Postfix.
+- `/usr/sbin/postfix` є головним демоном. Його можна використовувати наступним чином:
+ - `postfix check`
+ - `postfix start`
+ - `postfix stop`
+ - `postfix reload`
+ - `postfix status`
!!! tip "Підказка"
@@ -338,32 +337,32 @@ shlib_directory = /usr/lib64/postfix
Пояснення цих параметрів:
-* `compatibility_level = 2`: Забезпечує сумісність із конфігураціями Postfix 2.x.
-* `data_directory = /var/lib/postfix`. Каталог кешу Postfix.
-* `myhostname = host.domain.tld`: **Важливо:** Вам потрібно змінити його на ім’я хосту вашого доменного імені.
-* `mydomain = domain.tld`: **Важливо:** Вам потрібно змінити його на ваше доменне ім’я.
-* `myorigin = $myhostname` and `myorigin = $mydomain`: **Важливо:** параметри, які були закоментовані. Основна функція — доповнити поштовий суфікс відправника. `$` представляє змінну еталонного параметра.
-* `inet_interfaces = localhost`: Інтерфейси для прослуховування. Зазвичай це значення змінюється на «all».
-* `inet_protocols = all`: Вмикає IPv4 та IPv6, якщо адресу знайдено.
-* `mydestination = \$myhostname, localhost.\$mydomain, localhost`: Вказує хости призначення поштового сервера.
-* `unknown_local_recipient_reject_code = 550`: Код помилки повертається під час отримання електронного листа невідомому адресату або відхилення електронного листа.
-* `mynetworks =`: Встановлює, з яких мереж приймати електронні листи.
-* `relay_domains = $mydestination`: Встановлює, з яких доменів ми повинні ретранслювати електронні листи.
-* `alias_maps = hash:/etc/aliases`: Список псевдонімів нашого сервера електронної пошти.
-* `alias_database = hash:/etc/aliases`: База даних має використовуватися за псевдонімами.
-* `home_mailbox = Maildir/`: **Important**: Розташування локальної поштової скриньки.
-* `debug_peer_level = 2`: Рівень журнальних записів.
-* `setgid_group = postdrop`: Група Unix для керування чергами Postfix.
+- `compatibility_level = 2`: Забезпечує сумісність із конфігураціями Postfix 2.x.
+- `data_directory = /var/lib/postfix`. Каталог кешу Postfix.
+- `myhostname = host.domain.tld`: **Важливо:** Вам потрібно змінити його на ім’я хосту вашого доменного імені.
+- `mydomain = domain.tld`: **Важливо:** Вам потрібно змінити його на ваше доменне ім’я.
+- `myorigin = $myhostname` and `myorigin = $mydomain`: **Важливо:** параметри, які були закоментовані. Основна функція — доповнити поштовий суфікс відправника. `$` представляє змінну еталонного параметра.
+- `inet_interfaces = localhost`: Інтерфейси для прослуховування. Зазвичай це значення змінюється на «all».
+- `inet_protocols = all`: Вмикає IPv4 та IPv6, якщо адресу знайдено.
+- `mydestination = \$myhostname, localhost.\$mydomain, localhost`: Вказує хости призначення поштового сервера.
+- `unknown_local_recipient_reject_code = 550`: Код помилки повертається під час отримання електронного листа невідомому адресату або відхилення електронного листа.
+- `mynetworks =`: Встановлює, з яких мереж приймати електронні листи.
+- `relay_domains = $mydestination`: Встановлює, з яких доменів ми повинні ретранслювати електронні листи.
+- `alias_maps = hash:/etc/aliases`: Список псевдонімів нашого сервера електронної пошти.
+- `alias_database = hash:/etc/aliases`: База даних має використовуватися за псевдонімами.
+- `home_mailbox = Maildir/`: **Important**: Розташування локальної поштової скриньки.
+- `debug_peer_level = 2`: Рівень журнальних записів.
+- `setgid_group = postdrop`: Група Unix для керування чергами Postfix.
За винятком елементів параметрів, згаданих або показаних вище, деякі параметри приховані, і їх можна переглянути за допомогою команди `postconf`. Найпомітніші параметри:
-* `message_size_limit = 10240000`. Максимальний розмір одного повідомлення в байтах.
-* `mailbox_size_limit = 1073741824`: Максимальний розмір поштової скриньки користувача.
-* `smtpd_sasl_type = cyrus`: Програмне забезпечення сервера IMAP використовується для автентифікації SASL. Ви можете використовувати `postconf -a` для перегляду.
-* `smtpd_sasl_auth_enable = no`: Чи вмикати автентифікацію SASL.
-* `smtpd_sasl_security_options = noanonymous`. Параметри безпеки для SASL. Анонімну автентифікацію вимкнено за умовчанням.
-* `smtpd_sasl_local_domain =`. Ім'я локального домену.
-* `smtpd_recipient_restrictions`. Фільтрація одержувачів. Значення за замовчуванням порожнє.
+- `message_size_limit = 10240000`. Максимальний розмір одного повідомлення в байтах.
+- `mailbox_size_limit = 1073741824`: Максимальний розмір поштової скриньки користувача.
+- `smtpd_sasl_type = cyrus`: Програмне забезпечення сервера IMAP використовується для автентифікації SASL. Ви можете використовувати `postconf -a` для перегляду.
+- `smtpd_sasl_auth_enable = no`: Чи вмикати автентифікацію SASL.
+- `smtpd_sasl_security_options = noanonymous`. Параметри безпеки для SASL. Анонімну автентифікацію вимкнено за умовчанням.
+- `smtpd_sasl_local_domain =`. Ім'я локального домену.
+- `smtpd_recipient_restrictions`. Фільтрація одержувачів. Значення за замовчуванням порожнє.
#### Модифікація /etc/postfix/main.cf
@@ -480,7 +479,7 @@ dbname = mailserver
query = SELECT email FROM virtual_users WHERE email='%s'
```
-!!! warning "Важливо"
+!!! warning "Важливо"
Якщо ви зіткнулися з такою помилкою після запуску `systemctl start postfix.service`: `fatal: відкрити файл блокування /var/lib/postfix/master.lock: неможливо встановити ексклюзивне блокування: ресурс тимчасово недоступний.` Видаліть наявний ` /var/lib/postfix/master.lock` файл
@@ -581,29 +580,28 @@ Shell(192.168.100.6) > tree /etc/dovecot/
Опис файлу такий:
-* `dovecot.conf` є основним конфігураційним файлом Dovecot.
+- `dovecot.conf` є основним конфігураційним файлом Dovecot.
+ - Завантажте інші конфігураційні файли через `!include conf.d/*.conf`.
+ - Цифровий префікс файлу підконфігурації полегшує розуміння людиною порядку його аналізу.
+ - Через історичні причини деякі конфігураційні файли досі є окремими, зазвичай мають назву `*.conf.ext`.
+ - У файлі конфігурації ви можете використовувати змінні, розділені на **Глобальні змінні** та **Змінні користувача**, починаючи з `%`. Див. [тут](https://doc.dovecot.org/configuration_manual/config_file/config_variables/#config-variables).
- * Завантажте інші конфігураційні файли через `!include conf.d/*.conf`.
- * Цифровий префікс файлу підконфігурації полегшує розуміння людиною порядку його аналізу.
- * Через історичні причини деякі конфігураційні файли досі є окремими, зазвичай мають назву `*.conf.ext`.
- * У файлі конфігурації ви можете використовувати змінні, розділені на **Глобальні змінні** та **Змінні користувача**, починаючи з `%`. Див. [тут](https://doc.dovecot.org/configuration_manual/config_file/config_variables/#config-variables).
-
-* `10-auth.conf`: Конфігурація автентифікації.
-* `10-logging.conf`. Конфігурація, пов'язана з журналом.
-* `10-mail.conf`. Конфігурація розташування поштових скриньок і просторів імен. За замовчуванням значення розташування поштової скриньки користувача порожнє, що означає, що Dovecot автоматично шукає розташування поштової скриньки. Якщо у користувача немає пошти, ви повинні явно повідомити Dovecot розташування всіх поштових скриньок.
-* `10-metrics.conf`. Конфігурація, пов'язана зі статистичною інформацією.
-* `15-mailboxes.conf`. Конфігурація визначення поштової скриньки.
-* `auth-sql.conf.ext`. Аутентифікація для користувачів SQL.
+- `10-auth.conf`: Конфігурація автентифікації.
+- `10-logging.conf`. Конфігурація, пов'язана з журналом.
+- `10-mail.conf`. Конфігурація розташування поштових скриньок і просторів імен. За замовчуванням значення розташування поштової скриньки користувача порожнє, що означає, що Dovecot автоматично шукає розташування поштової скриньки. Якщо у користувача немає пошти, ви повинні явно повідомити Dovecot розташування всіх поштових скриньок.
+- `10-metrics.conf`. Конфігурація, пов'язана зі статистичною інформацією.
+- `15-mailboxes.conf`. Конфігурація визначення поштової скриньки.
+- `auth-sql.conf.ext`. Аутентифікація для користувачів SQL.
#### Деякі важливі параметри конфігураційного файлу
-* `protocols = imap pop3 lmtp submission`: Список протоколів, які будуть використовуватися.
-* `listen = *, ::`. Відокремлений комами список IP-адрес або хостів, на яких слід прослуховувати з’єднання. `*` listens in all IPv4 interfaces, `::` слухає в усіх інтерфейсах IPv6.
-* `disable_plaintext_auth = yes`: Чи вимкнути автентифікацію відкритого тексту.
-* `auth_mechanisms =`: Тип механізму автентифікації, який буде використовуватися. Можна вказати кілька значень і розділити їх пробілами. Значення: plain, login, digest-md5, cram-md5, ntlm, rpa, apop, anonymous, gssapi, otp, skey, gss-spnego.
-* `login_trusted_networks=`: Яким IP-мережам дозволено використовувати Dovecot. Це може бути одна IP-адреса, сегмент мережі або обидва. Як приклад: `login_trusted_networks = 10.1.1.0/24 192.168.100.2`
-* `mail_location =`: Якщо значення пусте, Dovecot намагається автоматично знайти поштові скриньки (переглядаючи `~/Maildir`, `/var/mail/username`, `~/mail` і `~/Mail` у такому порядку). Однак автоматичне виявлення зазвичай не вдається користувачам, чий поштовий каталог ще не створено, тому вам слід явно вказати тут повне місцезнаходження, якщо це можливо.
-* `mail_privileged_group =`: Ця група тимчасово ввімкнена для привілейованих операцій. Це використовується лише з INBOX, коли його початкове створення або блокування не вдається. Зазвичай для доступу до `/var/mail` встановлюється значення `mail`.
+- `protocols = imap pop3 lmtp submission`: Список протоколів, які будуть використовуватися.
+- `listen = *, ::`. Відокремлений комами список IP-адрес або хостів, на яких слід прослуховувати з’єднання. `*` listens in all IPv4 interfaces, `::` слухає в усіх інтерфейсах IPv6.
+- `disable_plaintext_auth = yes`: Чи вимкнути автентифікацію відкритого тексту.
+- `auth_mechanisms =`: Тип механізму автентифікації, який буде використовуватися. Можна вказати кілька значень і розділити їх пробілами. Значення: plain, login, digest-md5, cram-md5, ntlm, rpa, apop, anonymous, gssapi, otp, skey, gss-spnego.
+- `login_trusted_networks=`: Яким IP-мережам дозволено використовувати Dovecot. Це може бути одна IP-адреса, сегмент мережі або обидва. Як приклад: `login_trusted_networks = 10.1.1.0/24 192.168.100.2`
+- `mail_location =`: Якщо значення пусте, Dovecot намагається автоматично знайти поштові скриньки (переглядаючи `~/Maildir`, `/var/mail/username`, `~/mail` і `~/Mail` у такому порядку). Однак автоматичне виявлення зазвичай не вдається користувачам, чий поштовий каталог ще не створено, тому вам слід явно вказати тут повне місцезнаходження, якщо це можливо.
+- `mail_privileged_group =`: Ця група тимчасово ввімкнена для привілейованих операцій. Це використовується лише з INBOX, коли його початкове створення або блокування не вдається. Зазвичай для доступу до `/var/mail` встановлюється значення `mail`.
#### Модифікація декількох файлів
@@ -673,6 +671,7 @@ password_query = SELECT password FROM virtual_users WHERE email='%u'
```
Тепер змініть власника та групу:
+
```bash
Shell(192.168.100.7) > chown -R vmail:dovecot /etc/dovecot
```
@@ -751,13 +750,11 @@ tcp LISTEN 0 128 [::]:22
У наведеному вище виводі використовуються такі порти:
- * Postfix: 25, 587, 465
- * Dovecot: 993, 995, 110, 143
+- Postfix: 25, 587, 465
+- Dovecot: 993, 995, 110, 143
Ви можете використати команду `doveadm`, щоб створити відповідний зашифрований пароль і вставити його в таблицю virtual\_users.
-
-
```bash
Shell(192.168.100.6) > doveadm pw -s SHA512-crypt -p onetestandone
{SHA512-CRYPT}$6$dEqUVsCirHzV8kHw$hgC0x0ufah.N0PzUVvhLEMnoww5lo.JBmeLSsRNDkgWVylC55Gk6zA1KWsn.SiIAAIDEqHxtugGZWHl1qMex..
@@ -801,5 +798,5 @@ Mysql > insert into virtual_users(id,email,password,domain_id) values(2,'leeo@ma
### Додатковий опис
-* Ви повинні мати доменне ім’я або внутрішній запис DNS із записами MX, які вказують на ваш сервер.
-* Ви повинні отримати сертифікат SSL через [Let's Encrypt](https://docs.rockylinux.org/guides/security/generating_ssl_keys_lets_encrypt/) або інше джерело.
+- Ви повинні мати доменне ім’я або внутрішній запис DNS із записами MX, які вказують на ваш сервер.
+- Ви повинні отримати сертифікат SSL через [Let's Encrypt](https://docs.rockylinux.org/guides/security/generating_ssl_keys_lets_encrypt/) або інше джерело.
diff --git a/docs/guides/file_sharing/glusterfs.uk.md b/docs/guides/file_sharing/glusterfs.uk.md
index 9d6afe433f..379a4a2290 100644
--- a/docs/guides/file_sharing/glusterfs.uk.md
+++ b/docs/guides/file_sharing/glusterfs.uk.md
@@ -9,9 +9,9 @@ update: 11 лютого 2022 р
## Передумови
-* Вміння працювати з редактором командного рядка (у цьому прикладі використовується _vi_)
-* Високий рівень комфорту з видачею команд із командного рядка, переглядом журналів та іншими загальними обов’язками системного адміністратора
-* Усі команди виконуються від імені користувача root або sudo
+- Вміння працювати з редактором командного рядка (у цьому прикладі використовується *vi*)
+- Високий рівень комфорту з видачею команд із командного рядка, переглядом журналів та іншими загальними обов’язками системного адміністратора
+- Усі команди виконуються від імені користувача root або sudo
## Вступ
@@ -25,8 +25,8 @@ GlusterFS — це розподілена файлова система.
GlusterFS може працювати в двох режимах:
- * реплікований режим: кожен вузол кластера має всі дані.
- * розподілений режим: без надмірності даних. Якщо сховище виходить з ладу, дані на несправному вузлі втрачаються.
+- реплікований режим: кожен вузол кластера має всі дані.
+- розподілений режим: без надмірності даних. Якщо сховище виходить з ладу, дані на несправному вузлі втрачаються.
Обидва режими можна використовувати разом, щоб забезпечити репліковану та розподілену файлову систему, якщо у вас є правильна кількість серверів.
@@ -38,9 +38,9 @@ GlusterFS може працювати в двох режимах:
Наша фіктивна платформа складається з двох серверів і клієнта, всі сервери Rocky Linux.
-* Перший вузол: node1.cluster.local - 192.168.1.10
-* Другий вузол: node2.cluster.local - 192.168.1.11
-* Клієнт1: клієнт1.клієнти.локальний - 192.168.1.12
+- Перший вузол: node1.cluster.local - 192.168.1.10
+- Другий вузол: node2.cluster.local - 192.168.1.11
+- Клієнт1: клієнт1.клієнти.локальний - 192.168.1.12
!!! Note "Примітка"
@@ -52,12 +52,12 @@ GlusterFS може працювати в двох режимах:
Ми створимо новий логічний том LVM, який буде змонтовано на `/data/glusterfs/vol0` на обох серверах кластера:
-```
-$ sudo pvcreate /dev/sdb
-$ sudo vgcreate vg_data /dev/sdb
-$ sudo lvcreate -l 100%FREE -n lv_data vg_data
-$ sudo mkfs.xfs /dev/vg_data/lv_data
-$ sudo mkdir -p /data/glusterfs/volume1
+```bash
+sudo pvcreate /dev/sdb
+sudo vgcreate vg_data /dev/sdb
+sudo lvcreate -l 100%FREE -n lv_data vg_data
+sudo mkfs.xfs /dev/vg_data/lv_data
+sudo mkdir -p /data/glusterfs/volume1
```
!!! Note "Примітка"
@@ -65,25 +65,25 @@ $ sudo mkdir -p /data/glusterfs/volume1
Якщо LVM недоступний на ваших серверах, інсталюйте його за допомогою наступної команди:
```
- $ sudo dnf install lvm2
+ sudo dnf install lvm2
```
Тепер ми можемо додати цей логічний том до файлу `/etc/fstab`:
-```
+```bash
/dev/mapper/vg_data-lv_data /data/glusterfs/volume1 xfs defaults 1 2
```
І змонтуйте його:
-```
-$ sudo mount -a
+```bash
+sudo mount -a
```
Оскільки дані зберігаються у підтомі, який називається цеглиною, ми можемо створити каталог у цьому новому просторі даних, призначеному для них:
-```
-$ sudo mkdir /data/glusterfs/volume1/brick0
+```bash
+sudo mkdir /data/glusterfs/volume1/brick0
```
## Інсталяція
@@ -94,7 +94,7 @@ $ sudo mkdir /data/glusterfs/volume1/brick0
Перш за все, необхідно додати спеціальний репозиторій до gluster (у версії 9) на обох серверах:
-```
+```bash
sudo dnf install centos-release-gluster9
```
@@ -104,7 +104,7 @@ sudo dnf install centos-release-gluster9
Оскільки список сховищ і URL-адреса більше не доступні, давайте змінимо вміст `/etc/yum.repos.d/CentOS-Gluster-9.repo`:
-```
+```bash
[centos-gluster9]
name=CentOS-$releasever - Gluster 9
#mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=$releasever&repo=storage-gluster-9
@@ -116,32 +116,32 @@ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage
Тепер ми готові встановити сервер glusterfs:
-```
-$ sudo dnf install glusterfs glusterfs-libs glusterfs-server
+```bash
+sudo dnf install glusterfs glusterfs-libs glusterfs-server
```
## Правила брандмауера
Для роботи сервісу необхідно дотримуватися кількох правил:
-```
-$ sudo firewall-cmd --zone=public --add-service=glusterfs --permanent
-$ sudo firewall-cmd --reload
+```bash
+sudo firewall-cmd --zone=public --add-service=glusterfs --permanent
+sudo firewall-cmd --reload
```
або:
-```
-$ sudo firewall-cmd --zone=public --add-port=24007-24008/tcp --permanent
-$ sudo firewall-cmd --zone=public --add-port=49152/tcp --permanent
-$ sudo firewall-cmd --reload
+```bash
+sudo firewall-cmd --zone=public --add-port=24007-24008/tcp --permanent
+sudo firewall-cmd --zone=public --add-port=49152/tcp --permanent
+sudo firewall-cmd --reload
```
## Роздільна здатність імен
Ви можете дозволити DNS виконувати розпізнавання імен серверів у вашому кластері, або ви можете звільнити сервери від цього завдання, вставивши записи для кожного з них у ваші файли `/etc/hosts`. Це також забезпечить роботу навіть під час збою DNS.
-```
+```text
192.168.10.10 node1.cluster.local
192.168.10.11 node2.cluster.local
```
@@ -150,23 +150,23 @@ $ sudo firewall-cmd --reload
Не зволікаючи, запустимо службу:
-```
-$ sudo systemctl enable glusterfsd.service glusterd.service
-$ sudo systemctl start glusterfsd.service glusterd.service
+```bash
+sudo systemctl enable glusterfsd.service glusterd.service
+sudo systemctl start glusterfsd.service glusterd.service
```
Ми готові об’єднати два вузли в одному пулі.
Цю команду потрібно виконати лише один раз на одному вузлі (тут на node1):
-```
+```bash
sudo gluster peer probe node2.cluster.local
peer probe: success
```
Підтвердити:
-```
+```bash
node1 $ sudo gluster peer status
Number of Peers: 1
@@ -178,7 +178,7 @@ Other names:
```
-```
+```bash
node2 $ sudo gluster peer status
Number of Peers: 1
@@ -191,7 +191,7 @@ Other names:
Тепер ми можемо створити том із 2 репліками:
-```
+```bash
$ sudo gluster volume create volume1 replica 2 node1.cluster.local:/data/glusterfs/volume1/brick0/ node2.cluster.local:/data/glusterfs/volume1/brick0/
Replica 2 volumes are prone to split-brain. Щоб уникнути цього, використовуйте Arbiter або Replica 3. Див.: https://docs.gluster.org/en/latest/Administrator-Guide/Split-brain-and-ways-to-deal-with-it/.
Do you still want to continue?
@@ -205,15 +205,15 @@ volume create: volume1: success: please start the volume to access data
Тепер ми можемо запустити том для доступу до даних:
-```
-$ sudo gluster volume start volume1
+```bash
+sudo gluster volume start volume1
volume start: volume1: success
```
Перевірте стан гучності:
-```
+```bash
$ sudo gluster volume status
Status of volume: volume1
Gluster process TCP Port RDMA Port Online Pid
@@ -230,7 +230,7 @@ Task Status of Volume volume1
There are no active volume tasks
```
-```
+```bash
$ sudo gluster volume info
Volume Name: volume1
@@ -255,8 +255,8 @@ performance.client-io-threads: off
Ми вже можемо трохи обмежити доступ до тому:
-```
-$ sudo gluster volume set volume1 auth.allow 192.168.10.*
+```bash
+sudo gluster volume set volume1 auth.allow 192.168.10.*
```
Це так просто.
@@ -267,10 +267,10 @@ $ sudo gluster volume set volume1 auth.allow 192.168.10.*
Переважний метод:
-```
-$ sudo dnf install glusterfs-client
-$ sudo mkdir /data
-$ sudo mount.glusterfs node1.cluster.local:/volume1 /data
+```bash
+sudo dnf install glusterfs-client
+sudo mkdir /data
+sudo mount.glusterfs node1.cluster.local:/volume1 /data
```
Немає додаткових репозиторіїв для налаштування. Клієнт уже присутній у базовому репо.
@@ -279,13 +279,13 @@ $ sudo mount.glusterfs node1.cluster.local:/volume1 /data
На клієнті:
-```
+```bash
sudo touch /data/test
```
На обох серверах:
-```
+```bash
$ ll /data/glusterfs/volume1/brick0/
total 0
-rw-r--r--. 2 root root 0 Feb 3 19:21 test
@@ -295,13 +295,13 @@ total 0
Давайте зупинимо вузол один:
-```
-$ sudo shutdown -h now
+```bash
+sudo shutdown -h now
```
Перевірте статус на node2:
-```
+```bash
$ sudo gluster peer status
Number of Peers: 1
@@ -327,7 +327,7 @@ Node1 відсутній.
І на клієнті:
-```
+```bash
$ ll /data/test
-rw-r--r--. 1 root root 0 Feb 4 16:41 /data/test
```
diff --git a/docs/guides/file_sharing/nfsserver.uk.md b/docs/guides/file_sharing/nfsserver.uk.md
index 9c1c3ae186..144e876175 100644
--- a/docs/guides/file_sharing/nfsserver.uk.md
+++ b/docs/guides/file_sharing/nfsserver.uk.md
@@ -6,8 +6,7 @@ contributors: Steven Spencer, Serge, Ganna Zhyrnova
# Мережева файлова система
-**Знання**: :star: :star:
-**Складність**: :star: :star:
+**Знання**: :star: :star: **Складність**: :star: :star:
**Час читання**: 15 хвилин
@@ -25,18 +24,18 @@ NFS — це клієнт/серверний протокол: сервер на
Для роботи NFS потрібні дві служби:
-* Служба `network` (звичайно)
-* Служба `rpcbind`
+- Служба `network` (звичайно)
+- Служба `rpcbind`
Перегляньте стан служб за допомогою команди:
-```
+```bash
systemctl status rpcbind
```
Якщо пакет `nfs-utils` не встановлено:
-```
+```bash
sudo dnf install nfs-utils
```
@@ -44,18 +43,18 @@ sudo dnf install nfs-utils
Запустіть службу NFS за допомогою:
-```
+```bash
sudo systemctl enable --now nfs-server rpcbind
```
Встановлення служби NFS створює двох користувачів:
-* `nobody`: використовується для анонімних з’єднань
-* `rpcuser`: для роботи протоколу RPC
+- `nobody`: використовується для анонімних з’єднань
+- `rpcuser`: для роботи протоколу RPC
Налаштування брандмауера необхідне:
-```
+```bash
sudo firewall-cmd --add-service={nfs,nfs3,mountd,rpc-bind} --permanent
sudo firewall-cmd --reload
```
@@ -70,20 +69,20 @@ sudo firewall-cmd --reload
Налаштуйте спільні ресурси за допомогою файлу `/etc/exports`. Кожен рядок у цьому файлі відповідає спільному ресурсу NFS.
-```
+```bash
/share_name client1(permissions) client2(permissions)
```
-* **/share_name**: абсолютний шлях до спільного каталогу
-* **clients**: клієнти, яким надано доступ до ресурсів
-* **(permissions)**: дозволи на ресурси
+- **/share_name**: абсолютний шлях до спільного каталогу
+- **clients**: клієнти, яким надано доступ до ресурсів
+- **(permissions)**: дозволи на ресурси
Оголошуйте машини, авторизовані для доступу до ресурсів за допомогою:
-* **IP-адреса**: `192.168.1.2`
-* **Мережева адреса**: `192.168.1.0/255.255.255.0` або формат CIDR `192.168.1.0/24`
-* **FQDN**: client_*.rockylinux.org: дозволяє FQDN починатися з client_ з домену rockylinux.org
-* `*` для всіх
+- **IP-адреса**: `192.168.1.2`
+- **Мережева адреса**: `192.168.1.0/255.255.255.0` або формат CIDR `192.168.1.0/24`
+- **FQDN**: client_*.rockylinux.org: дозволяє FQDN починатися з client_ з домену rockylinux.org
+- `*` для всіх
Кілька специфікацій клієнта можливі в одному рядку, розділених пробілом.
@@ -91,8 +90,8 @@ sudo firewall-cmd --reload
Є два типи дозволів:
-* `ro`: лише для читання
-* `rw`: читання-запис
+- `ro`: лише для читання
+- `rw`: читання-запис
Якщо права не вказано, застосоване право буде лише для читання.
@@ -100,7 +99,7 @@ sudo firewall-cmd --reload
Щоб примусово використовувати UID або GID, відмінні від ідентифікатора користувача, який створює ресурс, укажіть параметри `anonuid=UID` і `anongid=GID` або вкажіть `anonymous` доступ до даних за допомогою параметра `all_squash`.
-!!! warning "Увага"
+!!! warning "Увага"
Параметр `no_root_squash` визначає користувача root клієнта як користувача root сервера. Цей параметр може бути небезпечним з точки зору безпеки системи.
@@ -108,19 +107,19 @@ sudo firewall-cmd --reload
### Приклади застосування
-* `/share client(ro,all_squash)` Користувачі клієнта мають доступ лише для читання до ресурсів і ідентифікуються як анонімні на сервері.
+- `/share client(ro,all_squash)` Користувачі клієнта мають доступ лише для читання до ресурсів і ідентифікуються як анонімні на сервері.
-* `/share client(rw)` Користувачі клієнта можуть змінювати ресурси та зберігати свій UID на сервері. Лише `root` ідентифікується як `anonymous`.
+- `/share client(rw)` Користувачі клієнта можуть змінювати ресурси та зберігати свій UID на сервері. Лише `root` ідентифікується як `anonymous`.
-* `/share client1(rw) client2(ro)` Користувачі клієнтської робочої станції 1 можуть змінювати ресурси, а користувачі клієнтської робочої станції 2 мають доступ лише для читання. UID зберігаються на сервері, і лише `root` визначається як `anonymous`.
+- `/share client1(rw) client2(ro)` Користувачі клієнтської робочої станції 1 можуть змінювати ресурси, а користувачі клієнтської робочої станції 2 мають доступ лише для читання. UID зберігаються на сервері, і лише `root` визначається як `anonymous`.
-* `/share client(rw,all_squash,anonuid=1001,anongid=100)` Користувачі Client1 можуть змінювати ресурси. Їх UID змінено на `1001`, а GID на `100` на сервері.
+- `/share client(rw,all_squash,anonuid=1001,anongid=100)` Користувачі Client1 можуть змінювати ресурси. Їх UID змінено на `1001`, а GID на `100` на сервері.
### Команда `exportfs`
Команда `exportfs` (експортовані файлові системи) використовується для керування таблицею локальних файлів, спільних для клієнтів NFS.
-```
+```bash
exportfs [-a] [-r] [-u share_name] [-v]
```
@@ -135,7 +134,7 @@ exportfs [-a] [-r] [-u share_name] [-v]
Команда `showmount` стежить за клієнтами.
-```
+```bash
showmount [-a] [-e] [host]
```
@@ -156,26 +155,26 @@ showmount [-a] [-e] [host]
Якщо потрібно, створіть локальну папку для монтування:
-```
-$ sudo mkdir /mnt/nfs
+```bash
+sudo mkdir /mnt/nfs
```
Список доступних спільних ресурсів NFS на сервері:
-```
+```bash
$ showmount –e 172.16.1.10
/share *
```
Підключіть спільний ресурс NFS сервера:
-```
-$ mount –t nfs 172.16.1.10:/share /mnt/nfs
+```bash
+mount –t nfs 172.16.1.10:/share /mnt/nfs
```
Автоматизація монтування може відбутися під час запуску системи за допомогою файлу `/etc/fstab`:
-```
+```bash
$ sudo vim /etc/fstab
172.16.1.10:/share /mnt/nfs nfs defaults 0 0
```
diff --git a/docs/guides/file_sharing/secure_ftp_server_vsftpd.uk.md b/docs/guides/file_sharing/secure_ftp_server_vsftpd.uk.md
index 11799510fb..ac22826b14 100644
--- a/docs/guides/file_sharing/secure_ftp_server_vsftpd.uk.md
+++ b/docs/guides/file_sharing/secure_ftp_server_vsftpd.uk.md
@@ -13,10 +13,10 @@ tags:
## Передумови
-* Вміння працювати з редактором командного рядка (у цьому прикладі використовується `vi`)
-* Високий рівень комфорту з видачею команд із командного рядка, переглядом журналів та іншими загальними обов’язками системного адміністратора
-* Корисним є розуміння PAM і команд `openssl`
-* Запуск команд тут за допомогою користувача root або звичайного користувача та `sudo`
+- Вміння працювати з редактором командного рядка (у цьому прикладі використовується `vi`)
+- Високий рівень комфорту з видачею команд із командного рядка, переглядом журналів та іншими загальними обов’язками системного адміністратора
+- Корисним є розуміння PAM і команд `openssl`
+- Запуск команд тут за допомогою користувача root або звичайного користувача та `sudo`
## Вступ
@@ -32,14 +32,13 @@ tags:
Ви також повинні переконатися, що встановлено `openssl`. Якщо ви використовуєте веб-сервер, можливо, **є** вже встановлено, але для перевірки ви можете виконати:
-
-```
+```bash
dnf install vsftpd openssl
```
Ви також захочете ввімкнути службу vsftpd:
-```
+```bash
systemctl enable vsftpd
```
@@ -51,37 +50,37 @@ systemctl enable vsftpd
Щоб перевірити файл конфігурації та за потреби внести зміни, запустіть:
-```
+```bash
vi /etc/vsftpd/vsftpd.conf
```
Знайдіть рядок «anonymous_enable=" і переконайтеся, що він «НІ» та **НЕ** закоментований. (Коментування цього рядка увімкне анонімний вхід). Рядок виглядатиме так, якщо він правильний:
-```
+```bash
anonymous_enable=NO
```
Переконайтеся, що «local_enable» має значення «yes»:
-```
+```bash
local_enable=YES
```
Додайте рядок для локального користувача root. Якщо сервер є веб-сервером, і ви використовуєте [налаштування веб-сервера Apache Multi-Site](../web/apache-sites-enabled.md), це відображатиме ваш локальний корень. Якщо ваші налаштування відрізняються або це не веб-сервер, змініть параметр "local_root":
-```
+```bash
local_root=/var/www/sub-domains
```
Також переконайтеся, що «write_enable» має значення «yes»:
-```
+```bash
write_enable=YES
```
Знайдіть рядок "chroot_local_user" і видаліть зауваження. Додайте два рядки після показаного тут:
-```
+```bash
chroot_local_user=YES
allow_writeable_chroot=YES
hide_ids=YES
@@ -89,7 +88,7 @@ hide_ids=YES
Під цим ви хочете додати розділ, який стосуватиметься віртуальних користувачів:
-```
+```bash
# Virtual User Settings
user_config_dir=/etc/vsftpd/vsftpd_user_conf
guest_enable=YES
@@ -103,7 +102,7 @@ guest_username=vsftpd
Почніть із додавання цих рядків у нижній частині файлу:
-```
+```bash
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.key
ssl_enable=YES
@@ -118,7 +117,7 @@ pasv_min_port=7000
pasv_max_port=7500
```
-Збережіть конфігурацію. (SHIFT+:+wq для `vi`.)
+Збережіть конфігурацію. (++shift+colon+w+q++ для `vi`.)
## Налаштування сертифіката RSA
@@ -126,7 +125,7 @@ pasv_max_port=7500
Відредагуйте кількість днів, як вважаєте за потрібне, і використовуйте формат цієї команди, щоб створити файли сертифіката та закритого ключа:
-```
+```bash
openssl req -x509 -nodes -days 1825 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.key -out /etc/vsftpd/vsftpd.pem
```
@@ -134,53 +133,53 @@ openssl req -x509 -nodes -days 1825 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.
Перше поле – поле коду країни; заповніть цей дволітерний код вашої країни:
-```
+```text
Country Name (2 letter code) [XX]:
```
Далі йде штат або провінція, заповніть це, ввівши повну назву, а не абревіатуру:
-```
+```text
State or Province Name (full name) []:
```
Далі йде назва населеного пункту. Це твоє місто:
-```
+```text
Locality Name (eg, city) [Default City]:
```
Далі йде назва компанії або організації. Ви можете залишити це поле порожнім або заповнити його. Це необов'язково:
-```
+```text
Organization Name (eg, company) [Default Company Ltd]:
```
Далі вказується назва організаційного підрозділу. Ви можете заповнити це поле, якщо сервер призначено для певного підрозділу, або залишити поле порожнім:
-```
+```text
Organizational Unit Name (eg, section) []:
```
Наступне поле потрібно заповнити, але ви можете вирішити, як вам це потрібно. Це загальна назва вашого сервера. Приклад: `webftp.domainname.ext`:
-```
+```text
Common Name (eg, your name or your server's hostname) []:
```
Поле електронної пошти можна залишити порожнім:
-```
+```text
Email Address []:
```
Після завершення буде створено сертифікат.
-## Налаштування віртуальних користувачів
+## Налаштування віртуальних користувачів
Як було сказано раніше, використання віртуальних користувачів для `vsftpd` набагато безпечніше, оскільки вони не мають системних привілеїв. Тим не менш, вам потрібно додати користувача для віртуальних користувачів. Також потрібно додати групу:
-```
+```bash
groupadd nogroup
useradd --home-dir /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
```
@@ -189,7 +188,7 @@ useradd --home-dir /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
Перейдіть до каталогу конфігурації для `vsftpd`:
-```
+```bash
cd /etc/vsftpd
```
@@ -197,13 +196,13 @@ cd /etc/vsftpd
У майбутньому, додаючи користувачів, ви захочете повторити цей процес знову:
-```
+```bash
vi vusers.txt
```
-Користувач і пароль розділені рядками, введіть користувача, натисніть ENTER і введіть пароль. Продовжуйте, доки не додасте всіх користувачів, яким наразі потрібно надати доступ до системи. Приклад:
+Користувач і пароль розділені рядками, введіть користувача, натисніть ++enter++ і введіть пароль. Продовжуйте, доки не додасте всіх користувачів, яким наразі потрібно надати доступ до системи. Приклад:
-```
+```bash
user_name_a
user_password_a
user_name_b
@@ -212,35 +211,34 @@ user_password_b
Після завершення створення текстового файлу ви хочете створити базу даних паролів, яку `vsftpd` використовуватиме для віртуальних користувачів. Зробіть це за допомогою команди `db_load`. `db_load` надається `libdb-utils`, який має бути завантажений у вашій системі, але якщо це не так, ви можете просто встановити його за допомогою:
-```
+```bash
dnf install libdb-utils
```
Створіть базу даних із текстового файлу за допомогою:
-```
+```bash
db_load -T -t hash -f vusers.txt vsftpd-virtual-user.db
```
Приділіть хвилинку, щоб переглянути, що робить `db_load`:
-
-* Параметр -T дозволяє імпортувати текстовий файл до бази даних
-* Параметр -t каже, що потрібно вказати основний метод доступу
-* _Хеш_ є основним методом доступу, який ви вказуєте
-* Параметр -f говорить про читання з указаного файлу
-* Указаний файл — _vusers.txt_
-* А база даних, яку ви створюєте чи додаєте, це _vsftpd-virtual-user.db_
+- Параметр -T дозволяє імпортувати текстовий файл до бази даних
+- Параметр -t каже, що потрібно вказати основний метод доступу
+- *Хеш* є основним методом доступу, який ви вказуєте
+- Параметр -f говорить про читання з указаного файлу
+- Указаний файл — *vusers.txt*
+- А база даних, яку ви створюєте чи додаєте, це *vsftpd-virtual-user.db*
Змініть дозволи за замовчуванням для файлу бази даних:
-```
+```bash
chmod 600 vsftpd-virtual-user.db
```
Видаліть файл "vusers.txt":
-```
+```bash
rm vusers.txt
```
@@ -252,31 +250,31 @@ rm vusers.txt
Створіть каталог для файлу резервної копії в /root:
-```
+```bash
mkdir /root/backup_vsftpd_pam
```
Скопіюйте файл pam до цього каталогу:
-```
+```bash
cp /etc/pam.d/vsftpd /root/backup_vsftpd_pam/
```
Відредагуйте вихідний файл:
-```
+```bash
vi /etc/pam.d/vsftpd
```
Видаліть у цьому файлі все, крім "#%PAM-1.0", і додайте такі рядки:
-```
+```bash
auth required pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user
account required pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user
session required pam_loginuid.so
```
-Збережіть зміни та вийдіть (SHIFT+:+wq у `vi`).
+Збережіть зміни та вийдіть (++shift+colon+w+q++ у `vi`).
Це дозволить ввійти для ваших віртуальних користувачів, визначених у `vsftpd-virtual-user.db`, і вимкне локальні входи.
@@ -284,22 +282,22 @@ session required pam_loginuid.so
Кожен віртуальний користувач має конфігураційний файл із зазначенням власного каталогу "local_root". Власником цього локального кореня є користувач "vsftpd" і група "nogroup".
-Див. розділ [Налаштування віртуальних користувачів вище.](#virtualusers) Щоб змінити право власності на каталог, введіть це в командному рядку:
+Див. розділ [Налаштування віртуальних користувачів вище.](#setting-up-virtual-users) Щоб змінити право власності на каталог, введіть це в командному рядку:
-```
+```bash
chown vsftpd.nogroup /var/www/sub-domains/whatever_the_domain_name_is/html
```
Вам потрібно створити файл із конфігурацією віртуального користувача:
-```
+```bash
mkdir /etc/vsftpd/vsftpd_user_conf
vi /etc/vsftpd/vsftpd_user_conf/username
```
У ньому буде один рядок, який визначає "local_root" віртуального користувача:
-```
+```bash
local_root=/var/www/sub-domains/com.testdomain/html
```
@@ -309,7 +307,7 @@ local_root=/var/www/sub-domains/com.testdomain/html
Запустіть службу `vsftpd` і перевірте своїх користувачів, припускаючи, що служба запускається правильно:
-```
+```bash
systemctl restart vsftpd
```
diff --git a/docs/guides/file_sharing/sftp.uk.md b/docs/guides/file_sharing/sftp.uk.md
index 71574e1126..f2a61f8019 100644
--- a/docs/guides/file_sharing/sftp.uk.md
+++ b/docs/guides/file_sharing/sftp.uk.md
@@ -45,11 +45,11 @@ tags:
Припущення полягають у тому, що:
-* вам зручно виконувати команди в командному рядку.
-* ви можете використовувати редактор командного рядка, наприклад `vi` (використовується тут), `nano`, `micro` тощо.
-* ви розумієте основні команди Linux для додавання груп і користувачів або можете добре слідувати.
-* ваш багатосайтовий веб-сайт налаштовано так: [Apache Multisite](../web/apache-sites-enabled.md)
-* `httpd` (Apache) уже встановлено на сервері.
+- вам зручно виконувати команди в командному рядку.
+- ви можете використовувати редактор командного рядка, наприклад `vi` (використовується тут), `nano`, `micro` тощо.
+- ви розумієте основні команди Linux для додавання груп і користувачів або можете добре слідувати.
+- ваш багатосайтовий веб-сайт налаштовано так: [Apache Multisite](../web/apache-sites-enabled.md)
+- `httpd` (Apache) уже встановлено на сервері.
!!! note "Примітка"
@@ -61,13 +61,13 @@ tags:
**Сайти:**
-* mybrokenaxel = (site1.com) user = mybroken
-* myfixedaxel = (site2.com) user = myfixed
+- mybrokenaxel = (site1.com) user = mybroken
+- myfixedaxel = (site2.com) user = myfixed
-**Адміністратори**
+**Адміністратори:**
-* Steve Simpson = ssimpson
-* Laura Blakely = lblakely
+- Steve Simpson = ssimpson
+- Laura Blakely = lblakely
## Частина 2: SFTP chroot jail
@@ -75,7 +75,7 @@ tags:
Установка проста. Вам потрібно встановити `openssh-server`, який, ймовірно, уже встановлено. Щоб переконатися, введіть цю команду:
-```
+```bash
dnf install openssh-server
```
@@ -87,17 +87,18 @@ dnf install openssh-server
Створення каталогів конфігурації:
-```
+```bash
mkdir -p /etc/httpd/sites-available
mkdir -p /etc/httpd/sites-enabled
```
Створення веб-каталогів:
-```
+```bash
mkdir -p /var/www/sub-domains/com.site1/html
mkdir -p /var/www/sub-domains/com.site2/html
```
+
Пізніше ви розберетеся з правом власності на ці каталоги в програмі сценарію.
### Конфігурація `httpd`
@@ -106,13 +107,13 @@ mkdir -p /var/www/sub-domains/com.site2/html
Відредагуйте файл за допомогою улюбленого редактора. Автор використовує тут `vi`:
-```
+```bash
vi /etc/httpd/conf/httpd.conf
```
і додайте це внизу файлу:
-```
+```bash
Include /etc/httpd/sites-enabled
```
@@ -122,7 +123,7 @@ Include /etc/httpd/sites-enabled
Потрібно створити два сайти. Ви створите конфігурації в `/etc/httpd/sites-available` і зв’яжете їх з `../sites-enabled`:
-```
+```bash
vi /etc/httpd/sites-available/com.site1
```
@@ -130,7 +131,7 @@ vi /etc/httpd/sites-available/com.site1
У прикладі використовується лише протокол HTTP. Будь-якому реальному веб-сайту потрібна конфігурація протоколу HTTPS, сертифікати SSL і, можливо, багато іншого.
-```
+```bash
ServerName www.site1.com
ServerAdmin username@rockylinux.org
@@ -154,13 +155,14 @@ vi /etc/httpd/sites-available/com.site1
```
+
Збережіть цей файл і вийдіть.
-```
+```bash
vi /etc/httpd/sites-available/com.site2
```
-```
+```bash
ServerName www.site2.com
ServerAdmin username@rockylinux.org
@@ -184,17 +186,19 @@ vi /etc/httpd/sites-available/com.site2
```
+
Збережіть цей файл і вийдіть.
Завершивши створення двох конфігураційних файлів, зв’яжіть їх із `/etc/httpd/sites-enabled`:
-```
+```bash
ln -s ../sites-available/com.site1
ln -s ../sites-available/com.site2
```
+
Увімкніть і запустіть процес `httpd`:
-```
+```bash
systemctl enable --now httpd
```
@@ -204,15 +208,16 @@ systemctl enable --now httpd
#### Адміністратори
-```
+```bash
useradd -g wheel ssimpson
useradd -g wheel lblakely
```
+
Додаючи наших користувачів до групи "wheel", ви надаєте їм доступ `sudo`.
Вам усе одно потрібен пароль для доступу до `sudo`. Є способи обійти це, але жоден із них не є настільки безпечним. Чесно кажучи, якщо у вас є проблеми з безпекою під час використання `sudo` на вашому сервері, у вас є набагато більші проблеми з усією установкою. Встановіть два паролі адміністратора з безпечними паролями:
-```
+```bash
passwd ssimpson
Changing password for user ssimpson.
New password:
@@ -228,8 +233,8 @@ passwd: all authentication tokens updated successfully.
Перевірте доступ до сервера за допомогою `ssh` для ваших двох адміністраторів. Ви повинні вміти:
-* використовувати `ssh`, щоб увійти як один із адміністраторів на сервері. (Приклад: `ssh lblakely@192.168.1.116` або `ssh lblakely@mywebserver.com`)
-* ви повинні мати доступ до root за допомогою `sudo -s` та введення пароля адміністратора.
+- використовувати `ssh`, щоб увійти як один із адміністраторів на сервері. (Приклад: `ssh lblakely@192.168.1.116` або `ssh lblakely@mywebserver.com`)
+- ви повинні мати доступ до root за допомогою `sudo -s` та введення пароля адміністратора.
Ви будете готові до наступного кроку, якщо це спрацює для всіх адміністраторів.
@@ -237,24 +242,24 @@ passwd: all authentication tokens updated successfully.
Вам потрібно додати наших веб-користувачів. Структура каталогу `../html` уже існує, тому ви не хочете створювати її під час додавання користувача, але ви *бажаєте* вказати це. Вам також не потрібен інший вхід, окрім SFTP, тому ви повинні використовувати оболонку, яка забороняє вхід.
-```
+```bash
useradd -M -d /var/www/sub-domains/com.site1/html -g apache -s /usr/sbin/nologin mybroken
useradd -M -d /var/www/sub-domains/com.site2/html -g apache -s /usr/sbin/nologin myfixed
```
Трохи розберемо ці команди:
-* Параметр `-M` каже *не* створювати стандартний домашній каталог для користувача.
-* `-d` вказує, що далі буде *фактичний* домашній каталог.
-* `-g` повідомляє, що група, до якої належить цей користувач, — `apache`.
-* `-s` повідомляє, що призначена оболонка `/usr/sbin/nologin`
-* У кінці вказано фактичне ім’я користувача.
+- Параметр `-M` каже *не* створювати стандартний домашній каталог для користувача.
+- `-d` вказує, що далі буде *фактичний* домашній каталог.
+- `-g` повідомляє, що група, до якої належить цей користувач, — `apache`.
+- `-s` повідомляє, що призначена оболонка `/usr/sbin/nologin`
+- У кінці вказано фактичне ім’я користувача.
**Примітка.** Для сервера Nginx ви б використовували `nginx` як групу.
Нашим користувачам SFTP все ще потрібні паролі. Встановіть безпечний пароль для кожного зараз. Ви вже бачили результат команди вище:
-```
+```bash
passwd mybroken
passwd myfixed
```
@@ -273,24 +278,25 @@ passwd myfixed
Спочатку внесіть необхідні зміни вручну:
-```
+```bash
vi /etc/ssh/sshd_config
```
Унизу файлу ви знайдете це:
-```
+```bash
# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server
```
Ви хочете змінити це на наступне:
-```
+```bash
# override default of no subsystems
# Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
```
+
Збережіть і закрийте файл.
`sftp-сервер` і `internal-sftp` є частиною OpenSSH. `internal-sftp`, хоч і не надто відрізняється від `sftp-сервера`, спрощує конфігурації за допомогою `ChrootDirectory`, щоб примусово використовувати іншу кореневу файлову систему для клієнтів. Ось чому ви використовуєте `internal-sftp`.
@@ -303,13 +309,13 @@ Subsystem sftp internal-sftp
Спочатку створіть свій шаблон:
-```
+```bash
vi /usr/local/sbin/sshd_template
```
Цей шаблон матиме наступне:
-```
+```bash
Match User replaceuser
PasswordAuthentication yes
ChrootDirectory replacedirectory
@@ -324,11 +330,10 @@ Match User replaceuser
#### Зміни сценарію і `sshd_config`
-```
+```bash
mkdir /usr/local/sbin/templates
```
-
#### Сценарій і `sshd_config` змінюються
У випусках Rocky Linux 8.6 і 9.0 нова опція для файлу `sshd_config` дозволяє вставляти конфігурації. Це **ЧУДОВА** зміна. Це означає, що для цих версій ви внесете одну додаткову зміну у файл `sshd_config`, а потім наш сценарій створить зміни sftp в окремому файлі конфігурації. Ця нова зміна робить речі ще безпечнішими. Безпека - це добре!!
@@ -337,13 +342,13 @@ mkdir /usr/local/sbin/templates
Для початку створіть цей каталог:
-```
+```bash
mkdir /etc/ssh/sftp
```
Тепер створіть резервну копію `sshd_config`:
-```
+```bash
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
```
@@ -355,13 +360,13 @@ cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Збережіть зміни та вийдіть із файлу. Вам потрібно буде перезапустити `sshd`, але наш сценарій зробить це за нас після оновлення файлу `sftp_config`, тому створіть сценарій і запустіть його.
-```
+```bash
vi /usr/local/sbin/webuser
```
І вставте в нього цей код:
-```
+```bash
#!/bin/bash
# script to populate the SSHD configuration for web users.
@@ -433,7 +438,7 @@ SFTP chroot вимагає, щоб шлях, указаний у `sshd_config`,
Зробіть сценарій виконуваним:
-```
+```bash
chmod +x /usr/local/sbin/webuser
```
@@ -443,17 +448,18 @@ chmod +x /usr/local/sbin/webuser
Спочатку перевірте за допомогою `ssh` з іншої машини на нашу хост-машину як один із користувачів SFTP. Ви повинні отримати це після введення пароля:
-```
+```bash
Ця служба дозволяє лише з’єднання sftp.
```
+
#### Тестування графічного інструменту
Якщо ви *отримаєте* це повідомлення, наступним чином перевірте доступ SFTP. Для простоти тестування ви можете використовувати графічну програму FTP, яка підтримує SFTP, наприклад Filezilla. У таких випадках ваші поля виглядатимуть приблизно так:
-* **Host:** sftp://hostname_or_IP_of_the_server
-* **Username:** (Приклад: myfixed)
-* **Password:** (пароль користувача SFTP)
-* **Port:** якщо ви використовуєте SSH і SFTP на порті за замовчуванням 22, введіть цей порт
+- **Host:** sftp://hostname_or_IP_of_the_server
+- **Username:** (Приклад: myfixed)
+- **Password:** (пароль користувача SFTP)
+- **Port:** якщо ви використовуєте SSH і SFTP на порті за замовчуванням 22, введіть цей порт
Після заповнення ви можете натиснути кнопку «Швидке підключення» (Filezilla), і ви підключитесь до каталогу `../html` відповідного сайту. Двічі клацніть на каталозі "html", щоб помістити себе в нього та спробувати перекинути файл у каталог. Якщо ви досягли успіху, все працює правильно.
@@ -461,13 +467,13 @@ chmod +x /usr/local/sbin/webuser
Ви можете зробити все це з командного рядка на машині з інстальованим SSH (більшість установок Linux). Ось короткий огляд методу підключення за допомогою командного рядка та кілька параметрів:
-* sftp ім’я користувача (Приклад: myfixed@ hostname або IP-адреса сервера: sftp myfixed@192.168.1.116)
-* Введіть пароль, коли буде запропоновано
-* cd html (перейти до каталогу html)
-* pwd (має показувати, що ви перебуваєте в каталозі html)
-* lpwd (повинен показати ваш локальний робочий каталог)
-* lcd PATH (має змінити ваш локальний робочий каталог на те, що ви хочете використовувати)
-* put filename (буде скопійовано файл до каталогу `..html`)
+- sftp ім’я користувача (Приклад: myfixed@ hostname або IP-адреса сервера: sftp myfixed@192.168.1.116)
+- Введіть пароль, коли буде запропоновано
+- cd html (перейти до каталогу html)
+- pwd (має показувати, що ви перебуваєте в каталозі html)
+- lpwd (повинен показати ваш локальний робочий каталог)
+- lcd PATH (має змінити ваш локальний робочий каталог на те, що ви хочете використовувати)
+- put filename (буде скопійовано файл до каталогу `..html`)
Щоб отримати вичерпний перелік параметрів та багато іншого, перегляньте [сторінку посібника SFTP](https://man7.org/linux/man-pages/man1/sftp.1.html).
@@ -475,7 +481,7 @@ chmod +x /usr/local/sbin/webuser
Для наших фіктивних доменів ви хочете створити пару файлів `index.html`, якими можна заповнити каталог `../html`. Після створення їх потрібно розмістити в каталозі для кожного домену з обліковими даними SFTP. Ці файли спрощені. Ви просто хочете щось перевірити, чи ваші сайти запущені й працюють, а SFTP працює належним чином. Ось приклад цього файлу. Ви можете змінити його, якщо хочете:
-```
+```html
@@ -492,12 +498,12 @@ chmod +x /usr/local/sbin/webuser
### Веб-тести
-Вам потрібно змінити файл _hosts_ на вашій робочій станції, щоб перевірити, чи ці файли відображаються та завантажуються належним чином. Для Linux це буде `sudo vi /etc/hosts` і додайте IP-адресу та імена хостів, які ви тестуєте, ось так:
+Вам потрібно змінити файл *hosts* на вашій робочій станції, щоб перевірити, чи ці файли відображаються та завантажуються належним чином. Для Linux це буде `sudo vi /etc/hosts` і додайте IP-адресу та імена хостів, які ви тестуєте, ось так:
-```
-127.0.0.1 localhost
-192.168.1.116 www.site1.com site1.com
-192.168.1.116 www.site2.com site2.com
+```bash
+127.0.0.1 localhost
+192.168.1.116 www.site1.com site1.com
+192.168.1.116 www.site2.com site2.com
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
@@ -510,7 +516,7 @@ ff02::2 ip6-allrouters
Ви б хотіли заповнити ваші DNS-сервери зазначеними вище хостами для справжніх доменів. Однак ви можете використовувати цей *DNS бідняка* для тестування будь-якого домену, навіть того, який не був активований на справжніх серверах DNS.
-Відкрийте веб-переглядач і переконайтеся, що ваш файл `index.html` для кожного домену відображається, ввівши URL-адресу в адресний рядок вашого браузера. (Приклад: "http://site1.com") Якщо файли тестового індексу завантажуються, все працює правильно.
+Відкрийте веб-переглядач і переконайтеся, що ваш файл `index.html` для кожного домену відображається, ввівши URL-адресу в адресний рядок вашого браузера. (Приклад: ) Якщо файли тестового індексу завантажуються, все працює правильно.
## Частина 3: Адміністративний доступ за допомогою пар ключів SSH
@@ -520,26 +526,26 @@ ff02::2 ip6-allrouters
З командного рядка однієї з робочих станцій адміністратора (приклад: lblakely) виконайте наступне:
-```
+```bash
ssh-keygen -t rsa
```
Що дасть вам це:
-```
+```text
Generating public/private rsa key pair.
Enter file in which to save the key (/home/lblakely/.ssh/id_rsa):
```
Натисніть Enter, щоб створити закритий ключ у вказаному місці. Це дасть вам таке діалогове вікно:
-```
+```text
Enter passphrase (empty for no passphrase):
```
Ви повинні особисто вирішити, чи потрібна вам парольна фраза для цього кроку. Автор завжди просто натискає сюди.
-```
+```text
Enter same passphrase again:
```
@@ -553,13 +559,13 @@ Enter same passphrase again:
Користувач може безпечно надіслати ключ на сервер за допомогою `ssh-id-copy` після створення:
-```
+```bash
ssh-id-copy lblakely@192.168.1.116
```
-Сервер один раз запитає пароль користувача та скопіює ключ у _authorized_keys_. Ви також отримаєте це повідомлення:
+Сервер один раз запитає пароль користувача та скопіює ключ у *authorized_keys*. Ви також отримаєте це повідомлення:
-```
+```bash
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'lblakely@192.168.1.116'"
@@ -574,37 +580,37 @@ and check to make sure that only the key(s) you wanted were added.
Щоб виконати цей крок, вам потрібно знову змінити `sshd_config` і, як і раніше, спочатку потрібно створити резервну копію файлу:
-```
+```bash
cp -f /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
```
Далі відредагуйте файл `sshd_config`:
-```
+```bash
vi /etc/ssh/sshd_config
```
Ви хочете вимкнути тунельовані паролі. Знайдіть цей рядок у конфігурації:
-```
+```text
PasswordAuthentication yes
```
Змініть його на "no" - зауважте, що це лише зауваження, що цей рядок не завершиться, оскільки за замовчуванням завжди "yes".
-```
+```text
PasswordAuthentication no
```
Автентифікацію з відкритим ключем увімкнено за замовчуванням, але переконайтеся, що це так, видаливши примітку перед цим рядком:
-```
+```text
#PubkeyAuthentication yes
```
Так, щоб воно читало:
-```
+```text
PubkeyAuthentication yes
```
@@ -612,7 +618,7 @@ PubkeyAuthentication yes
Збережіть зміни. Схрестіть пальці та перезапустіть `sshd`:
-```
+```bash
systemctl restart sshd
```
@@ -622,7 +628,7 @@ systemctl restart sshd
Ви функціонально це вже зробили. Якщо ви спробуєте зараз увійти на сервер із правами root, ви отримаєте наступне:
-```
+```bash
root@192.168.1.116: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
```
@@ -630,31 +636,31 @@ root@192.168.1.116: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Подібно до будь-якого іншого кроку під час зміни файлу `sshd_config`, перш ніж продовжити, потрібно створити резервну копію файлу:
-```
+```bash
cp -f /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
```
Відредагуйте `sshd_config`:
-```
+```bash
vi /etc/ssh/sshd_config
```
Знайдіть цей рядок:
-```
+```text
PermitRootLogin yes
```
Змініть його на "no":
-```
+```text
PermitRootLogin no
```
Збережіть, вийдіть із файлу та перезапустіть `sshd`:
-```
+```bash
systemctl restart sshd
```
@@ -668,26 +674,26 @@ systemctl restart sshd
Це рішення передбачає фізичний доступ до сервера та те, що сервер є фізичним обладнанням, а не віртуальним (контейнер або віртуальна машина):
-* Додайте користувача до групи «колесо» на сервері SFTP
-* Попросіть користувача згенерувати відкритий і закритий ключі SSH
-* За допомогою USB-накопичувача скопіюйте відкритий ключ на диск, фізично перенесіть його на сервер і встановіть його вручну в новому каталозі системних адміністраторів `/home/[username]/.ssh`
+- Додайте користувача до групи «колесо» на сервері SFTP
+- Попросіть користувача згенерувати відкритий і закритий ключі SSH
+- За допомогою USB-накопичувача скопіюйте відкритий ключ на диск, фізично перенесіть його на сервер і встановіть його вручну в новому каталозі системних адміністраторів `/home/[username]/.ssh`
### Друге рішення – тимчасово відредагуйте `sshd_config`
Це рішення схильне до людських помилок, але оскільки це робиться нечасто, можливо, буде добре, якщо це робити обережно:
-* Додайте користувача до групи «колесо» на сервері SFTP
-* Попросіть іншого системного адміністратора, який уже має автентифікацію на основі ключа, тимчасово ввімкніть «PasswordAuthentication yes» у файлі `sshd_config` і перезапустіть `sshd`
-* Попросіть нового системного адміністратора запустити `ssh-copy-id`, використовуючи свій пароль, щоб скопіювати ключ ssh на сервер.
+- Додайте користувача до групи «колесо» на сервері SFTP
+- Попросіть іншого системного адміністратора, який уже має автентифікацію на основі ключа, тимчасово ввімкніть «PasswordAuthentication yes» у файлі `sshd_config` і перезапустіть `sshd`
+- Попросіть нового системного адміністратора запустити `ssh-copy-id`, використовуючи свій пароль, щоб скопіювати ключ ssh на сервер.
### Рішення третє - сценарій процесу
Цей процес використовує системного адміністратора, який уже має доступ на основі ключів, і сценарій, який має виконуватися з `bash [script-name]`, щоб виконати те саме, що й у «Рішенні два» вище:
-* вручну відредагуйте файл `sshd_config` і видаліть виділений рядок, який виглядає так: `#PasswordAuthentication no`. Цей рядок документує процес вимкнення автентифікації пароля, але він заважатиме сценарію нижче, оскільки наш сценарій шукатиме перше входження `PasswordAuthentication no`, а пізніше перше входження ` PasswordAuthentication так`. Якщо ви видалите цей один рядок, наш сценарій працюватиме нормально.
-* створіть сценарій на сервері SFTP під назвою "quickswitch" або як завгодно його називаєте. Вміст цього сценарію виглядатиме так:
+- вручну відредагуйте файл `sshd_config` і видаліть виділений рядок, який виглядає так: `#PasswordAuthentication no`. Цей рядок документує процес вимкнення автентифікації пароля, але він заважатиме сценарію нижче, оскільки наш сценарій шукатиме перше входження `PasswordAuthentication no`, а пізніше перше входження ` PasswordAuthentication так`. Якщо ви видалите цей один рядок, наш сценарій працюватиме нормально.
+- створіть сценарій на сервері SFTP під назвою "quickswitch" або як завгодно його називаєте. Вміст цього сценарію виглядатиме так:
-```
+```bash
#!/bin/bash
# for use in adding a new system administrator
@@ -701,7 +707,8 @@ read yn
/usr/bin/systemctl restart sshd
echo "Changes reversed"
```
-Пояснення сценарію: ви не робите цей сценарій виконуваним. Причина в тому, що ви не хочете, щоб він запускався випадково. Сценарій працює (як зазначено вище) так: `bash /usr/local/sbin/quickswitch`. Цей сценарій створює резервну копію файлу `sshd_config`, як і інші наші приклади вище. Потім він редагує файл `sshd_config` на місці та шукає *ПЕРШУ* появу `PasswordAuthentication no` та змінює його на `PasswordAuthentication yes`, потім перезапускає `sshd` і чекає, поки користувач сценарію натисне ENTER, перш ніж продовжити. Системний адміністратор, який запускає сценарій, спілкуватиметься з новим системним адміністратором, і коли цей новий системний адміністратор запускає `ssh-copy-id`, щоб скопіювати свій ключ на сервер, системний адміністратор, який запускає сценарій натискає Enter, і це скасовує зміни.
+
+Пояснення сценарію: ви не робите цей сценарій виконуваним. Причина в тому, що ви не хочете, щоб він запускався випадково. Сценарій працює (як зазначено вище) так: `bash /usr/local/sbin/quickswitch`. Цей сценарій створює резервну копію файлу `sshd_config`, як і інші наші приклади вище. Потім він редагує файл `sshd_config` на місці та шукає *ПЕРШУ* появу `PasswordAuthentication no` та змінює його на `PasswordAuthentication yes`, потім перезапускає `sshd` і чекає, поки користувач сценарію натисне ++enter++, перш ніж продовжити. Системний адміністратор, який запускає сценарій, спілкуватиметься з новим системним адміністратором, і коли цей новий системний адміністратор запускає `ssh-copy-id`, щоб скопіювати свій ключ на сервер, системний адміністратор, який запускає сценарій натискає Enter, і це скасовує зміни.
Коротше кажучи, існує багато способів додати іншого системного адміністратора після впровадження процедур блокування SSH.