일부 WordPress 테마를 설정할 때 권한을 조정하고 실행했는데 chmod 664 -R theme-dir/*
디렉터리 루트에 있는 파일에서는 제대로 작동했지만 이제 하위 디렉터리의 모든 파일은 다음과 같이 표시됩니다 ls -l
.
?--------- ? ? ? ? ? core_functions.php
?--------- ? ? ? ? ? css
?--------- ? ? ? ? ? custom_functions.php
?--------- ? ? ? ? ? images
?--------- ? ? ? ? ? import_settings.php
?--------- ? ? ? ? ? js
?--------- ? ? ? ? ? options_trim.php
?--------- ? ? ? ? ? page_templates
?--------- ? ? ? ? ? post_thumbnails_trim.php
?---------+ ? ? ? ? ? shortcodes
하위 디렉토리로 이동할 수 없으며 삭제할 수도 없습니다. 나는 이런 것을 본 적이 없습니다. 비슷한 것을 본 사람이 있습니까?
답변1
디렉터리의 콘텐츠(또는 더 구체적으로 파일 이름을 제외한 파일 메타데이터)에 액세스하려면 디렉터리에 실행 비트가 설정되어 있어야 합니다.
재귀 chmod가 해당 권한을 제거했으므로 해당 액세스 권한을 잃게 되었습니다. -R
옵션을 사용하는 경우 chmod
숫자 버전의 권한을 사용하는 것을 피하고 대신 (원하는 상태를 예로 사용하여) 실행하는 것이 좋습니다 chmod -R ug=rwX,o=rX
. 여기서 대문자 X는 최소한 하나의 x
세트가 있는 디렉터리나 파일에만 X 비트를 설정한다는 의미입니다. 또한 u=rwX,go=rX
그룹 사용자가 작성해야 하는 경우가 아니면 644( )를 사용하는 것이 좋습니다 .
답변2
로부터워드프레스 문서:
서버에 대한 셸 액세스 권한이 있는 경우 다음 명령을 사용하여 파일 권한을 반복적으로 변경할 수 있습니다.
디렉토리의 경우:
find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;
파일의 경우:
find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;