問題タブ [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 - ntfs アクセス許可が継承されているかどうかを判断する信頼できる方法
ここでちょっとわかりにくい質問があります。
必要なもの: ファイル/フォルダーのアクセス許可 (厳密に言えば、DACL の特定の ACE) が継承されているかどうかを判断するには。
これをどのように解決しようとしたか: Python の winapi バインディングを使用する (正確には win32security モジュール)。これは、単純にファイルへのパスを引数として取り、ACE を 1 つずつ出力して、どのフラグが設定されているかを示します。
簡単です。セキュリティ記述子を取得し、そこから DACL を取得してから、DACL 内の ACE を反復処理します。ここで非常に重要なのは、INHERITED_ACE アクセス フラグです。ACE が継承されたときに設定する必要があり、明示的に設定する必要はありません。
フォルダー/ファイルを作成すると、その ACL には、親オブジェクト (フォルダー) の ACE に従って ACE が入力され、子に伝達するように設定されます。ただし、アクセス リストを変更しない限り、INHERITED_ACE フラグは設定されません。ただし、継承されたアクセス許可は存在し、機能します。
わずかな変更 (アクセス リストにエントリを追加し、変更を適用して削除するなど) を行うと、フラグが魔法のように表示されます (動作はまったく変更されませんが、以前は機能し、その後も機能します)。私が望むのは、INHERITED_ACE フラグのこの動作の原因を見つけ、ACE が継承されたかどうかを判断する別の信頼できる方法を見つけることです。
再現方法:
- オブジェクト (ファイルまたはフォルダー) を作成する
- Windows エクスプローラーでアクセス許可を確認し、それらが親オブジェクトから伝達されていることを確認します (たとえば、Windows エクスプローラーのファイル プロパティ ダイアログの [セキュリティ] タブを使用します)。
- たとえば、私が使用していたスクリプトを使用してフラグを確認します (INHERITED_ACE はどの ACE にも設定されません)。
- オブジェクトの権限を変更 (変更を適用) したり、元に戻したりします。
- フラグを確認します (INHERITED_ACEがあります)
- ..信じられないという気持ちで首を横に振る
やや長い投稿で申し訳ありませんが、これが少なくとも少し意味をなすことを願っています.
php - フィクスチャは他のフィクスチャからアイテムを「コピー」できますか?
ACLフィクスチャにはリソースとアクションがあり、ほとんどのリソースはCRUDのような共通のアクションを共有していますが、Doctrine(yaml)に別の要素を拡張する方法はありますか?
これが私の現在のyamlからの宣伝文です:
たとえば、「ニュース記事」と呼ばれる、A1をA4に継承し、独自のアクションを含む新しいリソースを使用してR1を拡張するにはどうすればよいですか。
php - 3 レベルのユーザーを指定して CakePHP ACL をセットアップするにはどうすればよいですか?
私はこのようなデータベース設定をしています (これが最適な設定ではないことはわかっていますが、それを変更する力がありません :-(
基本的に、ユーザーには 3 つのレベルがあります - 管理者 - マネージャー - スタッフ
いくつかの注意事項: - スタッフの各メンバーは部門に属しています - スタッフの logon_code がマネージャ テーブルに表示されている場合、そのスタッフはマネージャです。彼らは管理者です
これに対して ACL/Auth を設定するにはどうすればよいでしょうか。何か案は?
CREATE TABLE tblStaff
(
StaffID
int(11) NOT NULL auto_increment,
dept_id
varchar(5) デフォルト NULL,
logon_code
char(10) NOT NULL,
forename
char(50) NOT NULL,
surname
char(50) NOT NULL, PRIMARY KEY ( StaffID
), ) ;
CREATE TABLE tblManager
(
ManagerID
varchar(15) NOT NULL,
logon_code
varchar(15) NOT NULL,
dept_id
varchar(5) NOT NULL,
SystemAdmin
tinyint(1) unsigned default NULL, PRIMARY KEY ( ManagerID
) ) ;
CREATE TABLE tblDepartment
(
dept_id
varchar(5) NOT NULL,
sect_id
varchar(50) デフォルト NULL,
subsect_id
varchar(50) デフォルト NULL,
sect_name
varchar(50) デフォルト NULL,
sect_abbr
varchar(50) デフォルト NULL,
subsect_name
varchar(50) デフォルト NULL, PRIMARY KEY ( dept_id
) ) ;
security - ClearCase(Windows Server)でVOB読み取りアクセスを制限するにはどうすればよいですか?
コンプライアンス上の理由から、ClearCaseの特定のVOBで読み取りアクセスを制限する方法を検討するように依頼されました(したがって、これは監査可能である必要があります...など)。これまでに解決策を見つけたので、ここに投稿しますが、まだ質問があるので、助けていただければ幸いです。特に悪魔は細部に宿っているので、私は思います。
議論を簡単にするために、3つのVOBと3つのグループがあるとします。
- gAとgBは2つの特別なグループであり、他のすべてのCCユーザーはデフォルトのCCグループであるgCに属します。
- VOB vAは、グループgAへの読み取り/書き込みアクセスであり、他のすべてのユーザーに制限されています
- VOB vBは、グループgBへの読み取り/書き込みアクセス、グループgAへの読み取りアクセスであり、他のすべてのユーザーに制限されています
- VOB vCは、すべての人への読み取り/書き込みアクセスです
未回答の質問:
CCユーザーに異なるドメイングループを使用するとどのような影響がありますか?ユーザーがログに記録すると、クリアケースグループはユーザー変数CLEARCASE_PRIMARY_GROUPによって取得されます。それらがgAからのものであり、vAで正常に動作している場合、この変数はgAに設定されますが、vCで何かを変更する必要がある場合、vCでのファイル/バージョンのグループ所有権はgAのままであると思います。それについては何もしません。vC内のオブジェクトは、最終的にgA、gB、gCに属するグループを持つことになります。それは問題になる可能性がありますか?
実際にgAとgBの両方の人々を含む新しいグループgA'を作成せずに、vBでACLを適切に設定できるかどうかさえわかりません。
ここでの難しさは技術的なものではなく、特定の人々に適切なグループへのアクセスを提供するプロセスにおいて、CMチームはこれを避けなければならない(そしてそれをセキュリティ部門と関係する開発チーム)。誰かがこの問題の経験がありますか?
ClearCaseリージョンを使用して同じ効果を達成することは可能であるようです。それはどのように機能しますか?
よろしくお願いします、
トーマス
multithreading - アクセス許可を下に流すことなく、特定のフォルダーにのみ NTFS ACL を設定する API はありますか?
私の環境では、多数のファイル サーバーで NTFS ACL 監査レポートとさまざまな ACL クリーンアップ アクティビティを実行するプロジェクトがいくつかあります。これらのアクティビティをサーバー上でローカルに実行できない主な理由は 2 つあります。
1) サーバーは実際には別の会社によって所有および管理されているため、サーバーへのローカル アクセス権がありません。
2) それらは変更された Linux OS (GuardianOS と呼ばれる) を実行するSNAP NAS サーバーであるため、ローカル アクセスを取得できたとしても、必要な操作を実行するためのツールが利用できるかどうかはわかりません。
それが邪魔にならないように、私は独自の ACL 監査レポート ツールを展開することになりました。このツールは、指定された最上位パスから始まるファイル システムを再帰的に調べ、ACL で遭遇したすべてのグループ/ユーザーに関する HTML レポートを次のように吐き出します。ツリーをたどる際のアクセス許可の変更を表示するだけでなく、このツールを開発しているときに、ネットワーク オーバーヘッドがこれらの操作を実行する際の最悪の部分であり、プロセスをマルチスレッド化することで、大幅に優れたパフォーマンスを達成できることがわかりました。
ただし、ACL の変更とクリーンアップを実行するための優れたツールを見つけるのにまだ苦労しています。すぐに使用できる標準ツール (cacls、xcacls、Explorer) はシングル スレッドのようで、ネットワーク経由でパフォーマンスが大幅に低下します。マルチスレッド化された独自の ACL 設定プログラムのローリングを見てきましたが、私がよく知っている唯一の API は .NET FileSystemAccessRule のものであり、問題は、フォルダーにアクセス許可を設定すると、自動的に「フロー」することです。権限を下げます。マルチスレッドを使用して自分で「流れる」ことをしたいので、これは問題を引き起こします。
NTFS では、継承されたアクセス許可が異なる 2 つの親フォルダー間で同じボリューム上でフォルダー/ファイルが移動され、古いアクセス許可が「継承」されているため、継承されたアクセス許可の一貫性が「許可」されていることはわかっています。
質問
1)現在のフォルダーとすべての子に適用される ACL (標準の「ファイル、フォルダー、およびサブフォルダーに適用」ACL) を設定する方法はありますが、自動的に子オブジェクトに流れないようにする方法はありますか? 基本的には、「はい、この ACL を子オブジェクトに適用する必要がありますが、今のところ、このオブジェクトに直接設定するだけです」と Windows に伝えられるようにしたいと考えています。
明確にするために、「このフォルダーのみ」に適用するための ACL オプションについて知っていますが、要件である継承を失うため、そのオプションは私のユースケースでは有効ではありません。
2) マルチスレッド方式で ACL の変更を実行するための優れたアルゴリズムまたは方法論を知っている人はいますか? 私の直感では、ファイルシステムの再帰的トラバーサルは、特に最上位フォルダーに新しい ACL を定義していて、すべてのサブフォルダーを「クリーンアップ」したい場合は特に、理論的には機能するはずです。最上位に新しい ACL をスタンプしてから、明示的な ACE を削除してから、継承されたアクセス許可を「フロー」ダウンして再帰します。
(参考までに、この質問は、実際にはシステム管理者とプログラミングの問題の両方であるため、ServerFault から部分的に複製されています。他の質問では、ネットワーク経由で高速な ACL 設定を実行できるツールを誰かが知っているかどうかを尋ねていました。)
version-control - どのソース管理システムにファイルレベルのアクセス許可がありますか?
ファイルレベルでアクセス許可を付与および拒否できないため、VSSからの移行を提案する場合があります。問題は、どのソース管理システムがこれを可能にするかです。
更新 最も多くのフィードバックがあったため、SVNの回答を「正しい」回答としてマークしています。しかし、正解はありません。私はあなたのすべてのフィードバックに基づいて経営陣に私の推薦をします。
php - ACLでリソースのツリーをどのように構成する必要がありますか?
PHPとZend_ACLを使用して、非常に柔軟な権限システムを作成したいと思います。特定のタイプのすべてのオブジェクトと、それらのオブジェクトのインスタンスにアクセス許可を割り当てられるようにしたい。オブジェクトの特定のインスタンスが照会され、それがリソースツリーに存在しない場合は、「generic」オブジェクトに設定された権限を使用できます。私の問題は、これをネストする必要があり、Zend_ACLがサポートしていない多重継承なしでそれを行う方法を理解できないことです。
例はこれです。学部、コース、イベントを備えたオンライン学習サイト。各イベントはコースに属し、各コースは教員に属します。各学部の役割がすべてのコース(および継承によるイベント)にアクセスできるようにしたいと思いますが、特定の学部はその資料を非公開にしたいと考えています。そのため、リソースツリーの構造に各学部のリソースノードを作成し、各コースにデフォルトのアクセス許可を与える汎用コースノードから分岐するのではなく、各学部に属する各コースを学部ノードから分岐させます。新しい構造で、一般的なコースの権限をどのように適用できますか?親コースが読み取り可能である場合にのみ各イベントを読み取り可能にしたいが、各イベントにデフォルトの権限セットを適用したい場合は、コースの下のイベントにも同じことが言えます。
別のシステムに関する質問、コメント、提案は大歓迎です。
ruby-on-rails - ACLを実装する時期と場所
rails_authorization_pluginを起動してモデルで実行しています。
私のサイトに権限チェックを実装するための最良の方法は何ですか?
オブジェクトのインスタンスを表示する必要がある場合の複雑な条件がありますが、返されたデータをループしてフィルタリングした結果として、複数のデータセットをフェッチしてDBをグラインドしないように、それらをチェーン化する効率的な方法はありますか?
security - アクセス制御リスト(ACL)よりも「優れた」ものはありますか?
私は頭の中でACLをさりげなく熟考することに時間を費やしました。ACLの真のメリットとその柔軟性を確認できます。しかし、数百万とまではいかなくても数十万のユーザーがいる可能性のあるプロジェクトにACLを実装することに関しては、深刻な懸念があります。すべてが何らかの形で数十万のリソース(画像、メッセージ、BLOBなど)に接続されています。
数十万のユーザーの数百万のリソースに適用されるルールの処理と管理のオーバーヘッドはわいせつなように思えます。
しかし、私は代替案を見たことがありません。ユーザー名、パスワード、ユーザーレベル以外に何かありますか?