1. 統制権を持って

1. 統制権を持って

質問からわかるように。

NFSv4 ACLによってアクセスが制御される約1000万のファイルを含むデータプールがあります。 CLI、Samba、時にはデーモンまたはいくつかのrsyncディレクトリのftp / sftpを介して使用することができ、時間の経過とともに多くの部分が混乱する可能性があります。それそうだいいですね。しかし、プールのサイズを目視で確認することができず、過去にACLを修正しなければならなかったことがあります。したがって、ACLが正しい状態であるかどうかはわかりません。今回は、保証とベストプラクティスを確認するためにACLを確認したいと思います(「監査」はおそらくより良い言葉です)。

後でこれをやり直したいと同時にスクリプトファイルを書くのは遅いので、特にこの目的のためにFreeBSDユーティリティやパッケージがあるか、少なくとも速い方法があることを願っています。それ!

理想的な出力は、親エントリとは異なるACLを持つすべてのファイル/ディレクトリのリストです(Windowsはトリッキーですが、それほど重要ではないため、ACL順序の検証を含めることが理想的です)。いくつかの明確に定義されたファイルしなければならないさまざまなACLがあるため、すべてが正常であることを確認するために結果に表示するファイルを探しています。

そのようなリストを生成する最も効率的な方法は何ですか?

アップデート - 追加情報:

@Claus_Andersonが述べたように、元のQは具体的に十分に書かれていませんでした。

私の主な関心事は、自分自身を再確認することです。私が設定したACLが期待どおりに機能することを確認したいと思います。これは、「ごく少数の特定のファイルを除くすべての項目が継承されます」です。私の制限は非常に厳しく、設定時に十分に慎重にチェックしないことに加えて、主なリスクは私の仕事を混乱させる危険性があります。無効なuidまたは愚かなものからファイルまたはディレクトリにアクセスするか、WSambainheritパラメータを設定します。削除するのを忘れてください。愚かなことですが、起こることができます。自分の仕事を確認することが重要であり、喜んで行います:)

このプールはNFSv4 ACLを使用します(明確にするためにQが更新されました)。シェルからいくつかのスクリプトを簡単に作成、実行し、ファイルfindシステムツリーをナビゲートし、各「汎用」ファイル+ディレクトリについて、そのオブジェクトのACLとその親ACLを取得するのと同じであることを確認し、例外をダンプできます。リスト(オブジェクトへのパスが等しくない)をテキストファイルに追加します。ファイルに多くのパスがあると、明らかにシステムエラーが発生する可能性があるため、それを修正して再確認できます。パスが少ない場合は目で確認できます。予想される例外が発生した場合は、毎週スクリプトを実行し、電子cronメールを介してリストに追加/削除/合計されたファイル数を取得できます。

これに対する私の懸念は、これが非常に非効率的であるということです。特権API/アーカイブシステムと直接対話し、スクリプトをstructs繰り返すことなく一括してACLをインポートし、項目ごとに2つのファイルシステム呼び出しを生成し、テキスト形式に変換してからテキスト比較を実行する専用ユーティリティです。 .低効率。 Unixのアプローチは、ツールを持ち、専門的なタスク(または密接に関連したタスク)を実行することです。スクリプトはこれを行うことができますが、エレガンス/効率性の観点からACL処理の側面がうまくいかない限り、本当に恐ろしいです(とにかく私にとってはそうです!)。だから、もっと良い方法があるのだろうか。setfacl/getfacl/otheraclプロセスをより効率的にする標準的なユーティリティ、オプション、または移植パッケージを意味しますか?

権限をリセットするのも良いアプローチですが、問題を解決して知らないよりも間違いを犯したかどうかを確認したいと思います。あるいは、いくつかの既知の例外を除くすべての例外が次のようになります。遺伝学アクセス許可、見つかったすべてのファイル+ディレクトリのナビゲーションと一覧表示明らかにACL は 2 番目のルックアップを防止するので、きちんとしたソリューションでもあります。

ベストアンサー1

質問にあまりにも多くの仮定をしました。私があなたのタイトルにのみ答えるなら、「スクリプト」と答えます。私は一般的にやっていることではないので、汎用ツールについて知りません。

標準UNIXがあります権限モデルそしてアクセス制御リスト。 1つ目は使用しchmodて管理することでchflags、2つ目は使用setfaclして管理することですgetfacl

ACLを一度見るのはまったく問題にならないと思います。これがUnixの作業方法です。これで美しいパイプラインを構築できます。ファイルに親ファイルと異なるACLがあることを確認するには、それに応じてパイプラインを構築します。

あなたの質問によると、物事を監視し、正しい位置に保つ方法が明らかであると思うようです。しかし、あなたは何もしません。特定はい。あなたにとって明らかなことは、残りの私たちには明らかではありません。

だから!特定の問題を解決するための便利なスクリプトはありますか?いいえ。 "awk"をタグ付けしても文は書きません:-)

しかし、いくつかの一般的なパターンがあります。

1. 統制権を持って

ACLは驚くほど強力で、細部に細心の注意を払ってすべてを設定することで、権限が期待どおりに維持されるようにすることができます。これは当然責任を必要とします。適切なACLを使用すると、単純なユーザー/グループよりもはるかに多くの権限があります。私が統制権を委任したら、私は自分が望むように状況を設定できるようにするために大きな努力を払ったでしょう。それから、与えられた状況で寛大になるのを避ける方法について議論する必要があります。ユーザーが権限を設定しない場合は、それに応じて権限を設定する必要があります。継承は難しいかもしれませんが、解決することができます。

2. 統制権を持ちなさい

もう一つの一般的で簡単な方法は、権限をリセットすることです。より多くの人が管理アクセス権を持っている場合、これは役に立ちます。だからそこに頼るのではなくそうださて、それからチョークポイントを定義し、権限をリセットします。ファイルに親ファイルと同じ権限を付与するには、親ファイルを繰り返して子ファイルをリセットします。残念ながら、誤った権限が設定されている管理者はシステムの「ヘルプ」を受け取ります。この場合、スクリプトはchmod / chflags / setfacls / setuidの簡単なリストになります。

3. クリーナー

非常に複雑でセキュリティレベルの低いシステムがあり、管理者として機能し(単に制御を持っていない)、慎重な方法でシステムを整理する必要がある場合は、侵入検知システム(IDS)を調べることが重要です。 。そのような周知のシステムの1つは以下の通りである。引き継ぎ鉄線。これはシステムを監視するのに役立ち、予期しない変更が発生したときに通知します。 Tripwireポリシーを具体的に確認する必要があります。二重ポリシーそして財産p - Permission & filemode bits

審査あなたにも興味があるかもしれません。

おすすめ記事