グループ書き込み権限を継承しますが、ZFS ACLを使用してOmniOS(Illumos)でファイルを実行しません。

グループ書き込み権限を継承しますが、ZFS ACLを使用してOmniOS(Illumos)でファイルを実行しません。

私たちはumask 027ほとんどの時間を運営しています。複数のユーザーが関連するいくつかのディレクトリでは、ACL継承を使用してシミュレートする素晴らしい方法を見つけましたumask 002

これが私が使用するコマンドです。本質的にこれはchmod 775継承です。

/usr/bin/chmod A=owner@:rwxpDaARWcCos:fd:allow,group@:rwxpDaARWcs:fd:allow,everyone@:rxaRcs:fd:allow $@`

$@更新するファイルのリストを示します。完全なACL構文をサポートしていないようで、/usr/bin/chmodOpenSolarisバージョンを使用しています。/usr/gnu/bin/chmod

魅力のように機能し、g+sグループ名を継承することもできます。しかし、次の点を改善するのに助けが必要です。

  1. (実行)権限はa+xディレクトリにのみ適用され、ファイルによって自動的に継承されるべきではありません。
  2. (読み取り)権限はo+rファイルにのみ適用する必要があります。いいえls匿名ユーザーの機能を無効にしたいからです。

私はOmniOS / IllumosとZFSに非常に満足していますが、残念ながら、これは通常のLinux ACL構文とはまったく異なるSolaris ACLスキームを使用します。

ある種の条件付き継承が順番に適用されます。ファイルはある方法で継承され、ディレクトリは別の方法で継承されます。可能ですか?

答え1

a + x(実行)権限はディレクトリにのみ適用され、ファイルによって自動的に継承されるべきではありません。

全リスト(ACL)の各アクセス制御エントリ(ACE)に対して継承方法を指定できます。このオプションは以下から取得されます。Solaris 管理ガイド、OmniOSにも適用されます(表8.1〜8.3)。

  • ファイル継承(f):ACLのみが親ディレクトリからこのディレクトリのファイルに継承されます。
  • dir_inherit(d):ACLのみが親ディレクトリからそのディレクトリの子ディレクトリに継承されます。
  • 継承(i)のみ:ACLは親ディレクトリから継承されますが、ディレクトリ自体ではなく、新しく作成されたファイルまたは子ディレクトリにのみ適用されます。 f/d/fdが必要です。
  • 伝播なし(n):親ディレクトリのACLのみがディレクトリの最初のレベルのコンテンツに継承され、2番目のレベル以降のコンテンツは継承されません。 f/d/fdが必要です。

同じユーザーに複数のACEを追加して適用すると組み合わせることができるので、望ましい効果を得ることができます(Windows ACLに似ています)。他の誰にも同じので、@ownerで単純化された例:

/usr/bin/chmod A=\
    owner@:rw-p-D-ARWcCos:fd-----:allow, \
    owner@:--x---a-------:-d-----:allow, \
    [...]
$@

これは意味する

  • 最初のACEはディレクトリに適用され、a + x権限を除くすべてのファイルとディレクトリに継承されます。
  • 2番目のACEはディレクトリに適用され、すべてのサブディレクトリに継承されますが、a + x権限のみを持つファイルには継承されません。
  • 完全なACLを取得するには、ディレクトリの2行を「オーバーライド」することができます(それで、私はダッシュを含む構文を好みます。何が欠けているのかがわかります)。

お客様の要件を満たしているかどうかテストしていません。時にはアプリケーションによって異なるため、テストする必要があります。継承されたファイルとディレクトリACLは、I最後の場所に大きな数字で表示されますowner@:rw-p-D-ARWcCos:fd----I:allow

匿名ユーザーに対してls機能を無効にしたいので、o + r(読み取り)権限はディレクトリではなくファイルにのみ適用する必要があります。

最初の質問と似ていますが、反対です。 1レベルの継承だけを希望する場合n(と同様)と組み合わせることもできます。find -maxdepth 1繰り返しますが、単純なフラグでは十分ではなく、高度なフラグ()も必要になる可能性があるため、テストするときは注意してくださいARWC。また、ファイルとディレクトリのオプションを使用してACLを再帰的に適用できますchmod -R。これは、場合によっては望ましい場合があります(たとえば、ファイルが作成された場合、そのACLはファイル属性によって固定されるため、遡及してACLを変更する必要がある場合など)。aclinherit)。


私はOmniOS / IllumosとZFSに非常に満足していますが、残念ながら、これは通常のLinux ACL構文とはまったく異なるSolaris ACLスキームを使用します。

あなたの観点からはこれが不幸に思えるかもしれませんが、ACLはNFSv4 ACLと非常に似ているので、NFSバージョン4を使用することにした場合は何も変更する必要はありません。また、Windows ACLと非常によく似ています(唯一の例外:SOlarisの順序は固定されています(Windowsの順序は常に「許可」の前に「拒否」ですが、「拒否」を使用しなくても構いません)。に設定されている各Windows PCで権限を編集できることを意味しますCo。これは、ドメインとワークグループ全体で機能するため、Windowsとの相互運用性は以前に使用された解決策Sambaよりも優れています。

関連情報