"읽기" 권한 없이 디렉토리를 볼 수 있는 이유는 무엇입니까?

"읽기" 권한 없이 디렉토리를 볼 수 있는 이유는 무엇입니까?

이제 저는 "lawrence.li" 사용자이고 "읽기" 권한이 있는 "lijunda" 디렉터리를 볼 수 있습니다.

여기에 이미지 설명을 입력하세요.

하지만 이제 "읽기" 권한이 없는데 왜 이 디렉토리를 계속 볼 수 있습니까?

여기에 이미지 설명을 입력하세요.

"r"과 "-"(읽기 권한 없음)의 차이점에 대해 혼란스러워요. 이유를 알려줄 수 있는 사람이 있나요? 매우 감사합니다

답변1

시도해 ls -l /tmp/lijunda보세요. 그러면 당신이 보게 될 것은이름- 해당 파일을 열 수 없으며 디렉터리에 있는 파일의 파일 크기, 권한 등을 볼 수도 없습니다.

이 때문입니다디렉토리 자체에는 파일 이름과 inode 번호만 포함됩니다.-그게 다야.

읽기 액세스파일 이름읽기 권한으로 제어됩니다.

입장인덱스 노드디렉토리가 가리키는 권한은 읽기 권한이 아닌 실행 권한에 의해 제어됩니다. 인덱스 노드에는 모든 실제 세부 정보가 포함되어 있습니다.~에 대한파일 크기, 소유자, 사용 권한, 마지막 수정 시간, 파일 내용이 포함된 바이너리 데이터의 물리적 위치(물리적 하드 디스크) 등의 파일입니다.

보려면이름디렉토리의 파일—이 디렉터리에 대한 읽기 권한이 필요합니다. 이를 위해서는 실행 또는 쓰기 권한이 필요하지 않습니다.

보려면세부 사항디렉토리의 파일즉, inode 내용을 보려면 디렉터리에 대한 실행 권한이 필요합니다. 디렉터리에 대한 읽기 권한은 파일 세부 정보 보기에 영향을 주지 않습니다.파일 이름을 이미 알고 있는 경우.

파일 세부정보 보기아직 모르는 이름, 읽어야 해그리고권한을 실행합니다.

마침내,확인하다콘텐츠파일의-당신은 다음을 수행해야합니다:

  1. 파일 자체에 대한 읽기 권한,
  2. * 파일이 포함된 디렉터리에 대한 실행 권한
  3. 다음 중 하나 이상: 파일이 포함된 디렉터리에 대한 읽기 권한또는다른 방법을 통해 파일 이름을 알아보세요.

아래 예를 참조하세요.

$ whoami
vagrant
$ ls -l
total 12
drwxrwx--x 2 pete pete 4096 Dec 24 08:51 execute_only
drwxrwxr-x 2 pete pete 4096 Dec 24 08:52 read_and_execute
drwxrwxr-- 2 pete pete 4096 Dec 24 08:52 read_only
$ ls -l read_only/
ls: cannot access read_only/mysterious_file: Permission denied
total 0
-????????? ? ? ? ?            ? mysterious_file
$ cat read_only/mysterious_file 
cat: read_only/mysterious_file: Permission denied
$ ls -l execute_only/
ls: cannot open directory execute_only/: Permission denied
$ ls -l execute_only/unicorn_file
-rw-rw-r-- 1 pete pete 55 Dec 24 08:51 execute_only/unicorn_file
$ cat execute_only/unicorn_file
This file only exists for you if you know it's here ;)
$ ls -l read_and_execute/
total 4
-rw-rw-r-- 1 pete pete 83 Dec 24 08:52 jack_sparrow
$ cat read_and_execute/jack_sparrow 
"After the reading, you will be executed."
"That's *Captain* Jack Sparrow to you!"
$ 

*실행 권한도 필요합니다.모두그런데 상위 디렉터리는 루트 디렉터리까지 이어집니다.

답변2

읽기 권한은 파일의 내용을 읽을 수 있는 권한을 의미합니다. 어떤 파일/디렉토리가 있는지 확인하려면 해당 디렉토리 자체에 대한 사용자의 실행 권한을 제거해야 합니다. 물론 이는 사용자가 더 이상 볼 수 없음을 의미합니다.어느이 디렉터리의 파일/디렉터리입니다.

바라보다이 링크예를 들어:

디렉토리 권한

chmod 명령을 사용하여 디렉토리 액세스 권한을 제어할 수도 있습니다. 대부분의 경우 디렉터리의 권한 체계는 파일의 권한 체계와 동일하게 작동합니다. 그러나 실행 권한은 다르게 사용됩니다. 파일 목록 및 기타 콘텐츠에 대한 액세스 제어를 제공합니다.

편집: 디렉토리 tmp가 아닌 상위 디렉토리( ) 를 참조한다는 의미이므로 이것을 명확하게 설명하지 않은 것 같습니다 . lijunda@Wildcard는 이 질문에 더 나은 답변을 제공했습니다.여기

관련 정보