
나는 12개의 권한 비트가 있으며 그 중 사용자, 그룹 및 기타 각각에 대해 3비트로 구성된 3개의 그룹이 있으며 각각 RWX라는 것을 알고 있습니다. RW는 읽기 및 쓰기가 가능하지만 X의 경우 search
디렉터리 및 execute
파일용입니다.
내가 얻지 못하는 것은 다음과 같습니다.
나머지 3개의 모드 비트는 무엇이며 모두 inode에 저장되어 있습니까?
UNIX의 모든 것이 파일이기 때문에 파일 디렉터리 자체도 파일로 간주된다는 것을 알고 있지만(사실입니까?) UNIX 시스템은 ACL을 사용하여 파일 시스템을 나타내므로 파일 시스템은 filename-inode_number 목록입니다. 한 쌍. 파일 디렉토리는 자신의 inode 번호와 파일 이름을 어디에 저장합니까?
답변1
stat /bin/su
한 시스템에 표시됩니다.
Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
4755
12개 모드 비트 모두에 대한 8진수 표현이 있습니다 . 숫자는 비트에 해당합니다.
octal 4 7 5 5
bits 100 111 101 101
sst uuu ggg ooo
ug rwx rwx rwx
여기서 uuu
, ggg
및 ooo
는 사용자, 그룹 및 기타 사용자에 대한 권한 비트입니다. 나머지 그룹(순서의 첫 번째 그룹)에는 setuid( su
), setgid( sg
) 및 Sticky( t
) 비트가 포함됩니다.
setuid 및 고정 비트는 대부분의 파일에서 0이므로 언급되지 않는 경우가 많습니다. 모든 파일에 여전히 남아 있으며 다른 파일과 함께 저장됩니다.
실제로 자세히 살펴보면 일부 파일 시스템과 인터페이스는 파일을 저장합니다.유형모드 비트를 따라 더 높은 비트에서. 위의 내용은 12비트만 설명하므로 16비트 필드에는 4비트가 남습니다. 예를 들어 다음을 참조하세요.st_mode
에 대한 설명stat(2)
.
답변2
나머지 3개 비트는 setuid, setgid 및 Sticky 비트를 나타냅니다. 보다UNIX 권한 및 파일 유형 이해자세한 내용은. 이것들은 모두 inode에 저장됩니다.
디렉토리는 실제로 이름 목록과 해당 inode를 저장하는 일종의 파일입니다. 디렉토리 자체의 이름과 inode는 상위 디렉토리에 저장됩니다. 루트 디렉터리는 특별한 경우이며 일반적으로 파일 시스템의 고정 inode입니다(Ext4의 inode 2) 그리고 물론 항상 이름이 지정됩니다
/
(마운트 지점에 상대적으로 지정됩니다...).