전 세계가 0750 디렉터리 아래의 디렉터리에 액세스할 수 있도록 허용

전 세계가 0750 디렉터리 아래의 디렉터리에 액세스할 수 있도록 허용

나는 내 /home/dotancohen/디렉토리를 권한으로 유지하는 것을 선호합니다 0750. 그러나 액세스하려면 Apache가 필요합니다 /home/dotancohen/someProject/public_html/. 홈 디렉터리 0755~/someproject/를 제외한 모든 하위 디렉터리를 구성할 수 있다는 것을 알고 있지만 ___0이는 고통스럽습니다. ~/someproject/public_html/홈 디렉토리를 그대로 유지하면서 Apache가 이 디렉토리에 액세스하도록 허용하려면 어떻게 해야 합니까 0750?

나는 심볼릭 링크를 시도했지만 /war/www/someProjectApache 가 무엇을 할 /home/dotancohen/someProject/수 없더라도 사용자(Apache)를 그룹에 추가 할 수 있다고 생각했지만 그것이 너무 많은 힘을 주는 것 같습니다.0750/home/dotancohen/www-datadotancohen

대안으로 네트워크 파일을 보관할 수도 있지만 /var/www/someProject/다른 이유로 인해 저는 해당 파일을 홈 디렉터리에 보관하는 것을 선호합니다.

답변1

다양한 옵션을 사용할 수 있습니다. 제가 생각하는 것은 각각의 장단점이 있습니다.

  • 상위 디렉터리에서 월드 실행 비트를 설정할 수 있습니다. 이렇게 하면 파일의 전체 경로를 아는 사람은 누구나 해당 파일에 액세스할 수 있지만 다른 사람은 액세스할 수 없습니다. 공격자가 관심을 가질 수 있으므로 엄격한 권한을 요구하는 더 엄격한 권한(예: ~/.bashrc, ~/.gnupg, ~/.Xauthority 등)으로 보호하지 않는 한 잘 알려진 파일은 그대로 유지됩니다.

  • ACL을 활용하여 보다 세부적인 수준에서 동일한 작업을 수행할 수 있습니다. 예를 들어 www-data 사용자 또는 그룹에게 디렉터리에 대한 액세스만 허용하고, 웹 서버가 목록을 제공해야 하는 모든 디렉터리에 대한 읽기/실행 액세스를 허용할 수 있습니다. 내용 및 파일에 대한 읽기 권한을 제공해야 합니다.

  • www-data 사용자를 dotancohen 그룹에 추가한 다음 Apache가 액세스할 수 있도록 하려는 항목을 제외한 모든 항목에 대한 그룹의 권한을 취소할 수 있습니다. 이는 아마도 가능한 한 적게 열 수 있는 가장 쉬운 방법일 것입니다. 그러나 이미 다른 목적으로 그룹 권한을 사용하고 있는 경우에는 더 까다로워집니다.

  • 또는 공개적으로 사용 가능한 파일을 홈 디렉토리 밖으로 완전히 이동할 수 있습니다. 이는 권한 측면에서 확실히 가장 쉬운 설정이며, 그렇게 하지 않을 만한 설득력 있는 이유가 없는 한 제가 선택할 선택입니다. 설정 및 특정 요구 사항에 따라 적절한 소유권을 가진 공개 루트에서 0750 또는 0770 권한을 사용하는 것이 실용적일 수도 있습니다. 이렇게 하면 자신과 웹 서버에 대한 액세스만 제한됩니다. 그러한 디렉토리 트리 전체에 걸쳐 자신의 소유자, 그룹 www-data 및 권한 0710은 가능한 한 엄격할 수 있지만 이는 웹 서버가 해당 디렉토리에서 액세스하는 모든 파일의 전체 이름을 알아야 함을 의미합니다.

그런데 FHS 준수로 마이그레이션하는 것을 고려할 수 있습니다./srv/var 대신.

관련 정보