GNU를 사용하여 파일 시스템을 조사할 때 , 특히 이 항목 에 대해 / 인수 stat
에 사용할 수 있는 형식 시퀀스가 많이 있습니다.--format
--printf
%f Raw mode in hex
별 의미가 없습니다. %a 액세스 모드와 비교하면 stat --format '%f %a'
원래 모드는 41ed이지만 액세스 모드는 755이거나 원래 모드는 81a4이지만 액세스 모드는 644일 수 있습니다.
그렇다면 "원시 모드"는 무엇을 의미합니까?
답변1
"hex raw 모드"의 의미를 해석하는 데는 두 부분이 있습니다. 첫 번째는16진수, 그러나 액세스 패턴은 일반적으로 다음 항목에 설명되어 있습니다.8진수:
41ed 16 = 40775 8 81a4 16 = 100644 8
이를 확인하려면 /tmp
일반적으로 제한 삭제 플래그("고정 비트")를 설정합니다.
$ ls -ld /tmp drwxrwxrwt 17 루트 4096 2012-05-31 13:45 /tmp $ stat --format '%f %a' /tmp 1777년 43호
그리고 변환:
43ff 16 = 41777 8
stat 함수()에 대한 프로그래머 매뉴얼에서는 "16진수 원시 모드"를 설명 man 2 stat
하고 해당 모드가 8진수 값이라고 명시합니다.
st_mode 필드에 대해 다음 플래그가 정의됩니다. S_IFMT 0170000 파일 유형 비트 필드에 대한 비트 마스크 S_IFSOCK 0140000 소켓 S_IFLNK 0120000 심볼릭 링크 S_IFREG 0100000 일반 파일 S_IFBLK 0060000 블록 장치 S_IFDIR 0040000 디렉토리 S_IFCHR 0020000 문자 장치 S_IFIFO 0010000 선입선출 S_ISUID 0004000 UID 비트 설정 S_ISGID 0002000은 그룹 ID 비트를 설정합니다(아래 참조). S_ISVTX 0001000 고정 비트(아래 참조) S_IRWXU 00700 파일 소유자 권한 마스크 S_IRUSR 00400 소유자에게 읽기 권한이 있습니다. S_IWUSR 00200 소유자에게 쓰기 권한이 있습니다 S_IXUSR 00100 소유자에게 실행 권한이 있습니다 S_IRWXG 00070 그룹 권한 마스크 S_IRGRP 00040 그룹에 읽기 권한이 있습니다. S_IWGRP 00020 그룹에 쓰기 권한이 있습니다. S_IXGRP 00010 그룹에 실행 권한이 있습니다. S_IRWXO 00007 다른 사람에 대한 권한 마스크(그룹에 속하지 않음) S_IROTH 00004 다른 사람이 읽기 권한을 가지고 있습니다. S_IWOTH 00002 다른 사람이 쓰기 권한을 가지고 있습니다. S_IXOTH 00001 다른 사람이 실행 권한을 가지고 있습니다.
(이상한 점은,온라인 매뉴얼 페이지이 부분이 누락되었습니다. )
이것은비트 필드, 마지막 4자리 숫자가 액세스 패턴과 일치한다는 것을 알 수 있습니다. 선행 숫자(16진수)는 파일 유형과 일치하므로 16진수 패턴 81a4는 "디렉터리, 패턴 0644"에 해당하고 16진수 패턴 41ed는 "일반 파일, 모드"에 해당합니다. 0775".