나는 다음을 언급하고 있습니다.아치 리눅스 Access_Control_Lists 문서
그것은 다음과 같이 말합니다:
웹 서버에 개인 파일에 대한 실행 권한 부여
다음 기술은 전 세계에 액세스 권한을 부여하여 보안을 손상시키지 않고 웹 서버와 같은 프로세스에 사용자의 홈 디렉터리에 있는 파일에 대한 액세스 권한을 부여하는 방법을 설명합니다.
다음에서는 웹 서버가 http 사용자로 실행되고 geoffrey의 홈 디렉터리 /home/geoffrey에 대한 액세스 권한을 부여한다고 가정합니다.
첫 번째 단계는 http 사용자에게 실행 권한을 부여하는 것입니다.
setfacl -m "u:http:--x" /home/geoffrey
참고: 프로세스가 디렉터리의 콘텐츠를 나열하려면 디렉터리에 대한 실행 권한이 필요합니다.
따라서 위의 예에서는 /home/geoffrey 디렉토리에서 http 사용자에 대한 실행 권한을 설정하고 있습니다. 제가 이해한 바에 따르면 디렉터리에 실행 비트만 부여하면 디렉터리의 내용을 나열할 수는 없지만 파일에 액세스할 수는 있습니다(해당 이름을 알고 있는 경우 + 디렉터리 내의 특정 파일에 대한 권한이 올바른 권한을 갖고 있는 것입니다). 세트). 그러면 setfacl -m "u:http:--x" /home/geoffrey
http 사용자(또는 그들이 참조하는 프로세스)를 사용하여 디렉토리의 내용을 나열하는 것이 어떻게 가능합니까 ? 내가 무엇을 놓치고 있나요?
미리 감사드립니다!
답변1
-x
디렉토리와 그 안에 있는 모든 파일에 액세스하려면 디렉토리에 대한 권한이 필요합니다 . 그러나 디렉터리 아래의 파일에 대한 액세스는 디렉터리 자체가 아닌 파일의 권한에 따라 달라집니다. 상위(디렉토리)에 대한 실행 권한이 있는 한 여기에 포함된 파일에 액세스하기 위해 다른 것은 필요하지 않습니다. 이는 다음 예를 통해 가장 쉽게 설명됩니다.
$ sudo mkdir dir1 && echo "Hello world!" | sudo tee dir1/file1 && sudo chmod 700 dir1
Hello world!
$ ls -ld dir1/
drwx------ 2 root root 4096 Apr 12 16:09 dir1/
$ sudo ls -l dir1/
total 4
-rw-r--r-- 1 root root 13 Apr 12 16:09 file1
액세스 권한 만 root
있으므로 디렉터리의 내용을 나열하거나 파일을 분류하려고 하면 실패합니다.
$ ls dir1/
ls: cannot open directory 'dir1/': Permission denied
$ cat dir1/file1
cat: dir1/file1: Permission denied
cat
파일에 대한 읽기 액세스 권한이 있음에도 불구하고 어떻게 실패하는지 확인하십시오 . 이제 사용자에게 디렉토리에 대한 실행 액세스 권한을 부여하고 다시 시도하면 파일을 읽을 수 있습니다.
$ sudo chmod 711 dir1/
$ ls -l
total 4
drwx--x--x 2 root root 4096 Apr 12 16:09 dir1
$ cat dir1/file1
Hello world!
디렉토리에 대한 읽기 액세스가 필요하기 때문에 디렉토리의 내용을 나열할 수는 없지만 이제 해당 경로를 알고 있는 한 디렉토리에 있는 모든 파일을 읽을 수 있습니다.
따라서 기본 아이디어는 여기서는 타당합니다. 혼란스러운 것은 마지막 메모일 뿐입니다. 내용을 나열하려면 읽기 액세스 권한이 필요하지만 http
경로가 알려진 특정 파일에 대한 액세스 권한만 사용자에게 부여해야 하는 경우 실행 액세스이면 충분합니다 .
표현이 형편없긴 하지만, 그 메모는 정확히 틀린 것은 아니며 단지 불완전할 뿐입니다. 실제로 실행 권한이 필요합니다.충분히디렉토리의 내용을 나열합니다. 이것이 없으면 파일 이름은 볼 수 있지만 속성은 볼 수 없습니다.
$ ls -l
total 4
drwxr--r-- 2 root root 4096 Apr 12 16:09 dir1
$ ls -l dir1/
ls: cannot access 'dir1/file1': Permission denied
total 0
-????????? ? ? ? ? ? file1
답변2
누락된 내용이 없습니다. 이 문서의 대부분은 정확하지만 메모는 잘못되었습니다.
홈 디렉토리를 넘어 다른 디렉토리로 이동할 수 있습니다. 다른 디렉토리는 읽고 교차할 수 있으므로 해당 디렉토리의 내용이 나열됩니다.
나는 당신의 집을 건널 수만 있게 만드는 것이 좋은 생각이라고 생각합니다. 그러나 나는 또한 당신이 옳다고 생각합니다. 그것이 무엇을 하는지에 대한 설명은 잘못되었습니다.
- 디렉터리의 파일 이름을 나열하려면 읽기 권한이 필요합니다.
- 파일 에 대한 교차 권한이 필요합니다
stat
(파일에 대해 알아보거나 파일을 엽니다).
버그 보고서를 제출하셨나요?