chmod -Rは、何らかの理由で子フォルダー内のファイルを読み取り不可にします


22

私はいくつかの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することはできません。また、それらを削除することもできません。私はこのようなものを見たことがありません、誰かが似たようなものに出くわしたことがありますか?


破損したファイルシステムのように見えます
。-アレクサス

1
実行chmod -R u+rwX,go+rX,go-w theme-dir/*
ドゥサンバジッチ

@ dusan.bajicうまくいきました、ありがとう。しかし、そもそもなぜそれが起こったのか、まだ分かりません。
サル

5
@alexus破損なし、​​パーマ

私は、私はchmodの対644(または何を)はchownなかったとき、私はそのような何かを見たと思うが、私は実際に働いて、システムに再びテストのように感じることはありません
FOON

回答:


49

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

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


6
Xは、一部のユーザーに対して実行権限を既に持っているディレクトリおよびファイルにXを設定することを意味します(通常は必要です)
-tomclegg

1
@tomclegg:そうです。回答を適切に更新しました。本当のディレクトリ固有のバージョンを追加したことがない、またはこの変更をディレクトリにのみ適用することを意味する操作前の文字(u、g、o、aなど)を追加したことがないのは奇妙に思えます。
ケビンキャスカート

13

Wordpressのドキュメントから:

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

ディレクトリの場合:

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

ファイルの場合:

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

この特定の問題に対するやり過ぎですが、他の場合には非常に便利です:)
nurchi

1
よりセキュリティに敏感な環境(最近マゼントとヘルスケアシステム)で、ベンダーとオープンソースシステムは、上記の条件をカイト単位で細かく制御でき、また、 setuid、setgid、および悪名高い「スティッキービット」の適用。このユースケースでこれをマッピングするのはおそらくもっと手間がかかりますが、賭けの答えは常に望ましい結果を達成する最も安全な方法です。セキュリティは、余裕がある場合は常に機能#1である必要があります。
ブライアン 'BJ'ホフパウアージュニア
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.