[php] WordPress에 대한 올바른 파일 권한 [닫힘]

여기를 살펴 보았지만 최고의 파일 권한에 대한 세부 정보를 찾지 못했습니다. 또한 이상 워드 프레스의 양식의 몇 가지 질문을 살펴했다 너무 여기 하지만 777을 제안 사람은 분명히 보안에 약간의 교훈을 필요로한다.

요컨대 내 질문은 이것입니다. 다음에 대한 사용 권한은 무엇입니까?

  1. 모든 WordPress 컨텐츠를 저장하는 루트 폴더
  2. wp-admin
  3. wp- 콘텐츠
  4. wp- 포함

그런 다음 각 폴더의 모든 파일?



답변

WP를 설정할 때 파일에 대한 쓰기 액세스 권한이 웹 서버에 필요할 수 있습니다. 따라서 액세스 권한을 느슨하게해야합니다.

chown www-data:www-data  -R * # Let Apache be owner
find . -type d -exec chmod 755 {} \;  # Change directory permissions rwxr-xr-x
find . -type f -exec chmod 644 {} \;  # Change file permissions rw-r--r--

설정 후에는 해야 액세스 권한을 강화 에 따라, 경화 워드 프레스 WP – 콘텐츠를 제외한 모든 파일은 사용자 계정에 쓰기 권한이 있어야합니다. wp-content 도 www-data 로 쓸 수 있어야합니다 .

chown <username>:<username>  -R * # Let your useraccount be owner
chown www-data:www-data wp-content # Let apache be owner of wp-content

나중에 wp-content의 내용을 변경하고 싶을 수도 있습니다. 이 경우에는

  • 일시적으로 사용자에게 변경 WWW 데이터su,
  • wp-content 그룹에 775 액세스 권한을 부여하고 www-data 그룹에 가입 하거나
  • ACL을 사용하여 사용자에게 폴더에 대한 액세스 권한을 부여하십시오 .

무엇을 하든지 파일에 www-data에 대한 rw 권한이 있는지 확인하십시오 .


답변

www-data사용자 (이 경우 웹 서버 사용자) 에게 모든 wp 파일에 대한 전체 액세스 권한을 부여하면 위험 할 수 있습니다. 오히려 이것을 하지 마십시오 :

chown www-data:www-data -R *

그러나 WordPress 및 해당 플러그인을 설치하거나 업그레이드 할 때 유용 할 수 있습니다. 그러나 완료했을 때 더 이상 웹 서버가 소유 한 wp 파일을 유지하는 것은 좋은 생각이 아닙니다.

기본적으로 웹 서버는 웹 사이트에 파일을 넣거나 덮어 쓸 수 있습니다. 이는 누군가 웹 서버 (또는 일부 .php 스크립트의 보안 허점)를 사용하여 웹 사이트에 일부 파일을 저장하는 경우 사이트를 인수 할 가능성이 있음을 의미합니다.

이러한 공격으로부터 사이트를 보호하려면 다음을 수행해야합니다.

모든 파일은 사용자 계정이 소유해야하며 사용자가 쓸 수 있어야합니다. 호스팅 설정에 필요한 경우 웹 서버에서 WordPress에서 쓰기 액세스가 필요한 파일을 쓸 수 있어야합니다. 즉, 웹 서버 프로세스에서 사용하는 사용자 계정으로 해당 파일을 그룹 소유해야합니다.

/

루트 WordPress 디렉토리 : WordPress에서 자동으로 다시 쓰기 규칙을 생성하도록하려면 .htaccess를 제외하고 모든 파일은 사용자 계정으로 만 쓸 수 있어야합니다.

/wp-admin/

WordPress 관리 영역 : 모든 파일은 사용자 계정으로 만 쓸 수 있어야합니다.

/wp-includes/

대량의 WordPress 응용 프로그램 논리 : 모든 파일은 사용자 계정으로 만 쓸 수 있어야합니다.

/wp-content/

사용자 제공 컨텐츠 : 사용자 계정 및 웹 서버 프로세스에서 쓸 수 있도록 작성되었습니다.

