web-dev-qa-db-ja.com

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

どのサブディレクトリにもcdできません。また、それらを削除することもできません。私はこのようなものを見たことがありません、誰かが同様の何かに遭遇したことがありますか?

22
Sal

ディレクトリのコンテンツ(より具体的には、ファイル名以外のファイルメタデータ)にアクセスするには、ディレクトリに実行ビットが設定されている必要があります。

再帰的なchmodがその権限を削除したため、そのアクセス権を失いました。 chmod-Rオプションを使用している場合は、パーミッションの数値バージョンの使用を避け、代わりに(目的の状態を例として使用して)chmod -R ug=rwX,o=rXを実行することをお勧めします。大文字のXは、少なくとも1つのxが設定されているディレクトリまたはファイルにのみXビットを設定することを意味します。また、実際にグループユーザーに書き込む必要がない限り、644(u=rwX,go=rX)を使用することもできます。

49
Kevin Cathcart

Wordpressドキュメント から:

サーバーへのシェルアクセス権がある場合は、次のコマンドを使用してファイルのアクセス許可を再帰的に変更できます。

ディレクトリの場合:

find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;

ファイルの場合:

find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;
13
bentek