diff --git a/family/how-to/red2tb-dataset-map.md b/family/how-to/red2tb-dataset-map.md index 68c6002e..df50140a 100644 --- a/family/how-to/red2tb-dataset-map.md +++ b/family/how-to/red2tb-dataset-map.md @@ -102,6 +102,6 @@ builtin_administrators gid=544 → root, truenas_admin > 🔴 **`truenas_admin` НЕ root и НЕ в группе 0.** Любой файл/каталог `root:root` + `rwxrwx---` для него закрыт. > Это НЕ поломка ФС и НЕ повод лезть в ACL — сначала посчитать `owner/group/other` против его groups. > -> **Применённый план (2026-09-23, согласован, не выполнен):** рекурсивно по `Edu` — владелец-группа `nas_users`, +> **Применённый план (2026-09-23, ✅ ВЫПОЛНЕН):** рекурсивно по `Edu` — владелец-группа `nas_users`, > ACE `group@` с `flags.BASIC: INHERIT` (read-modify-write, сохраняя `id`; `stripacl` НЕ использовать). > Детали и подводные камни — [[truenas-infrastructure]] § «WebDAV — устройство и разбор … Edu/Маскелиаде». diff --git a/family/how-to/truenas-infrastructure.md b/family/how-to/truenas-infrastructure.md index fe0f5b9a..638435f9 100644 --- a/family/how-to/truenas-infrastructure.md +++ b/family/how-to/truenas-infrastructure.md @@ -319,7 +319,7 @@ nas_users:x:3000:root,truenas_admin,mallexxx,nas,transmission ``` Одна ACE на эту группу покрывает сразу всех потребителей (админ, `nas`, `mallexxx`, transmission) — вместо россыпи персональных ACE. Альтернатива: `builtin_administrators` (gid 544, `root,truenas_admin`). -**План фикса (согласован, НЕ выполнен на 2026-09-23) — из 3 шагов:** +**План фикса (согласован, ✅ ВЫПОЛНЕН 2026-09-23 — фактическое состояние) — из 3 шагов:** 1. Бэкап ACL (ничего не меняет): ```bash midclt call filesystem.getacl /mnt/RED_2TB/Edu > /mnt/RED_2TB/storage/acl-edu-before-$(date +%Y%m%d-%H%M%S).json @@ -330,6 +330,21 @@ nas_users:x:3000:root,truenas_admin,mallexxx,nas,transmission **Развилка, которую нужно подтвердить перед выполнением:** `nas_users` (gid 3000) vs `builtin_administrators` (gid 544); и подтверждение рекурсии по всему `Edu` (~214 ГБ). +> ✅ **ВЫПОЛНЕНО 2026-09-23 (вечер). Выбрана `nas_users` (gid 3000), рекурсия по всему `Edu` (~223 ГБ).** +> Фактический результат живой проверки: +> ``` +> drwxrwxr-x 12 root nas_users 14 Sep 22 23:47 /mnt/RED_2TB/Edu +> drwxrwxr-x 8 root nas_users 14 Sep 22 23:56 /mnt/RED_2TB/Edu/Маскелиаде +> ``` +> То есть **корень `Edu` и всё дерево = `root:nas_users` `drwxrwxr-x`**, доступ у `truenas_admin` +> и через WebDAV есть. Рабочий рецепт (два прохода: ACL с INHERIT → `gid`) и 4 питфолла — +> [[personal/tech/truenas-nfs4-acl-and-arrmultiuser]] §«Sharing a whole tree by GROUP (`nas_users`)». +> ACL-бэкап: `/mnt/RED_2TB/storage/acl-edu-before-.json`. +> +> 📌 **Актуальный вопрос по `Edu` теперь не «нет доступа», а «совпадает ли содержимое».** +> Сверка `Edu/Маскелиаде` (8.7 G, 6 подпапок) с локальной `/Users/admin/Downloads/Maskeliade` +> (8.0 G, 917 файлов) — [[personal/tech/truenas-local-tree-comparison]]. + > ⚠️ **Побочный вывод (применим не только к Edu):** кириллица в путях (`Edu/Маскелиаде`) валит `tirith` как `confusable_text` (**HIGH**, MITRE T1036.005) → команда блокируется, апрув не помогает. Предложено переименовать `Маскелиаде` → `Maskeliade`. При работе с такими путями — передавать путь как **один shell-quoted аргумент**, не разбивать по строкам. > > ⚠️ `curl`/`wget`-проверка WebDAV **с Mac не проходит** — сеть `caddy_default` живёт только внутри Docker на TrueNAS (`docker network ls` её видит, хост-macOS — нет). Проверять из контейнера на TrueNAS: `docker run --rm --network caddy_default curlimages/curl … PROPFIND -u webdav:… http://webdav:80/Edu/`.