質問タイトルが示唆するように、私は与えられたファイルやフォルダのntfsパーミッションをチェックする方法を知りたいと思います。(ヒント: 「セキュリティ」タブ)。基本的に、私が必要とするのは、ファイルまたはディレクトリへのパス(ローカルマシン上、またはリモートマシン上の共有フォルダ)を取得し、このファイル/フォルダに対するユーザ/グループのリストと対応する権限を取得することです。最終的に、アプリケーションはディレクトリツリーを走査し、各オブジェクトのアクセス権を読み取り、それに応じて処理します。pythonを使ってフォルダ/ファイルのntfsパーミッションを確認する
今、私はそれを行うにはいくつかの方法を考えることができます。
- 解析CACLS.EXE出力 - 簡単に行え、しかし、イムは、何かが欠けていない限り、CACLS.EXEだけでアクセス許可を与えますR | W | C | F(読み込み/書き込み/変更/完全)の形式では不十分です(「フォルダの内容を一覧表示する」などのアクセス許可を取得する必要もあります)
- xcacls.exeまたはxcacls.vbs出力 - はい、彼らは私に必要なすべての権限を与えますが、彼らは恐ろしいほど遅く働き、xcacls.vbsはローカルシステムファイルに対する権限を得るのに約1秒かかります。私はそれがこのように扱うことができますが、私はむしろホイール
を改革ではないだろうと確信して私は何か他のものがあります - そのような速度はは(?それは右、WINAPIを包み込む)
私はwin32securityがあなたが望むものだと思います。これは実際にはWindows APIのラッパーです。それが低すぎると懸念していますか? –
それが唯一の方法であれば、私はwin32securityを使ってそれを行うこともできますが、それは自分のcaclsを動かすようなものになるでしょう。なぜ私はそれをホイールを再発明すると言いましたか? – shylent
まず、caclsは、Win APIが(明らかに、あなたがしたいことを含めて)すべてのことをするわけではありません。第2に、APIを呼び出すことは(バインディングを介しても)おそらく、はるかに速くなり、別のプログラムにシェルターして出力を解析することになります。 –