Я работаю в 2 средах:
1 — это виртуальная машина с RHEL 7 (PRETTY_NAME="Red Hat Enterprise Linux Server 7.9") для любопытства.
Другой — это модуль kubernetes, работающий под управлением Ubuntu (PRETTY_NAME="Ubuntu 18.04.5 LTS").
Существует пользователь (jbossrdi), который может запускать команды nfs4_acl в этих средах для изменения ACL для каталогов и файлов. Каталоги в рабочем каталоге принадлежат этому пользователю и имеют следующие ACE, которые применяются рекурсивно:
A::[email protected]:rwaDxtTnNcCy, A:fdi:[email protected]:rwaDxtTnNcCy
Эти каталоги и файлы доступны в обеих средах, с небольшой разницей для среды модуля k8s, где они перенаправляются с помощью символической ссылки. Символическая ссылка помещает /gpfs/nobackup/projects/seeds_rdi в /gpfs/k8s.
Теперь проблема возникает при использовании nfs4_setfacl в среде k8s, так как у него другое поведение. С помощью strace я могу отслеживать, что происходит в команде nfs4_setfacl, и наблюдаю следующее:
setxattr("/gpfs/k8s/data/test/Tools/GLENT/dagw/workingdir/decostfr/fdec280122a/doc/GBS_curation.html", "system.nfs4_acl", "\0\0\0\26\0\0 \0\0\0\0\0\0\0\26\1\277\0\0\0\10decostfr\0\0\0", 728, XATTR_REPLACE) = -1 EINVAL (неверный аргумент)
В среде ВМ выполните ту же команду:
setxattr("/gpfs/nobackup/projects/seeds_rdi/data/test/Tools/GLENT/dagw/workingdir/decostfr/fdec280122a/doc/GBS_curation_original.html", "system.nfs4_acl", "\0\0\0\35 \0\0\0\0\0\0\0\0\0\26\1\277\0\0\0\10decostfr\0\0\0", 1036, XATTR_REPLACE) = 0
Следует также отметить, что это происходит с файлами, а не с каталогами.
Команда, которую я выполнил, выглядит следующим образом:
strace nfs4_setfacl -Ra A::decostfr:RWXD,A:fdi:decostfr:RWXD /gpfs/nobackup/projects/seeds_rdi/data/test/Tools/GLENT/dagw/workingdir/decostfr/fdec280122a