問題タブ [acl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python セット型を使用して ACL を実装する
現在、次のようなテーブルがありますPages, Groups, GroupPage, Users, UserGroup
。pickled セットを使用すると、3 つのテーブルのみで同じことを実装できますPages, Groups, Users
。
set
グループおよびパーミッション関連の操作はセットで非常に自然に表現できるため、ACL を実装するための自然な選択と思われます。許可/拒否リストをピクルセットとして保存すると、多対多関係の中間テーブルがほとんどなくなり、多くのデータベース操作なしで権限の編集が可能になります。
人間の可読性が重要な場合は、シリアル化に cPickle の代わりに json をいつでも使用できset
、Python でアクセス許可リストを操作するときに使用できます。SQL を使用して権限を直接編集することはほとんどありません。それで、それは良いデザインアイデアですか?
SQLAlchemy を ORM として使用しているため、column で実装される可能性がありPickleType
ます。ピクルス化された「リソース」レコードセット全体を保存するつもりはなくset
、「リソース」の主キー値から作成されたオブジェクトのみを保存する予定です。
linux - POSIX ACL とディレクトリに適用される「スティッキー」ビット
POSIX.1eはPOSIX のACL ( Access Control List ) メカニズムを (他のセキュリティ関連の問題とともに) 定義しようとしていましたが、提案が正式な標準に変換されることはありませんでした。それにもかかわらず、ACL (必ずしも POSIX.1e ACL である必要はありません) は、少なくともオプションとして、Unix のすべての主要なバリアント ( Linux、BSD、MacOS X (ACL)、HP-UX、AIX (p107ff)、Solaris ) でサポートされています。まだ議論されていない詳細の 1 つは、ファイルの ACL がディレクトリのスティッキー ビットとどのように相互作用するかということです。
通常のディレクトリ (問題を混乱させる ACL がない) では、パーミッションをたとえば 1777 (たとえば /tmp にあります) に設定できます。
スティッキー ビットは、パーミッションの最後の位置にある「t」で示されます。これは、ユーザーがファイルに書き込みできる場合にのみ、ユーザーがディレクトリからファイルを削除できることを意味します。意味あり; ユーザーがファイルに書き込むことができる場合、ファイルの内容が破壊される可能性があります。
私の質問は:
- /tmp ディレクトリの一般的な (ACL 以外の) アクセス許可が上図のようになっているとします。
- さらに、偏執狂的なユーザー 'trembler' が、ファイルに対する非 ACL パーミッション
/tmp/secret
を 600 に設定したとします (ユーザー 'trembler'、グループ 'worried')。 - 'trembler' が /tmp/secret の 'rw' アクセス権を別のユーザー 'blase' に、'blase' を具体的に引用する ACL を介して付与するとします。
- ファイルを「blase」で削除できますか
/tmp/secret
ACL が考慮されている場合、答えは「はい」になります。ACL が無視される場合、答えは「いいえ」になります。関連するファイル システムで ACL が有効になっていると仮定すると、動作はすべての Unix バリアントで統一されていますか?
java - 既製の ACL Java ライブラリを推奨できる人はいますか?
私はそれを見つけるのに運がありません。
php - CakePHP の ACL チュートリアルで「無効なノード」エラーを解決するにはどうすればよいですか?
CakePHP ドキュメントに記載されている方法を使用してアプリケーションを作成しましたが、ログインしようとすると、次のようなエラーが表示されます。
Web サイトに記載されているのとまったく同じことを行いましたが、ログイン後にこのエラー メッセージが表示されます。これを修正するのを手伝ってください。
windows - WindowsはACLをどこに保存し、ACLはあるマシンから別のマシンへのファイルを追跡しますか?
私たちのアプリは、実行可能ファイルのあるディレクトリにライセンスファイルを必要とするコンポーネントを使用しています。これはたまたま.NET WinFormsアプリですが、この質問には重要ではないと思います。一部のXPProマシン(これまでの数百台のうち3台)にインストールすると、コンポーネントはライセンス例外をスローします。そこで、ライセンスファイルを再生成して、コンポーネントベンダー(EMC Captiva)に送信しました。ベンダーは、「Users」グループにファイルの読み取り権限がないためにエラーが発生したと主張しています。エラーが発生したユーザーはたまたまローカル管理者ですが、もっと一般的な質問に興味があるので、それは重要ではありません。
だから私の質問は、特にライセンスファイルが私の開発マシン(マシン1)で生成され、Subversion(マシン2)に保存され、ソース管理からチェックアウトされたときに、ACLがその存続期間中ファイルに従うようにファイルに保存されているかどうかですTeamCity(マシン3)によって、InstallShield(マシン4)によってインストーラーにパッケージ化され、最終的に管理者によってインストールされた顧客のマシン(マシン5)にデプロイされましたか?開発マシン(マシン1)でファイルを生成し、サポートサイト(マシン2)を介してコンポーネントベンダーにアップロードし、サポート担当者が検査のためにファイルをマシン(マシン3)にダウンロードした後はどうでしょうか。
これは確かにわかりませんが(これがここで質問している理由です)、各Windowsマシンは、ファイル内ではなく、NTFSによって管理される中央ディレクトリ/リスト/テーブルにACLを格納すると想定しました。元のファイルのACLは、あるマシンから別のマシンにコピーされたり、Subversionに保存されたり、MSIにパッケージ化されたりするとどうなりますか?誰かが私にこれについて読むことができるいくつかの良い参考文献を教えてもらえますか?
php - ACLにはどのようなリソースが必要ですか?オブジェクトのモデルまたはオブジェクトのインスタンス?
PHPWebアプリケーションのアクセス制御リストの実装を手伝ってください。特にZend_ACLを使用しています。
どの特定のエンティティ(ユーザーまたはグループ)がどのリソースにアクセスできるかを、アプリケーション全体できめ細かく制御したい。特定のリソースインスタンスだけでなく、そのタイプのすべてのリソースへのアクセスを許可できるようにしたいと思います。例えば:
- ユーザー#1には、すべての投稿に対する編集権限があります
- ユーザー#2はゲストエディターであり、投稿ID#5の編集権限を持っています
- グループ#1(ゲスト)はすべてに対して読み取り権限を持っています
- ユーザーは、ゲストから継承するユーザーグループに属しています。
私の質問はこれです:ACLはリソースのタイプまたはそこにある特定のインスタンスを参照する必要がありますか?次のようなACLを使用して、ユーザーに基本的なリソースタイプ全体の特権を付与する必要があります。
- 投稿時にユーザー#1に編集を許可する
- ユーザー#2に継承以外の何物も与えない
- グループ#1にすべてのリソースの読み取りを許可する
- 例外テーブルを実装して、特定のリソースの許可と拒否を追跡します
または、さまざまな種類のリソースのすべての個別のインスタンス用のリソースを作成し、すべてのユーザーがすべてのリソースを読み取れるように大暴れする必要がありますか?かなり野蛮なようです。
私の現在の解決策は次のとおりです。リソースの継承を使用して、タイプのない親のほとんどのリソース、タイプごとにこのルートの子、インスタンスごとにタイプごとの子を作成します。これにより、1つの特定のタイプを許可していくつかのインスタンスを拒否するか、特定のタイプを拒否して1つのインスタンスを許可することができます(上記のユーザー#2の場合のように)。これは私の許可システムをうまく統合しますが、私のニーズはもっと複雑です。間もなく、リソースタイプがネストされます。だから私は親または子になることができるさまざまなモジュールになります。例:サイト全体のフォトギャラリーモジュール、その下に別のより排他的なギャラリーが存在するアナウンスモジュール。これに対処するために何をすべきかよくわかりません。私はまだすべてのギャラリー、または1つだけ、またはその下のいくつかの写真に付与する機能を持ちたいと思っています。Zend_ACLはそうではないことに注意してください
これを実装するための最良の方法は何ですか?すべてACLを使用するか、各モジュールに組み込まれているロジックを使用しますか?
python - Pythonを使用してフォルダー/ファイルのntfs権限を確認する
質問のタイトルが示唆しているように、特定のファイルまたはフォルダーの ntfs アクセス許可を確認する方法を知りたいです (ヒント: これらは [セキュリティ] タブに表示されるものです)。基本的に、ファイルまたはディレクトリ (ローカル マシン上、またはできればリモート マシン上の共有上) へのパスを取得し、ユーザー/グループのリストと、このファイル/フォルダーに対応するアクセス許可を取得する必要があります。 . 最終的に、アプリケーションはディレクトリ ツリーを走査し、各オブジェクトの権限を読み取り、それに応じて処理します。
今、私はそれを行うためのいくつかの方法を考えることができます:
- cacls.exe の出力を解析します -- 簡単に実行できますが、何か不足していない限り、cacls.exe は R|W|C|F (読み取り/書き込み/変更/完全) の形式でアクセス許可を与えるだけであり、これでは不十分です (I 「フォルダの内容をリストする」などの権限、拡張権限も取得する必要があります)
- xcacls.exe または xcacls.vbs の出力 -- はい、必要な権限はすべて与えられますが、動作が非常に遅く、xcacls.vbs がローカル システム ファイルの権限を取得するのに約 1 秒かかります。そのような速度は受け入れられません
- win32security (winapi をラップしていますよね?) -- このように処理できると確信していますが、車輪の再発明はしたくありません。
私がここで見逃しているものは他にありますか?
windows - win7の古いPostgreSQLデータディレクトリを削除
Windows 7 で古いデータ ディレクトリを削除できません。既に PostgreSQL をアンインストールしましたが、フォルダへのアクセス権を持つ唯一のシステム サービス ユーザー アカウント「postgres」がまだ残っています。
可能な解決策は、フォルダーを削除する「postgres」ユーザーとして実行するサービスを開発することですが、もっと簡単な方法があるはずですか?
security - グリッド フレームワークにおけるグリッド セキュリティ
最近、私は軽量のグリッド フレームワーク (Hazelcast、Gigaspaces、Infinispan) の実験に深く関わっています。
しかし、私が試した無料のフレームワークのどれにも ACL やロール ベースのセキュリティ機能が組み込まれていないことに少し驚きました (Gigaspaces にはいくつかの対策があります)。
これを補うために一般的にどのようなアプローチが使用されますか? グリッドを使用して、信頼できるサーバー側アプリケーション間でデータを共有し、従来の Java EE スタック (つまり、従来の DAO 層) を使用して、クライアントまたは信頼できないサーバー アプリケーションからのデータにアクセスする必要がありますか?
グリッド内のデータにアクセスするための ACL 機能を提供するグリッド フレームワークはありますか?