[2026-10-06] eagle: family/how-to/htpc-system.md family/plans/red2tb-backup-acl-inherit-fix.md
This commit is contained in:
1 parent
d657715904
commit
bf626182da
2 files changed
+30
-1
No files matched your search
@@ -454,7 +454,7 @@ XwaylandEisNoPrompt=true
|
||||
3. Duck Game: `Documents/DuckGame/Profiles/*.pro` (5 профилей) — префикса DuckGame на HTPC нет.
|
||||
4. Contra Operation Galuga: `LocalLow/WayForward Technologies/.../_savedata/savefile`.
|
||||
5. Super Bomberman R 2: `LocalLow/Konami/SUPER BOMBERMAN R 2/<steamid>/GameData`.
|
||||
6. Project64: `Documents/project64/Save/1080 SNOWBOARDING....sra` + `64..2_Cont_1.mpk`.
|
||||
6. Project64: `Documents/project64/Save/1080 SNOWBOARDING....sra` + `64 Oozumou 2_Cont_1.mpk` (сумо-игра, ROM на HTPC есть, сейва нет; имя папки на Mac читается битым UTF-8 — копировать по glob `64*DC2BDD6B*`).
|
||||
7. Kodi: эмуляторные сейвы `Roaming/Kodi/saves/` (Aladdin, Ghouls'n'Ghosts, Golden Axe II — уникальны; DKC2 покрыт retroarch .srm) + весь userdata (MyVideos121.db 8MB, guisettings, AKL/AEL DB) — Kodi на HTPC нет вообще.
|
||||
8. BrawlhallaReplays (3 реплея) + Roaming/BrawlhallaAir (.sol профиль).
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
# RED_2TB/backup — inherit ACL fix (nas_users) — план
|
||||
|
||||
> Запрошено Alex 2026-10-06 (Mattermost): применить к `/mnt/RED_2TB/backup` тот же фикс,
|
||||
> что делали для `Edu` (2026-09-23) и `storage/obsidian-syncthing` (2026-09-26).
|
||||
> Цель: `truenas_admin` (uid 950) может писать в датасет backup (287G, личные бэкапы).
|
||||
|
||||
## План (5 шагов)
|
||||
|
||||
1. **Пре-чек** (read-only): `stat`, `nfs4xdr_getfacl`, `midclt filesystem.getacl`,
|
||||
`touch` (ожидаем Permission denied), распределение `uid:gid` по дереву (до).
|
||||
2. **Бэкап ACL** → `/mnt/RED_2TB/storage/acl-backup-before-<ts>.json` (паттерн Edu).
|
||||
3. **Фикс** — скрипт на NAS (scp + python3, НЕ с Mac): read-modify-write dacl
|
||||
(все ACE → `flags={"BASIC":"INHERIT"}`, `group@` полный grant, `id` сохранены),
|
||||
ОДИН `filesystem.setacl` `{uid: <текущий корневой>, gid: 3000, acltype: NFS4,
|
||||
options: {recursive: true, traverse: true, stripacl: false}}`, полл `core.get_jobs` до SUCCESS.
|
||||
4. **Верификация**: `nfs4xdr_getfacl` → `trivial_acl: false`, `group 3000`, флаги `fd-----`;
|
||||
`stat` → `root:nas_users drwxrwxr-x`; `touch` от truenas_admin → OK; `mkdir` + getacl
|
||||
вложенного → `INHERITED: True`; распределение групп после.
|
||||
5. **Обновить доки**: эта нота (итог), `red2tb-dataset-map` (строка backup).
|
||||
|
||||
## Питфоллы (из skill truenas-administration + vault truenas-nfs4-acl-and-arrmultiuser)
|
||||
|
||||
- `dacl` строить с нуля НЕЛЬЗЯ (нужен `id` в каждой ACE) — только read-modify-write.
|
||||
- Флаги — строка `{"BASIC":"INHERIT"}`, не булев dict.
|
||||
- `setacl` асинхронный — ждать job до `SUCCESS`, иначе ложный провал.
|
||||
- `getacl` сразу после `setacl` врёт кэшем → верифицировать `nfs4xdr_getfacl`.
|
||||
- `group@` = POSIX gid объекта → смена gid на 3000 ОБЯЗАТЕЛЬНА, иначе ACE даёт ничего.
|
||||
- `uid`/`gid` в payload с `recursive:true` переписывают владельца всего дерева (287G) —
|
||||
осознанно, тот же результат что у Edu (`root:nas_users` на всё дерево).
|
||||
Reference in new issue
Block a user