ほとんどの場合、umask 027
で運用しています。複数のユーザーが関与する特定のディレクトリでは、ACL継承を使用してumask 002
をエミュレートするクールな方法を見つけました。
これが私が使用しているコマンドです。基本的に、これは継承付きのchmod 775
です:
/usr/bin/chmod A=owner@:rwxpDaARWcCos:fd:allow,group@:rwxpDaARWcs:fd:allow,everyone@:rxaRcs:fd:allow $@`
$@
は、更新するファイルのリストを表します。/usr/bin/chmod
は完全なACL構文をサポートしていないようであるため、/usr/gnu/bin/chmod
でOpenSolarisエディションを使用しています。 ==
チャームのように機能し、グループ名が継承されるようにg+s
も設定します。ただし、私が支援したいいくつかの改善点があります。
a+x
(実行)権限はディレクトリにのみ適用する必要があり、ファイルに自動的に継承されるべきではありません。ls
機能を無効にしたいので、o+r
(読み取り)アクセス許可はファイルとnotディレクトリにのみ適用する必要があります。OmniOS/Illumos&ZFSには非常に満足していますが、残念ながら、より一般的に見られるLinuxACL構文とはまったく異なるSolarisACLスキームを使用しています。
ある種の条件付き継承は、ファイルに対して1つの方法を継承し、ディレクトリに対して他の方法を継承するという順序で行われます。これは可能ですか?
A + x(実行)権限はディレクトリにのみ適用する必要があり、ファイルに自動的に継承されるべきではありません。
ACL(完全なリスト)のACE(アクセス制御エントリ)ごとに、継承方法を指定できます。オプションは、 Solaris管理者ガイド から取得されます。これはOmniOSにも適用されます(表8.1から8.3)。
同じユーザーに複数のACEを追加して、適用時に結合されるため(Windows ACLと同様)、目的の効果を実現できます。他の人にとっては同じであるため、例は@ownerに縮小されます。
/usr/bin/chmod A=\
owner@:rw-p-D-ARWcCos:fd-----:allow, \
owner@:--x---a-------:-d-----:allow, \
[...]
$@
この意味は
私はそれがあなたが望むことをすることをテストしていません、それは時々アプリケーションにも依存するので、あなたはそれをテストするべきです。継承されたファイルとディレクトリACLは、owner@:rw-p-D-ARWcCos:fd----I:allow
のように、最後の位置に大きなI
でマークされます。
匿名ユーザーのls機能を無効にしたいので、o + r(読み取り)アクセス許可はファイルにのみ適用し、ディレクトリには適用しないでください。
最初の質問と似ていますが、その逆です。第1レベルの継承だけが必要な場合は、n
と組み合わせることもできます(find -maxdepth 1
と同様)。繰り返しになりますが、単純なフラグでは不十分であり、高度なフラグ(ARWC
)も必要になるため、テストには注意が必要です。また、オプションchmod -R
を使用してACLを再帰的にファイルやディレクトリに適用することもできます。これは、場合によっては必要になることがあります(たとえば、ACLを遡及的に変更する必要がある場合、ファイルが書き込まれると、そのACLは修正されます。 aclinherit
のプロパティについて)。
OmniOS/Illumos&ZFSには非常に満足していますが、残念ながら、より一般的に見られるLinuxACL構文とはまったく異なるSolarisACLスキームを使用しています。
これは今のところ不幸に見えるかもしれませんが、ACLはNFSv4 ACLを厳密にモデル化しているため、NFSバージョン4を使用する場合は、何も変更する必要はありません。これは、Windows ACLも厳密に表しています(例外:SOlarisでの順序は修正済み、Windowsでの順序は常に[許可する前に拒否]ですが、[拒否]を使用しない場合は問題ありません)。つまり、Co
権限が許可に設定されている各WindowsPCからアクセス許可を編集できます。これはドメインとワークグループで機能するため、Windowsとの相互運用性は、Sambaが過去に採用した回避策よりも優れています。