35

Apacheのディレクトリのアクセス許可をhtdocs特定のグループに変更し、特定の読み取り/書き込み/実行を行う必要があります。

ディレクトリには 775 のアクセス許可が必要で、ファイルには 664 のアクセス許可が必要です。

に対して再帰的な 664 を実行するhtdocsと、すべてのファイルとディレクトリが 664 に変更されます。

ディレクトリを手動で変更したくありません。

ファイルまたはディレクトリのみを変更する方法はありますか?

4

7 に答える 7

68

chmod実際にこれ自体を行うことができます。シンボリック許可は、X「意味があれば実行する」ことを意味します。これは通常、ファイルではなくディレクトリを意味します。したがって、次を使用できます。

chmod -R u=rwX,go=rX /path/to/htdocs

唯一の潜在的な問題は、プレーン ファイルのいずれかに既に実行セットがある場合、chmodそれが意図的であると想定して保持することです。これが潜在的な問題であり、GNU バージョンを使用してchmodいる (つまり、Linux を使用している) 場合は、次のように実行権限を削除することができます。

chmod -R a-x,u=rwX,go=rX /path/to/htdocs

残念ながら、このトリックは の bsd (/macOS) バージョンでは機能しませんchmod(他のバージョンについてはわかりません)。これは、bsd バージョンが「元の (変更されていない) モード」、つまり変更が行われるX実行ビットがあったかどうかに基づいてパーミッションを適用するためです (ページを参照)。a-xman

于 2013-06-13T16:05:11.990 に答える
39

-typeアクションをファイルとディレクトリに制限するには、 find のオプションを使用します。このオプションを使用して異なるタイプの代替アクションを指定すると、タイプごとに個別に実行するのではなく、1 回-o実行するだけで済みます。find

find htdocs -type f -exec chmod 664 {} + -o -type d -exec chmod 775 {} +
于 2013-06-13T15:43:02.073 に答える
4

上記のゴードンの答えは正しいですが、ディレクトリツリーへのアクセスをロックダウンしようとしている場合、所有者に実行可能なスクリプトは、大文字の X を付与された人にも実行可能のままになります.

使用する

find <path> -type d -exec chmod 775 {} +

また

find <path> -type d -exec chmod 755 {} +

より安全です。

于 2015-08-22T22:07:12.437 に答える
4

Gordon が提供するソリューションに似たものを使用します。

chmod -R ug=rw,o=r,a+X /path/to/folder/

以前に一部のファイルに実行許可が設定されていた場合でも、フォルダーには常に 775 を、ファイルには 664 を設定する必要があります。

于 2016-10-18T15:49:57.053 に答える
4

findディレクトリを検索し、それらに chmod を適用するために使用します。

find -type d | xargs chmod 775

fファイルの使用タイプ:

find -type f | xargs chmod 775
于 2013-06-13T15:42:48.880 に答える
2

試す:

find htdocs -type d -exec chmod 775 {} +
于 2013-06-13T15:45:32.177 に答える
0

ディレクトリまたはファイル用

chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)
于 2021-02-03T02:12:24.397 に答える