Linux 파일 시스템에서 파일 권한은 몇 비트를 차지합니까?
답변1
다른 답변에 추가:
전통적인 Unix 권한은 다음과 같이 나뉩니다.
- 읽다(
r
) - 쓰다(
w
) - 파일/액세스 디렉터리 실행(
x
)
이들 각각은 비트로 저장됩니다. 여기서 1은 허용됨을 의미하고 0은 허용되지 않음을 의미합니다.
예를 들어 읽기 전용 액세스(일반적으로 쓰기 )는 바이너리 또는 8진수 r--
로 저장됩니다 .100
4
허용되는 액세스를 결정하는 이러한 권한에는 3가지 그룹이 있습니다.
- 파일 소유자
- 파일 그룹
- 다른 모든 사용자
이들은 모두 동일한 변수에 함께 저장됩니다. 예를 들어 rw-r-----
소유자에 대한 읽기 및 쓰기, 그룹에 대한 읽기 전용, 다른 사람에 대한 액세스 없음, 이진수 110100000
, 8진수로 저장됨을 의미합니다 640
.
이렇게 하면 9비트가 됩니다.
그 다음에는 3가지 특별한 비트가 더 있습니다:
- 설정값
- 설정
- 어려운
man 1 chmod
이에 대한 자세한 내용은 다음을 참조하세요.
마지막으로 4비트는 파일 유형(예: 일반 파일, 디렉터리, 파이프, 장치 등)을 저장하는 데 사용됩니다.
이는 inode에 함께 저장되어 총 16비트를 구성합니다.
답변2
어떤 권한이 있나요? 기본 권한은 16비트입니다. ext2는 32비트를 사용하고 다른 32비트는 파일 플래그( )에 사용되며 chattr(1)
POSIX ACL도 가변 공간을 사용합니다. /usr/include/linux/ext2_fs.h
자세히보다. (ext3과 ext4는 ext2를 기반으로 구축되었으며 대부분 동일한 구조를 사용합니다.)
답변3
파일에 대한 정보는 inode라는 데이터 구조에 저장됩니다. 이 구조에는 권한을 포함하는 모드 필드가 있습니다. 내 시스템의 이 필드는 부호 없는 짧은 2바이트 16비트입니다.
직접 확인하려면 Linux 소스 코드에서 fs.h를 확인하세요.