!["다중 파일 노드"는 단일 inode와 어떤 관련이 있습니까?](https://linux55.com/image/29223/%22%EB%8B%A4%EC%A4%91%20%ED%8C%8C%EC%9D%BC%20%EB%85%B8%EB%93%9C%22%EB%8A%94%20%EB%8B%A8%EC%9D%BC%20inode%EC%99%80%20%EC%96%B4%EB%96%A4%20%EA%B4%80%EB%A0%A8%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
iNode 및 파일 권한을 이해하려고 합니다. 단일 파일의 권한을 보유하는 inode가 있다고 생각합니다. 운영 체제는 개별 파일에 대한 권한을 확인하기 위해 개별 inode를 메모리로 끌어옵니다. 이것책의 슬라이드내 컴퓨터 보안 수업에서는 이것이 정확히 작동하는 방식입니다. 그러나 그들은 또한 "여러 파일 노드가 단일 inode와 연관될 수 있다"고 말합니다. 이것은 모순되는 것 같습니다. 책에 오류가 있나요? 내가 놓친 게 무엇입니까? 어떻게 되어가나요?
답변1
(그런데 일반적으로 iNode가 아니라 inode라고 합니다.)
이 책은 아마도 다음과 같은 의미일 것입니다: 여러 문서이름단일 inode와 연결될 수 있습니다. 즉, 동일한 inode가 여러 다른 이름을 통해 액세스될 수 있습니다. 즉, 파일에는 여러 개의 하드 링크가 있을 수 있습니다.
답변2
"파일 노드"와 "inode"의 의미에 따라 다릅니다. 책은 없지만 귀하의 질문에 답변해 드리겠습니다.
전통적으로 "inode"라는 용어는 파일에 대한 디스크 메타데이터를 나타냅니다. 여기에는 소유자 ID, 권한, 파일 크기(바이트), 파일의 실제 데이터가 포함된 디스크 블록에 대한 참조가 포함됩니다. 아, 그리고 참조 카운팅이 있습니다.
전통적으로 디렉토리는 특별한 형식의 데이터와 "이 파일은 디렉토리를 구성합니다"라는 태그가 인덱스 노드에 있는 파일이었습니다. 특수 형식 데이터의 각 항목은 이름(널로 끝나는 바이트 배열, C 언어 문자열)과 아이노드 번호로 구성됩니다. inode 번호를 기반으로 커널은 inode(디스크의 메타데이터)를 찾을 수 있는 위치를 찾을 수 있습니다. 각 디렉토리 항목에 대해 커널의 파일 시스템 코드는 inode의 참조 카운트를 증가시켜야 합니다. 대부분의 Linx에서는 이 stat
명령을 사용하여 어떤 방식으로든 이 링크 수를 볼 수 있습니다.
"파일 노드"라는 용어는 기본적으로 파일 이름인 디렉터리 항목을 나타낼 수 있습니다. 많은 파일 이름이 동일한 inode를 참조할 수 있으며 파일 이름이 추가될 때마다 링크 수가 1씩 늘어납니다.
스스로에게 보여줄 수 있는 것이 많이 있습니다.
touch somefilename
ln somefilename anothername
ls -li somefilename anothername
ls -li
두 파일 모두 출력의 첫 번째 필드 와 동일한 번호(inode 번호)가 표시되어야 합니다 . stat somefilename
및 를 사용하여 stat anothername
inode 번호와 링크 수를 확인할 수 있습니다. 파일 중 하나를 삭제한 다음 stat
나머지 파일에 대해 작업을 수행하여 링크 수가 감소했는지 확인하십시오.