2.4 KiB
Executable File
2.4 KiB
Executable File
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 шагов)
- Пре-чек (read-only):
stat,nfs4xdr_getfacl,midclt filesystem.getacl,touch(ожидаем Permission denied), распределениеuid:gidпо дереву (до). - Бэкап ACL →
/mnt/RED_2TB/storage/acl-backup-before-<ts>.json(паттерн Edu). - Фикс — скрипт на 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. - Верификация:
nfs4xdr_getfacl→trivial_acl: false,group 3000, флагиfd-----;stat→root:nas_users drwxrwxr-x;touchот truenas_admin → OK;mkdir+ getacl вложенного →INHERITED: True; распределение групп после. - Обновить доки: эта нота (итог),
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на всё дерево).