내면에서 /wp-content/찾을 수 있습니다 :

/wp-content/themes/

테마 파일. 내장 테마 편집기를 사용하려면 웹 서버 프로세스에서 모든 파일을 쓸 수 있어야합니다. 내장 테마 편집기를 사용하지 않으려면 모든 파일을 사용자 계정으로 만 쓸 수 있습니다.

/wp-content/plugins/

플러그인 파일 : 모든 파일은 사용자 계정으로 만 쓸 수 있어야합니다.

존재할 수있는 다른 디렉토리는 /wp-content/플러그인이나 테마에 필요한 디렉토리 로 문서화해야합니다. 권한이 다를 수 있습니다.

출처 및 추가 정보 : http://codex.wordpress.org/Hardening_WordPress


답변

홈 폴더 아래에 워드 프레스 루트 폴더가있는 사람 :

** 우분투 / 아파치

  1. www-data 그룹에 사용자를 추가하십시오.

CREDIT www-data 그룹에 쓰기 권한 부여

사용자에게 전화를 걸고 싶습니다 usermod. 따라서 다음과 같습니다.

sudo usermod -aG www-data yourUserName

** www-data그룹이 존재 한다고 가정

  1. 사용자가 www-data그룹에 있는지 확인하십시오 .

    groups yourUserName

다음과 같은 것을 얻어야합니다.

youUserName : youUserGroupName www-data

