ACLの動作を説明できません。

ACLの動作を説明できません。

それはWeb開発者のためのサーバーです。開発者が多い。すべてのdevelopers++はPHPグループApacheに属しますwww。開発ディレクトリがあります - development

目標はdevelopmentディレクトリ内のすべてのファイルに755権限があり、開発者がディレクトリdevelopmentにファイルを作成して変更するたびに、ファイルにはまだ755

だから私は多くのaclチュートリアル、ガイド、ガイドを読んでいましたが、まだ望む結果を得ることができませんでした。

  1. マイディスクのインストールにはacl
  2. 私は持っていますchown -R www:www development
  3. 次へ追加chmod g+s development
  4. 私はディレクトリにいくつかのaclルールを設定し、development次のような結果を得ました。

    $ getfacl development
    # file: development
    # owner: www
    # group: www
    # flags: -s-
    user::rwx
    user:www:rwx
    group::rwx
    group:www:rwx
    mask::rwx
    other::r-x
    default:user::rwx
    default:user:www:rwx
    default:group::rwx
    default:group:www:rwx
    default:mask::rwx
    default:other::r-x
    
    p.s. I know its messy, was doing a number of tests
    
  5. 私の考えによると、ACLディレクトリにこれらの規則がある場合は、私の作業は完了する必要がありますが、dirにファイルを作成しようとすると、次のような結果がdevelopment表示されます。

    -rw-rw-r--+ 1 www     www      0 Nov 21 09:14 newfile
    

rw-なぜ作られたのか分からないようですrwx

私が見逃している単純なものかもしれませんし、私が理解していない一般的な概念かもしれません。

答え1

デフォルトのACLは、noを指定するumaskを置き換えます。基本権限がありますが、最高新しいファイルを作成する権限。この場合はrwxrwxr-x

その後、アプリはopen目的の権限を使用してまたはを呼び出します。creatほとんどすべてのアプリケーションはrw-rw-rw-ファイルを要求します。

を実行してこれを確認できますstrace

$ strace -e trace=file touch newfile
...
open("newfile", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3

0666同じですrw-rw-rw-。)

両方の権限は、ビットごとのANDを使用して組み合わせることによって取得されますrw-rw-r--

  rwxrwxr-x     # default ACL
  rw-rw-rw-     # permission requested (e.g. by touch, vim, etc.)
& _________
  rw-rw-r--     # effective permissions

その他の説明はこちらPOSIX アクセス制御リスト- 「基本ACLの例」。

したがって、実際の質問は:なぜこれらのファイルが実行可能なのですか?

関連情報