디렉토리의 실행 권한과 해당 inode 구조 간의 관계

디렉토리의 실행 권한과 해당 inode 구조 간의 관계

내 질문은 디렉토리의 읽기 비트와 실행 비트 간의 관계와 관련이 있습니다. 먼저 제가 현재 알고 있는 지식을 바탕으로 가설을 제시한 후 질문하겠습니다.내 질문은 굵은 글씨로 표시되어 있습니다.이러한 가정의 맥락에서. 잘못된 가정이 있으면 수정해 주세요.

  1. 파일과 디렉토리는 모두 inode를 사용하여 저장됩니다.
  2. 파일과 디렉토리 모두 권한이 있습니다(rwx 비트에만 집중하고 Sticky, setuid, setguid(관련되지 않는 한)는 잊어버리겠습니다).
  3. 디렉터리의 inode 데이터 블록 내용에는 파일 이름과 inode 번호의 매핑이 저장됩니다.
  4. 디렉토리에 대한 읽기 권한을 통해 사용자는 디렉토리에 있는 모든 파일의 이름 목록을 얻을 수 있습니다.
  5. 사용자는 해당 내용에 액세스하려면 파일의 inode 번호를 알아야 합니다.업데이트: 여기에 있는 원래 진술의 의미는 내가 전달하려는 내용을 반영하지 않습니다. 내가 더 의미하는 바는 다음과 같습니다.사용자는 파일의 inode 번호를 알 필요는 없지만, 파일의 내용을 얻기 위해서는 주어진 파일 이름의 inode 번호를 얻을 수 있는 권한이 있어야 합니다..
  6. 디렉토리에 대한 실행 권한을 사용하면 사용자가 디렉토리를 "사용"할 수 있습니다. 이는 특히 디렉토리의 inode 번호를 얻는다는 의미로 이해됩니다(이에 대해 제가 이해했는지 확인하고 싶습니다). 이를 통해 사용자는 디렉토리에 대해 cd와 같은 작업을 수행할 수 있습니다. 이는 실행 권한이 필요한 사용자의 전형적인 예입니다.

사용자가 디렉토리 목록에 접근하려면 디렉토리의 "내용"(실제로는 디렉토리의 inode 데이터 블록 내용)을 얻을 수 있어야 하며, 사용자는 디렉토리의 inode 번호를 알아야 한다고 가정합니다. 콘텐츠에 액세스하고,사용자가 디렉토리에 대한 실행 권한 없이도 디렉토리 목록을 얻을 수 있는 이유는 무엇입니까?디렉토리 D의 내용 목록을 얻으려면 다음이 필요한 것 같습니다.일시적으로inode 데이터 블록의 내용을 읽으려면 해당 inode 번호를 찾으십시오. 또한 읽기 권한은 해당 디렉터리에 대한 실행 권한을 의미하는 것이 필요한 것 같습니다.

답변1

위의 6번 항목을 무효화하는 약간의 오해가 있습니다. 디렉토리에 포함된 파일의 inode 번호를 얻으려면 디렉토리의 실행("검색"이라고도 함) 비트가 필요하지만자체 inode 번호가 아닙니다..

인용하다:

디렉토리를 읽고 실행하는 방법은 다음과 같습니다. 디렉토리는 각 파일에 대한 두 가지 정보, 즉 파일 이름과 inode 번호를 포함하는 데이터 파일입니다. 디렉터리의 파일 이름에 액세스하려면 읽기 권한이 필요합니다. 파일 이름을 이미 알고 있는 경우 디렉터리에 있는 파일의 inode에 액세스하려면 실행(검색이라고도 함) 권한이 필요합니다.

인용하다:

  1. https://askubuntu.com/questions/83788/accessing-files-in-a-directory-without-x-permission
  2. https://wpollock.com/AUnix1/FilePermissions.htm
  3. https://superuser.com/questions/442581/why-do-you-need-execute-permission-on-the-parent-directory-to-rename-a-file

관련 정보