
내 질문은 디렉토리의 읽기 비트와 실행 비트 간의 관계와 관련이 있습니다. 먼저 제가 현재 알고 있는 지식을 바탕으로 가설을 제시한 후 질문하겠습니다.내 질문은 굵은 글씨로 표시되어 있습니다.이러한 가정의 맥락에서. 잘못된 가정이 있으면 수정해 주세요.
- 파일과 디렉토리는 모두 inode를 사용하여 저장됩니다.
- 파일과 디렉토리 모두 권한이 있습니다(rwx 비트에만 집중하고 Sticky, setuid, setguid(관련되지 않는 한)는 잊어버리겠습니다).
- 디렉터리의 inode 데이터 블록 내용에는 파일 이름과 inode 번호의 매핑이 저장됩니다.
- 디렉토리에 대한 읽기 권한을 통해 사용자는 디렉토리에 있는 모든 파일의 이름 목록을 얻을 수 있습니다.
- 사용자는 해당 내용에 액세스하려면 파일의 inode 번호를 알아야 합니다.업데이트: 여기에 있는 원래 진술의 의미는 내가 전달하려는 내용을 반영하지 않습니다. 내가 더 의미하는 바는 다음과 같습니다.사용자는 파일의 inode 번호를 알 필요는 없지만, 파일의 내용을 얻기 위해서는 주어진 파일 이름의 inode 번호를 얻을 수 있는 권한이 있어야 합니다..
- 디렉토리에 대한 실행 권한을 사용하면 사용자가 디렉토리를 "사용"할 수 있습니다. 이는 특히 디렉토리의 inode 번호를 얻는다는 의미로 이해됩니다(이에 대해 제가 이해했는지 확인하고 싶습니다). 이를 통해 사용자는 디렉토리에 대해 cd와 같은 작업을 수행할 수 있습니다. 이는 실행 권한이 필요한 사용자의 전형적인 예입니다.
사용자가 디렉토리 목록에 접근하려면 디렉토리의 "내용"(실제로는 디렉토리의 inode 데이터 블록 내용)을 얻을 수 있어야 하며, 사용자는 디렉토리의 inode 번호를 알아야 한다고 가정합니다. 콘텐츠에 액세스하고,사용자가 디렉토리에 대한 실행 권한 없이도 디렉토리 목록을 얻을 수 있는 이유는 무엇입니까?디렉토리 D의 내용 목록을 얻으려면 다음이 필요한 것 같습니다.일시적으로inode 데이터 블록의 내용을 읽으려면 해당 inode 번호를 찾으십시오. 또한 읽기 권한은 해당 디렉터리에 대한 실행 권한을 의미하는 것이 필요한 것 같습니다.
답변1
위의 6번 항목을 무효화하는 약간의 오해가 있습니다. 디렉토리에 포함된 파일의 inode 번호를 얻으려면 디렉토리의 실행("검색"이라고도 함) 비트가 필요하지만자체 inode 번호가 아닙니다..
인용하다:
디렉토리를 읽고 실행하는 방법은 다음과 같습니다. 디렉토리는 각 파일에 대한 두 가지 정보, 즉 파일 이름과 inode 번호를 포함하는 데이터 파일입니다. 디렉터리의 파일 이름에 액세스하려면 읽기 권한이 필요합니다. 파일 이름을 이미 알고 있는 경우 디렉터리에 있는 파일의 inode에 액세스하려면 실행(검색이라고도 함) 권한이 필요합니다.
인용하다: