UNIX 권한 모드 비트의 마지막 3비트는 무엇입니까?

UNIX 권한 모드 비트의 마지막 3비트는 무엇입니까?

내가 아는 한, 권한 비트는 12개이며 그 중 사용자, 그룹 및 기타 사용자는 각각 3개의 그룹을 갖고 각 그룹은 3비트를 가지며 이는 RWX입니다. RW는 읽기 및 쓰기용이지만 X의 경우 search디렉터리 및 execute파일 입니다 .

내가 이해하지 못하는 것은 다음과 같습니다.

  1. 나머지 3개 모드 비트는 무엇입니까? 모두 inode에 저장되어 있나요?

  2. 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

  1. 나머지 3개 비트는 각각 setuid, setgid 및 고정 비트를 나타냅니다.UNIX 권한 및 파일 유형 이해더 알아보기. 이는 inode에 저장됩니다.

  2. 디렉토리는 실제로 이름과 해당 inode 목록을 저장하는 파일입니다. 디렉터리의 자체 이름과 inode는 상위 디렉터리에 저장됩니다. 루트 디렉터리는 일반적으로 파일 시스템의 고정된 inode인 특별한 경우입니다.Ext4의 인덱스 노드 2) 물론 항상 이름이 지정됩니다 /(결국 마운트 지점을 기준으로 합니다...).

관련 정보