web-dev-qa-db-ja.com

会社のファイル共有に対する破損またはブロックされた権限を修正するにはどうしますか?

最近、私はストレージ会社の1人と協力して、長年会社で使用されている大きなファイル共有の調査に関わるプロジェクトに取り組んでいます。多くの場合、以下の理由の1つ以上のために、(ドメイン管理者アカウントで)アクセスできないディレクトリまたはファイルに遭遇します。

  • 破損したACL
  • administratorsグループ(またはSYSTEMユーザー)のアクセスが取り消されたか拒否されました
  • ファイル名+パスが長すぎます( MAX_PATH を超えて)

マイクロソフト(TAKEOWN.EXEやICALCS.EXEなど)またはサードパーティ(例 SETACL.EXE )から、これらの状況で役立ついくつかのツールがあります。 PSEXEC.EXE を使用してSYSTEMアカウントでコマンドを実行するなど、他のトリックが必要になる場合があります。どの手順をどの順序で実行するかを理解するだけでも、課題です...

たとえば、次のようなフローでトラブルシューティングできるようにしたいと思います。

  1. パスが長すぎませんか?もしそうなら、\\?\接頭辞を付けて、もう一度テストします。
  2. ACLは壊れていますか?その場合は、ACEを正しく並べ替え、不明なものをすべて削除してから、もう一度テストします。
  3. Administratorsグループはアクセスを拒否されていますか?その場合は、所有権を取得し、AdministratorsグループとSYSTEMアカウントのアクセス許可を元に戻し、もう一度テストします。
  4. まだ失敗していますか?その場合は、すべてのACEを削除し、継承されたアクセス許可のみを適用してから、もう一度確認してください。 (これは、より制限的であるはずの権限を頻繁に開くため、これは最後の手段の一種です。)
  5. ディレクトリですか?もしそうなら、プロセスは内部のファイルに対して再帰的に継続する必要があります...

上記の手順を手動で行うのは面倒であり、何百ものディレクトリを修正する必要がある場合は不合理です。私はこれらを支援するスクリプトを書いてみましたが、スクリプトが行う決定についてスクリプトを「スマート」にすることは難しいため、継承された権限のみを復元するなどの大まかな修復方法を実行する方が簡単であることがよくあります。

誰かがこのプロセスに役立つ他のソフトウェアやスクリプトを推奨できますか?または、このような権限の問題をどのように修正しますか?

8
ewall

fileacl を使用することをお勧めします。これはSeBackupPrivelegeでACLを設定できるため、コマンドを実行しているユーザーに、特定のオブジェクトのACLを変更するためのアクセス許可が必要ないためです。さらに、NTFS-5後の継承機能をネイティブでサポートし、簡単にスクリプト化できるため、ラッピングスクリプトロジックを使用して、必要な処理を実行できます。

2
the-wabbit