Arch Linux 문서 디렉토리의 x 비트

Arch Linux 문서 디렉토리의 x 비트

나는 다음을 언급하고 있습니다아치 리눅스 Access_Control_Lists 문서

그것은 다음과 같이 말합니다:

웹 서버에 개인 파일에 대한 실행 권한 부여

다음 기술은 웹 서버와 같은 프로세스에 전 세계 액세스 권한을 부여하여 보안을 손상시키지 않고 사용자의 홈 디렉터리에 있는 파일에 대한 액세스 권한을 부여하는 방법을 설명합니다.

아래에서는 웹 서버가 http 사용자로 실행 중이고 geoffrey의 홈 디렉터리인 /home/geoffrey에 대한 액세스 권한이 부여되었다고 가정합니다.

첫 번째 단계는 사용자 http에게 실행 권한을 부여하는 것입니다.

setfacl -m "u:http:--x" /home/geoffrey

참고: 프로세스의 내용을 나열하려면 디렉터리에 대한 실행 권한이 필요합니다.

따라서 위의 예에서는 http 사용자에 대해 /home/geoffrey 디렉토리에 대한 실행 권한을 설정했습니다. 내가 이해한 바에 따르면, 디렉토리에 실행 비트를 부여하는 것만으로는 디렉토리의 내용을 나열할 수는 없지만 파일에 액세스할 수는 있습니다(파일 이름 + 디렉토리에 있는 특정 파일에 대한 권한을 알고 있는 경우). 올바른 권한을 갖게 됩니다) ). 그렇다면 http 사용자(또는 그들이 참조하는 프로세스)는 어떻게 setfacl -m "u:http:--x" /home/geoffrey디렉토리의 내용을 나열할 수 있습니까? 내가 무엇을 놓치고 있나요?

미리 감사드립니다!

답변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디렉터리나 cat 파일의 내용을 나열하려고 하면 실패합니다.

$ 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파일에 대한 정보를 찾거나 파일을 열려면 파일에 대한 교차 권한이 필요합니다 .

버그 보고서를 제출하셨나요?

관련 정보