파일의 액세스 플래그에는 몇 비트가 있습니까?

파일의 액세스 플래그에는 몇 비트가 있습니까?

Linux 파일 시스템에서 파일 권한은 몇 비트를 차지합니까?

답변1

다른 답변에 추가:

전통적인 Unix 권한은 다음과 같이 나뉩니다.

  • 읽다( r)
  • 쓰다( w)
  • 파일/액세스 디렉터리 실행( x)

이들 각각은 비트로 저장됩니다. 여기서 1은 허용됨을 의미하고 0은 허용되지 않음을 의미합니다.

예를 들어 읽기 전용 액세스(일반적으로 쓰기 )는 바이너리 또는 8진수 r--로 저장됩니다 .1004

허용되는 액세스를 결정하는 이러한 권한에는 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를 확인하세요.

관련 정보