폴더가 실행 가능한 이유는 무엇입니까?


29

파일에 대한 권한 :

chmod 664 myFile // rw-rw-r--

그리고 폴더의 경우 :

chmod 774 myFolder // rwxrwxr--

"읽기 및 쓰기"권한 만 사용하면 폴더에 내용이 표시되지 않습니다.

그 이유는 무엇입니까?

답변:


14

디렉토리를 '실행'할 수 없으므로 실행 비트가 더 잘 사용되었습니다. 디렉토리의 실행 비트를 사용하면 디렉토리 내용을 나열 할 수없는 경우에도 디렉토리 내부의 항목에 액세스 할 수 있습니다.

$ mkdir -p dir/
$ echo 'Hello World!' > dir/file
$ chmod 000 dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
cat: dir/file: Permission denied
$ chmod +x dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
Hello World!

로부터 chmod맨 :

영향을받는 사용자에 대한 문자 rwxXst 선택 파일 모드 비트 : 읽기 (r), 쓰기 (w), 실행 (또는 디렉토리 검색) (x) , 파일이 디렉토리이거나 일부에 대해 이미 실행 권한이있는 경우에만 실행 / 검색 사용자 (X), 실행시 사용자 또는 그룹 ID, 제한된 삭제 플래그 또는 고정 비트 (t)를 설정합니다.


42

디렉토리 (일반적으로 * nix에서 폴더라고 불림)는 권한 파일의 의미가 일반 파일과 다릅니다.

디렉토리의 경우 write를 사용하면 그 안에 새 파일을 작성할 수 있습니다.

읽기를 사용하면 그 안에있는 파일을 나열 할 수 있습니다.

실행을 사용하면 파일을 입력하고 내부의 파일 (또는 다른 디렉토리)에 액세스 할 수 있습니다.


2
기억하기 쉬운 방법은 무언가를 두 번 클릭하여 실행하는 것을 상상하는 것입니다. 디렉토리 (또는 cd) 를 두 번 클릭하면 디렉토리 를 입력 (실행)합니다.
John T

디렉토리에 대한 쓰기 권한 만 있으면 새 파일을 만들 수 없습니다. 또한 디렉토리에서 실행 권한이 필요합니다.
Matthias Braun

"파일 (또는 다른 디렉토리에 액세스)"은 파일을 볼 수는 있지만 나열 할 수는 있지만 볼 수 없거나 파일을 볼 수는 있습니다 (예 : 파일을 나열하고 읽을 수 있음)?
vadasambar


1

"execute"비트는 (from man chmod) 디렉토리에 적용될 때 실제로 "search"를 의미 합니다. execute는 디렉토리에 의미가 없으므로 합리적으로 보입니다.


0

x폴더 의 비트는 색인 / 디렉토리 검색 / 목록을 나타냅니다. 비트를 낮게 유지하면 그중 어느 것도 가능하지 않습니다.

다음은 그 사용의 예 : 당신이 말하는 모든 디렉토리하지만 그의 집에 제한 읽기 권한이있는 사용자를 원한다면 /home/dummy, 당신은해야 /하고 /homex비트 세트를, 그렇지 않으면 그는 심지어 자신의 홈 디렉토리를 얻을 수 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.