로그 파일에 대한 권한이 거부되었습니다.

로그 파일에 대한 권한이 거부되었습니다.

일반 사용자로서 Apache의 로그 파일을 볼 수 있기를 원합니다. 이 파일을 루트로 777로 설정했지만 여전히 일반 사용자로 볼 수 없습니다. 이유는 무엇입니까?

#I have set permissions for everyone
root@senior:/var/log/apache2# ls -l
total 200
-rwxrwxrwx 1 root root   1951 Feb 27 23:07 access.log
-rwxrwxrwx 1 root root  89508 Feb 27 23:07 error.log
-rwxrwxrwx 1 root root 101601 Feb 27 23:06 other_vhosts_access.log

#I have also set directory permission 
root@senior:/var/log# ls -l
drw-rw-r-- 2 root        adm          4096 Feb 27 23:08 apache2

하지만 여전히 파일을 볼 수 없습니다

kubi@senior:$ ls -l /var/log/apache2/
ls: cannot access /var/log/apache2/other_vhosts_access.log: Permission denied
ls: cannot access /var/log/apache2/error.log: Permission denied
ls: cannot access /var/log/apache2/access.log: Permission denied
total 0
-????????? ? ? ? ?            ? access.log
-????????? ? ? ? ?            ? error.log
-????????? ? ? ? ?            ? other_vhosts_access.log
kubi@senior:/$ ls /var/log/apache2/error.log
ls: cannot access /var/log/apache2/error.log: Permission denied

나는 데비안을 실행하고 있습니다

답변1

디렉토리 750는 가 아니라 이어야 합니다 664. 또한 사용자를 adm그룹에 추가해야 합니다. 실제로 그룹의 주요 목적은 adm로그를 읽는 것입니다.

디렉토리에 대한 권한은 파일에 대한 권한과 약간 다릅니다. 단순화하기 위해 디렉토리는 이름과 주소의 목록입니다. 이름은 파일 이름이고 주소는 파일의 실제 위치입니다. 권한 x은 이 목록에 대한 액세스를 제어합니다. 특정 파일의 주소를 조회하려면 해당 상위 디렉토리와 해당 디렉토리의 상위 디렉토리 등에 대한 실행 비트가 필요합니다. r그러면 권한이 제어됩니다.목록파일: 가 있는 경우 --x파일 이름을 알면 파일에 액세스할 수 있지만 ls. 마지막으로 w파일 생성, 이름 바꾸기, 삭제를 제어합니다. 따라서 파일에 액세스하려면 항상 x비트가 필요합니다.

또한: 로그 파일을 777로 설정하지 마십시오. 둘 중 하나는 644 또는 640이어야 합니다. 두 가지 이유: 첫째, 실행 가능하지 않으므로 비트 x를 꺼야 합니다. 둘째, 더 중요한 것은 일반 사용자가 해야 할 일입니다.절대Apache 로그 파일에 쓰고 읽기만 합니다. 이는 서버의 잠재적인 보안 허점입니다.

답변2

포함된 파일을 나열하려면 디렉터리에 실행 플래그를 설정해야 합니다.

그러나 더 나은 해결책은 파일 권한을 변경하는 것이 아니라 사용자를 관리자 그룹(adm)에 추가하는 것입니다.

관련 정보