NFSv4가 POSIX ACL을 사용 가능한 방식으로 변환할 수 없는 이유는 무엇입니까?

NFSv4가 POSIX ACL을 사용 가능한 방식으로 변환할 수 없는 이유는 무엇입니까?

특정 폴더(모드를 사용하여 설정)에 공개 액세스 권한이 없고 그룹 소유자에게 읽기 전용 권한이 있는 XFS 파일 시스템이 있습니다. 모든 파일에 대한 읽기 액세스 권한이 필요한 프로그램(사용자 Cryoparc_user로 실행 중)이 있으므로 Cryoparc_user에 읽기 액세스 권한을 부여하는 기본 POSIX ACL을 추가했습니다.

불행하게도 대부분의 처리는 이 파일 시스템이 마운트된 NFSv4 워크스테이션에서 수행되며 어떤 이유로 POSIX ACL은 워크스테이션에서 변환되거나 존중되지 않습니다(물론 그렇습니다만 사용 가능한 방식은 아닌 것 같습니다). 왜인지 이해가 안 돼요.

서버와 워크스테이션은 모두 Ubuntu 18.04를 실행하고 있으며 그룹이 Active Directory 보안 그룹(AD를 통해 인증)이고 Cryoparc_user가 로컬 사용자이고 AD에서 설정할 수 없기 때문에 단순히 Cryoparc_user를 그룹에 추가할 수 없습니다.

파일 서버에 대한 권한은 다음과 같습니다.

root@kraken:/EM/EMtifs# getfacl pgoetz
# file: pgoetz
# owner: pgoetz
# group: cns-cnsitlabusers
user::rwx
group::r-x
other::---
default:user::rwx
default:user:cryosparc_user:r-x
default:group::r-x
default:mask::r-x
default:other::---

root@kraken:/EM/EMtifs# id cryosparc_user
uid=1017(cryosparc_user) gid=1017(cryosparc_user) groups=1017(cryosparc_user),10002(mclellan),10003(taylorlab)

NFSv4가 설치된 워크스테이션에서는 다음과 같이 표시됩니다.

root@javelina:/EM/EMtifs# getfacl pgoetz
# file: pgoetz
# owner: pgoetz
# group: cns-cnsitlabusers
user::rwx
group::r-x
other::---

root@javelina:/EM/EMtifs# id cryosparc_user
uid=1017(cryosparc_user) gid=1017(cryosparc_user) groups=1017(cryosparc_user)

root@javelina:/EM/EMtifs# nfs4_getfacl pgoetz
A::OWNER@:rwaDxtTcCy
A::GROUP@:rxtcy
A::EVERYONE@:tcy
A:fdi:OWNER@:rwaDxtTcCy
A:fdi:1017:rxtcy
A:fdi:GROUP@:rxtcy
A:fdi:EVERYONE@:tcy

NFS4 ACL 쿼리의 맨 아래에서 세 번째 줄을 확인하세요. 그러나 cryoparc_user 사용자는 읽기 권한을 갖고 있는 것으로 보입니다(로컬 UID는 두 시스템 모두에서 1017입니다).

cryosparc_user@javelina:/EM/EMtifs$ whoami
cryosparc_user
cryosparc_user@javelina:/EM/EMtifs$ ls pgoetz
ls: cannot open directory 'pgoetz': Permission denied

내가 읽은 모든 것에는 설정할 설치 플래그가 없으며 이것이 자동으로 작동해야 하는데 왜 작동하지 않는지 이해할 수 없습니다.

내 대체 계획은 이러한 폴더에서 로컬 그룹을 사용하는 것으로 되돌리는 것입니다(그래서 cryoparc_user를 로컬 그룹에 추가할 수 있음). 하지만 이렇게 하려면 각 시스템에서 AD 인증 구조를 복제해야 하므로 유지 관리가 까다롭습니다.

또 다른 아이디어는 Cryoparc_user 사용자 자격 증명을 사용하여 파일 시스템의 읽기 전용 SMB 마운트를 수행하는 것입니다. 하지만 500T 파일 시스템을 이중 마운트하는 것도 별로 흥미롭지 않습니다. 오히려 합리적인 방식으로 인증 작업을 수행하고 싶습니다.

답변1

내 문제는 POSIX ACL이 어떻게 작동하는지 이해할 수 없다는 것입니다.기본ACL은 적용되는 디렉터리에 대한 권한을 설정합니다. 실제로 권한은 하위 디렉터리와 파일에만 적용됩니다.상위 객체에 기본 ACL을 적용한 후 생성됨실제로 상위 개체는 전혀 사용되지 않습니다.

내 관심을 끌었던 것은 NFS 개발자 목록에서 이 문제에 대한 호소였습니다. 한 개발자는 (아는 것이 중요합니다) NFS는 이에 대해 완전히 불가지론하며 서버의 기본 파일 시스템에 설정된 권한에만 의지합니다. 이를 통해 서버의 파일 시스템에서 POSIX ACL을 살펴보는 방향을 알게 되었고, 몇 가지 실험(문서화는 잘 안 됨) 후에 위의 기능을 깨닫고 실제로 원하는 작업을 수행하기 위해 POSIX ACL을 다시 만들었습니다. 문제는 그 이후 사라졌습니다.

답변2

POSIX ACL이라고 불리는 것은 존재하지 않습니다.

aprox에는 표준 제안 초안이 있습니다. 1993년에 사용자가 이 ACL 구현을 좋아하지 않았기 때문에 1997년에 계약이 철회되었습니다.

기존 ACL의 유일한 표준은 NFSv4입니다.

NFSv4 ACL을 지원하는 최신 운영 체제를 사용해 보십시오.

관련 정보