저는 ACL을 연구하고 있는데 이 정보가 기술적으로 어디에 있는지 혼란스럽습니다. 이것은 단지 기술적으로 inode의 메타데이터에 불과합니까?
답변1
정확한 세부 사항은 파일 시스템에 따라 다를 수 있지만 개념적으로 ACL은 기존 권한, 날짜 등과 마찬가지로 파일 inode에 저장된 메타데이터입니다.
ACL의 크기는 다양할 수 있으므로 결국 별도의 블록에 저장될 수 있습니다. 그러나 세부 사항은 파일 시스템을 설계하거나 파일 시스템 드라이버를 프로그래밍하는 경우에만 중요합니다.
답변2
Ext4의 경우:
https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Extended_Attributes
"확장 속성(xattrs)은 일반적으로 디스크의 별도 데이터 블록에 저장되며 inode.i_file_acl*을 통해 inode에서 참조됩니다."
답변3
다음을 살펴보세요.확장된 속성이 문서의 섹션:Linux의 POSIX 액세스 제어 목록.
발췌
ACL은 파일 시스템 개체와 연결된 가변 길이의 정보 조각입니다. Solaris가 UFS 파일 시스템에서 하는 것처럼 파일 시스템에 ACL을 저장하기 위한 전용 전략이 고안될 수 있습니다[13]. UFS 파일 시스템의 각 inode에는 i_shadow라는 필드가 있습니다. inode에 ACL이 있는 경우 이 필드는 섀도우 inode를 가리킵니다. 파일 시스템에서는 섀도우 inode가 일반 파일처럼 사용됩니다. 각 섀도우 inode는 해당 데이터 블록에 ACL을 저장합니다. 동일한 ACL을 가진 여러 파일이 동일한 섀도우 inode를 가리킬 수 있습니다.
ACL 외에도 다른 커널 및 사용자 공간 확장은 정보 조각을 파일과 연결할 수 있다는 이점을 갖기 때문에 Linux 및 대부분의 기타 UNIX 유사 운영 체제는 EA(확장 속성)라는 보다 일반적인 메커니즘을 구현합니다. 이러한 시스템에서 ACL은 EA로 구현됩니다.
후확장된 속성섹션에서는 다양한 파일 시스템, ext2/ext3, JFS 등이 EA를 구현하는 방법에 대해 자세히 설명합니다.