이러한 권한 해석은 초기 Unix 파일 시스템으로 거슬러 올라갑니다. 처음에는 파일 만있었습니다. (음, 장치 및 파이프, 그리고 ...하지만 여기서 100 % 엄격하게 정확하지는 않지만 스토리를 이야기하려고합니다. 게다가 모든 것이 파일이기 때문에 장치 및 파이프 및 기타 모든 것에 적용됩니다. 디렉토리).
디렉토리는 파일 시스템이 디렉토리 트리를 설명하는 메타 데이터와 그에 포함 된 파일을 보유하기 위해 사용하는 파일입니다. 디렉토리의 각 파일은 데이터가 저장된 inode 번호, 파일 크기, 타임 스탬프 및 권한 단어와 함께 파일 이름 (원래 14 자, IIRC)을위한 공간이 포함 된 간단한 데이터 구조로 설명되었습니다. . 모든 디렉토리는 이름이 .
and ..
인 두 항목으로 시작했습니다 . 첫 번째는이 디렉토리의 inode를 가리키고 두 번째는 상위 디렉토리의 inode를 가리 킵니다.
권한 단어에는 소유자, 같은 그룹의 다른 구성원 및 세계의 처리를 설명하는 9 비트가 있습니다. 각 플래그에 대한 3 비트는 관련 사용자가 파일을 읽거나 쓰거나 실행할 수 있는지 여부입니다. (내가 무시하고있는 16 비트 권한 단어에 5 비트가 더 있음을 알 수 있습니다. 결국에는 의미가 부여되었지만 스토리의이 부분과 관련이 없습니다.) 리눅스를 포함한 초기 유닉스의 모든 후손들에서 비트는 거의 동일하게 유지되었습니다.)
따라서 디렉토리가 실제로 특별한 종류의 파일이고 일부 디렉토리의 항목으로 설명되는 경우 분명히 권한 비트가 있으며 해당 비트는 아마도 무언가를 의미합니다. 그러나 문제는 정확히 무엇입니다. 이러한 비트에 의미를 할당하는 가장 쉬운 방법은 처음부터 의미를 변경하지 않는 것입니다. 그리고 그것은 본질적으로 이루어졌습니다.
따라서 읽기 비트는 사용자가 디렉토리 자체를 읽을 수 있음을 의미합니다. 이는 고전적으로 독자에게 파일 이름, 타임 스탬프, 크기 및 각 파일 데이터의 inode 번호에 대한 액세스 권한을 부여합니다. 특히 r
set을 사용 ls
하면 디렉토리에있는 모든 파일의 이름을 볼 수 있지만 나열된 파일을 열거 나 사용하는 데 충분하지 않습니다.
실행 비트는 사용자가 디렉토리를 "실행"할 수 있음을 의미합니다. 디렉토리는 특별하기 때문에 실제로 실행한다는 것은 이름으로 항목을 찾아서 사용한다는 것을 의미합니다. 즉, 파일 x
이 설정되어 있으면 파일을 열려고 시도 할 수 있지만 파일 r
이름을 찾을 수 없습니다. 물론 요청 된 파일의 권한도 액세스에 영향을 미치므로 x
디렉토리 에서도 파일을 제공하지 않으면 파일을 읽을 수 없습니다 r
.
쓰기 비트는 사용자가 디렉토리에 쓸 수 있지만 당연히 파일 시스템 자체에 의해서만 중재됨을 의미합니다. 즉, w
set을 사용하면 해당 디렉토리에 새 파일을 작성하거나 기존 파일의 디렉토리 항목을 편집 할 수 있습니다. 그러나 x
설정하지 않으면 실제로 파일을 사용할 수 없으며 파일을 r
볼 수 없습니다.
더 복잡한 사용자 아이덴티티 모델이 Unix와 그 후손에서 진화함에 따라, 동일한 기본 설명은 크게 변하지 않았습니다.
즉, r
당신이 그 내용을 볼 수 있다는 것을 의미 x
수단 당신이 그것을 사용할 수 있으며, w
수단 당신도 디렉토리에 대한 수정할 수 있습니다.