** youUserGroupName은 일반적으로 사용자 이름과 유사합니다.

  1. 사용자 소유권을 유지하면서 wp-content 폴더의 그룹 소유권을 반복적으로 변경

    chown yourUserName:www-data -R youWebSiteFolder/wp-content/*

  2. 디렉토리를 youWebSiteFolder / wp-content /로 변경하십시오.

    cd youWebSiteFolder/wp-content

  3. 쓰기 권한을 사용하려면 폴더 및 하위 폴더의 그룹 권한을 반복적으로 변경하십시오.

    find . -type d -exec chmod -R 775 {} \;

**`/ home / yourUserName / youWebSiteFolder / wp-content / ‘모드가 0755 (rwxr-xr-x)에서 0775 (rwxrwxr-x)로 변경되었습니다.

  1. 쓰기 권한을 사용하려면 파일 및 하위 파일의 그룹 권한을 반복적으로 변경하십시오.

    find . -type f -exec chmod -R 664 {} \;

결과는 다음과 같아야합니다.

WAS:
-rw-r--r--  1 yourUserName www-data  7192 Oct  4 00:03 filename.html
CHANGED TO:
-rw-rw-r--  1 yourUserName www-data  7192 Oct  4 00:03 filename.html

다음과 같습니다.

chmod -R ug + rw 폴더 이름

권한은 파일의 경우 664, 디렉토리의 경우 775와 같습니다.

Ps 'could not create directory'플러그인을 업데이트 할 때 누군가 오류가 발생 하면
server@user:~/domainame.com$ sudo chown username:www-data -R wp-content
도메인의 루트에있을 때 수행 하십시오.
가정 : wp-config.php
로컬 호스트에서 FTP 자격 증명을
define('FS_METHOD','direct');


답변

https://wordpress.org/support/article/changing-file-permissions/ 에서 wordpress 문서를 읽는 것이 가장 좋습니다.

  • 모든 파일은 httpd 프로세스에 사용 된 사용자 계정이 아닌 실제 사용자 계정이 소유해야합니다.
  • 웹 서버 프로세스 권한 검사에 대한 특정 그룹 요구 사항이 없으면 그룹 소유권은 관련이 없습니다. 일반적으로 그렇지 않습니다.
  • 모든 디렉토리는 755 또는 750이어야합니다.
  • 모든 파일은 644 또는 640이어야합니다. 예외 : wp-config.php는 서버의 다른 사용자가 읽을 수 없도록 440 또는 400이어야합니다.
  • 디렉토리를 업로드하지 않아도 777이 주어지지 않아야합니다. php 프로세스는 파일의 소유자로 실행되므로 소유자 권한을 가지며 755 디렉토리에도 쓸 수 있습니다.

답변

권한을 다음과 같이 설정했습니다.

    # Set all files and directories user and group to wp-user
    chown wp-user:wp-user -R *

    # Set uploads folder user and group to www-data
    chown www-data:www-data -R wp-content/uploads/

    # Set all directories permissions to 755
    find . -type d -exec chmod 755 {} \;

    # Set all files permissions to 644
    find . -type f -exec chmod 644 {} \;

필자의 경우 웹에서 해당 사용자가 소유 한 파일에 액세스하지 못하게하는 아파치 기본 사용자와 다른 WordPress에 대한 특정 사용자를 만들었습니다.

그런 다음 아파치 사용자가 업로드 폴더를 처리하고 최종적으로 충분한 파일 및 폴더 권한을 설정하도록 권한을 부여합니다.

편집

W3C Total Cache를 사용하는 경우 다음도 수행해야합니다.

rm -rf wp-content/cache/config
rm -rf wp-content/cache/object
rm -rf wp-content/cache/db
rm -rf wp-content/cache/minify
rm -rf wp-content/cache/page_enhanced

그럼 작동합니다!

편집

WordPress 사이트를 개발하는 동안 환경마다 다른 파일 권한을 권장합니다.

프로덕션 환경에서는 파일 시스템을 수정하기 위해 사용자에게 액세스 권한을 부여하지 않고 리소스를 업로드하고 백업을 수행하기 위해 특정 플러그인에 특정 폴더에 대한 액세스 권한 만 부여합니다. 그러나 Git에서 프로젝트를 관리하고 서버의 경우 준비 또는 프로덕션에서 플러그인을 업데이트하지 않습니다. 프로덕션 파일 설정을 여기에 둡니다.

# Set uploads folder user and group to www-data
chown www-data:www-data -R wp-content/uploads/

www-data : www-data = 아파치 또는 nginx 사용자 및 그룹

준비는 복제와 동일한 프로덕션 권한을 공유합니다.

마지막으로, 개발 환경은 플러그인, 번역, 모든 것을 업데이트 할 수 있습니다 …

# Set uploads folder user and group to www-data
chown www-data:www-data -R wp-content/

# Set uploads folder user and group to www-data
chown your-user:root-group -R wp-content/themes

# Set uploads folder user and group to www-data
chown your-user:root-group -R wp-content/plugins/your-plugin

www-data : www-data = 아파치 또는 nginx 사용자 및 그룹
your-user : root-group = 현재 사용자 및 루트 그룹

이러한 권한을 통해 권한 을 요청하지 않고도 폴더 themesyour-plugin폴더 를 개발할 수 있습니다 . 나머지 컨텐츠는 Apache 또는 Nginx 사용자가 소유하여 WP가 파일 시스템을 관리 할 수 ​​있도록합니다.

git repo를 만들기 전에 먼저 다음 명령을 실행하십시오.

# Set all directories permissions to 755
find . -type d -exec chmod 755 {} \;

# Set all files permissions to 644
find . -type f -exec chmod 644 {} \;


답변

파일에 대한 올바른 권한은 644입니다. 폴더에 대한 올바른 권한은 755입니다.

권한을 변경하려면 터미널과 다음 명령을 사용하십시오.

find foldername -type d -exec chmod 755 {} \;
find foldername -type f -exec chmod 644 {} \;

폴더는 755, 파일은 644입니다.


답변

기본 워드 프레스 사이트에는 다음 규칙이 권장됩니다.

  • wp-content 내의 폴더에 대해 0755 권한을 설정하십시오.

    chmod -R 0755 플러그인

    chmod -R 0755 업로드

    chmod -R 0755 업그레이드

  • apache user가 위의 wp-content 디렉토리에 대한 소유자가되게하십시오.

    chown 아파치 업로드

    chown 아파치 업그레이드

    chown 아파치 플러그인