CentOS 서버 파일 권한

CentOS 서버 파일 권한

서버 관리를 위해 CentOS 가상 머신을 사용하는 방법을 배우기 시작했습니다. 간단한 홈페이지를 만들어 보려고 합니다.

Apache 기본 파일이 있기 때문에 /var/www파일을 작성/만들기/변경하기가 어렵습니다 . 그렇긴 하지만, 홈 페이지를 폴더에 넣고 /var/www다른 모든 페이지는 폴더에 넣기를 원합니다 /home/$USER/Documents/Website.

홈페이지의 코드는 href다른 페이지의 코드일 뿐입니다. 내 컴퓨터에서 코드를 실행하면 작동하지만 홈페이지로 이동하면(브라우저에 IP 입력) 링크가 작동하지 않지만 홈페이지는 여전히 있습니다.

링크를 클릭하면 나타나는 오류는 입니다 404 file not found.

해당 오류 코드에서 파일 위치를 복사하고 서버에 입력하면

cat {file_location}

파일을 인쇄하는데 문제가 없습니다. Apache 그룹을 이 파일의 소유자로 변경했습니다. Apache 서버가 여기에서 파일을 찾도록 하려면 어떻게 해야 합니까? 편집해야 합니까 http.conf?

편집: 서버가 이름이 지정된 폴더에서 읽고 쓸 수 있도록 하려면 어떻게 해야 합니까 /Website?

편집 2: 내가 실행 중인 Apache 버전이 무엇인지 모르겠습니다. CentOS 설치 프로그램을 사용하여 Apache를 설치합니다. /var/www/html/index.html내 IP 주소를 입력하면 나타나는 페이지입니다 . GUI 패키지를 사용하여 서버를 설치한 후 "보안" 문제가 있음을 알려주는 SELinux 팝업이 표시되므로 이는 SELinux 문제일 가능성이 높습니다. 나는 그것이 말한 스크립트를 실행했고 폴더를 쓸 수 있었습니다 /var/www/html. 이제 다른 위치에 폴더를 추가하고 싶지만 어떻게 해야 할지 모르겠습니다. 폴더에 쓰기를 방지하는 SELinux 외에도 올바르게 기억한다면 /var/www/html소유자를 변경하고 실행했습니다.chmod 755

답변1

Apache가 에서 파일만 제공하도록 하려면 /WebsiteApache 구성을 편집하여 로 /etc/httpd/conf/httpd.conf변경한 다음 서버를 다시 로드하세요 .DocumentRoot/Websitesystemctl reload httpd.service

/Website또한 SELinux 파일 컨텍스트와 그 안에 있는 파일을 변경해야 합니다 . /var/www( httpd_sys_content_t또는 ) httpd_sys_rw_content_t에서와 동일한 파일 컨텍스트를 사용할 수 있습니다 . 새 파일 레이블 지정 규칙을 추가 semanage하고 restorecon다음을 사용하여 적용합니다.

semanage fcontext -a -t httpd_sys_rw_content_t "/Website(/.*)?"
restorecon -R -v /Website

예를 들어, 홈 디렉터리에서 사용자 콘텐츠를 제공하도록 Apache를 구성하려는 경우. http://server/~user, 당신은 그것을 사용할 수 있습니다mod_user 디렉토리. 이를 활성화 /etc/httpd/conf.d/userdir.conf하고 서버를 다시 로드하십시오.

httpd_read_user_content액세스를 허용하려면 SELinux 부울을 활성화하십시오 .

semanage boolean -m --on httpd_read_user_content 

디렉터리의 파일은 public_html이미 올바른 httpd_user_content_t유형으로 구성되어 있어야 합니다. 그렇지 않은 경우 실행하여 restorecon -R -v /home/user/public_html올바른 파일 컨텍스트를 적용할 수 있습니다.

관련 정보