Apacheのディレクトリのアクセス許可をhtdocs
特定のグループに変更し、特定の読み取り/書き込み/実行を行う必要があります。
ディレクトリには 775 のアクセス許可が必要で、ファイルには 664 のアクセス許可が必要です。
に対して再帰的な 664 を実行するhtdocs
と、すべてのファイルとディレクトリが 664 に変更されます。
ディレクトリを手動で変更したくありません。
ファイルまたはディレクトリのみを変更する方法はありますか?
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-x
man
-type
アクションをファイルとディレクトリに制限するには、 find のオプションを使用します。このオプションを使用して異なるタイプの代替アクションを指定すると、タイプごとに個別に実行するのではなく、1 回-o
実行するだけで済みます。find
find htdocs -type f -exec chmod 664 {} + -o -type d -exec chmod 775 {} +
上記のゴードンの答えは正しいですが、ディレクトリツリーへのアクセスをロックダウンしようとしている場合、所有者に実行可能なスクリプトは、大文字の X を付与された人にも実行可能のままになります.
使用する
find <path> -type d -exec chmod 775 {} +
また
find <path> -type d -exec chmod 755 {} +
より安全です。
Gordon が提供するソリューションに似たものを使用します。
chmod -R ug=rw,o=r,a+X /path/to/folder/
以前に一部のファイルに実行許可が設定されていた場合でも、フォルダーには常に 775 を、ファイルには 664 を設定する必要があります。
find
ディレクトリを検索し、それらに chmod を適用するために使用します。
find -type d | xargs chmod 775
f
ファイルの使用タイプ:
find -type f | xargs chmod 775
試す:
find htdocs -type d -exec chmod 775 {} +
ディレクトリまたはファイル用
chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)