403 다운로드를 시도할 때 /var/www/html에 있는 파일이 금지되어 있습니까?

403 다운로드를 시도할 때 /var/www/html에 있는 파일이 금지되어 있습니까?

내 서버에서 데스크탑 컴퓨터로 파일을 복사하려고 합니다. 나는 그것을 /var/www/html(웹 페이지가 있는 곳)에 배치했고, 그것을 다운로드하려고 하면 403 Forbidden. 파일을 시도해도 chmod 777해결되지 않습니다.

내가 무엇을 잘못하고 있으며 왜 이 오류가 발생합니까?

답변1

Apache 사용자가 소유하도록 파일을 수정해야 합니다. 기본적으로 Apache는 www-data사용자(그룹에 있음 www-data)로 실행됩니다. 를 사용하여 chown파일 소유자를 수정할 수 있습니다( 와 함께 사용해야 할 수도 있음 sudo).

chown -R www-data:www-data /var/www/html

마지막으로 파일이 다음 위치에 있는지 확인해야 합니다.최소Apache 사용자에 대한 읽기 및 실행 권한입니다. 말씀하신 대로 이미 이 작업을 수행했지만 모든 권한/파일 소유자를 수정한 후에는 를 실행하여 모든 것이 괜찮은지 확인해야 합니다 ls -l /var/www/html. 보안 조치로서 다른 사용자의 모든 권한을 제거하는 것도 현명한 방법입니다.

chmod -R 0550 /var/www/html

쓰기 액세스가 필요한 PHP 또는 다른 스크립팅 언어를 사용하는 경우 대신 위의 권한 마스크를 수정해야 할 수도 있습니다 0770. 예방 조치로 필요한 경우(예: 웹 사이트 캐시 데이터 쓰기 또는 파일 업로드) 디렉토리에서만 해당 마스크를 사용하십시오.

답변2

저는 CentOS 7 + Apache를 사용하고 있습니다. 문제를 해결한 유일한 명령은 다음과 같습니다(이전에 chown+chmod를 시도했기 때문입니다).

sudo setenforce 0 #SELinux 비활성화

그런 다음 파일(제 경우에는 anyfile.zip)을 다운로드할 수 있지만 공격자가 코드를 작성하고 실행할 수 있는 문을 열 수 있습니다.

답변3

아마 당신은SELinux활성화되었습니다. 현재 목적을 위한 가장 간단한 방법은 문제의 파일을 Apache가 실행 중인 사용자 ID로 표시하는 것입니다.

관련 정보