faclは「x」権限を無視しますが、ファイルにのみ適用されます。

faclは「x」権限を無視しますが、ファイルにのみ適用されます。

setfaclを使用してサブファイル/ディレクトリが持つ必要がある権限を管理するときは、何らかの理由でファイルに実行( "x")権限を除くすべての権限があります。

someuser@someuser-MS-7816:/opt/lampp/htdocs/project$ getfacl .
# file: .
# owner: someuser
# group: webs
# flags: -s-
user::rwx
group::rwx
other::rwx
default:user::rwx
default:group::rwx
default:other::rwx

someuser@someuser-MS-7816:/opt/lampp/htdocs/project$ touch file
someuser@someuser-MS-7816:/opt/lampp/htdocs/project$ mkdir dir
someuser@someuser-MS-7816:/opt/lampp/htdocs/project$ ls -l
total 4
drwxrwsrwx+ 2 someuser webs 4096 paź 31 13:35 dir
-rw-rw-rw-  1 someuser webs    0 paź 31 13:35 file

私はこれがumaskに関連していると思いますが、私が何かを見逃していない限り、さまざまな方法で変更すると、決して期待した結果が得られません。

この問題をどのように解決しますか?

ベストアンサー1

ホクラキンの答え次のように教えてください。

    ファイルまたはディレクトリを生成するすべてのプログラムは、ファイルに付与するモード(権限)を指定します。これはほとんど常にCプログラム(または使用される言語)にハードコードされており、ユーザーに直接アクセスできることはほとんどありません。その後、umask値とデフォルトのACLは許可ビットをオフにできますが、追加することはできません。

    問題は、mkdirモードが777(rwxrwxrwx)で指定されているのに、ファイルを生成するほとんどすべてのプログラムが666()で指定されていることですrw-rw-rw-。これにはtouch、シェル(例:I / Oリダイレクト用)、エディタ(、、など...)などが含まれます。したがって、ACL をどのように使用しても、通常のファイルが生成された直後(これらのプログラムで)ファイルに対する権限を取得することはできません。ファイルを生成してから生成する必要があります。program > filevivimemacsddsplitrwxrwxrwxchmod

    このルールにはいくつかの例外があります。

    • cpcpioおよびファイル(例えば、など)をコピーまたは再生成する関連プログラムtar。新しいファイルを元のファイルと同じモードに設定(試行)します。
    • バイナリ実行可能ファイルを生成するコンパイラはモード777を指定します(少なくともコンパイルが成功した場合)、ユーザーは実際にコンパイルしたプログラムを実行できます。

おすすめ記事