chmod -R은 어떤 이유로든 하위 폴더의 파일을 읽을 수 없도록 만듭니다.

chmod -R은 어떤 이유로든 하위 폴더의 파일을 읽을 수 없도록 만듭니다.

일부 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 {} \;

관련 정보