ディレクトリのデフォルトのACLは、ディレクトリの下に作成されたファイルとサブディレクトリに継承されます。
これは一般的な要件のようです。サブディレクトリはデフォルトで実行可能でなければなりませんが(CDなど)、ファイルはそうではありません。
サブディレクトリと(サブ)ファイルに対して別々のデフォルト(つまり継承された)ACLを設定したり、この効果を得るにはどうすればよいですか?
付録:
Raspberry PiモデルB、Raspbian、get / setfacl 2.2.51
cat /proc/version
Linux version 3.6.11+ (dc4@dc4-arm-01) (gcc version 4.7.2 20120731 (prerelease) (crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08) ) #474 PREEMPT Thu Jun 13 17:14:42 BST 2013
答え1
デフォルト値しかありませんが、ファイルがACLを継承すると、プログラムは書き込み用にファイルを開くときに設定したモードに基づいて設定されるマスクに変更されます。 (モードは実際にはumaskによって変更されます。umaskのビットが削除されるため、モード666にumask 002を追加すると664になります。rw-
)グループなので、実際に実行権限がありません。マスクは、パターンのグループビットまたはchmod(使用されている場合)のグループビットに基づいて生成されます。
したがって、通常のファイルを生成すると、x
ACLに設定されますがブロックされます。デフォルトでは、ディレクトリはモード755または775(umaskによって異なります)で作成されるため、マスクはまたはになりrwx
ますr-x
。したがって、ACLのxフラグはまだ有効です。
私は首都について混乱していましたX
。これは、ACL が同時に複数のファイルに設定されている場合にのみ適用されます。その後、権限を設定できます。これによりX
、ディレクトリには権限がありますが、x
ファイルには権限がありません。
答え2
ACL を使用して他の基本ファイルおよびディレクトリ権限を設定することはできません。ただし、x
権限も問題になりません。デフォルトのACLを適切なディレクトリ権限(たとえばrwx
、r-x
または---
)に設定します。 「visible」は含まれず、それに応じてファイルが生成されますx
。
生成されたすべてのファイルまたはディレクトリ〜しなければならない付随するファイル許可モード(このパラメーターがないと、そのシステム呼び出しを呼び出すことはできません)。ほとんどの場合、そのコードはrw-rw-rw-
ファイルとrwxrwxrwx
ディレクトリの権限モードを使用し、権限の削除はデフォルトのACL(または存在しない場合はumask)のままにします。
デフォルトのACL(またはumask)は、有効な権限を追加せずに一部のみを削除します。したがって、x
基本 ACL にx
for ディレクトリが含まれていても、呼び出しコードの for 選択は尊重されます。