1

最初に述べさせてください: プログラムを実行したい (またはログインしたい) ユーザーは、(おそらく少なくとも) の Windows システム ディレクトリと共有ライブラリにアクセスする必要があることを知っていますが、%ProgramFiles%そうしたいと思います。たとえば、特権のないユーザーで実行して Skype にアクセスできるようにし、不要なファイルにアクセスできないようにします。

これを行う唯一の方法は、このユーザーにアクセスさせたくないファイルを保存している無数のディレクトリをすべて特定し、これらのディレクトリにアクセスできる新しいユーザーグループを作成するか、Skype と Azureus を実行することです。 VM で。

より良い方法はありますか?

4

4 に答える 4

3

通常、アカウントは少なくとも Users グループのメンバーであり、多くのものにアクセスできます。アカウントをグループのメンバーにしないか、非常に制限されたゲスト グループにすることができます。

本当の問題は、プログラムのトークン (実行中のプロセスが持つセキュリティ ID を追跡する内部セキュリティ オブジェクト) に、多くのものへの読み取りアクセス権を持つ Everyone グループと Authenticated Users グループが含まれることです。これらのグループなしでアカウントを作成する方法はありません。Everyone グループと Authenticated Users グループが持つほとんどすべてのアクセス権を削除できますが、それらすべてを追跡するのは大変な作業になります。

信頼されていないプログラム用に標準ユーザーまたはゲスト アクセス アカウントを作成することは、十分に安全であると言えます。自己更新をサポートし、関連ファイルを同じ場所に保持するには、これらのプログラムを実行するユーザー アカウントのプロファイルに直接インストールすることをお勧めします。C:\Documents and Settings\skype\Program Files\Skype

本当に凝ったものにしたい場合は、制限付きトークンを使用して、Everyone、Authenticated Users などのグループを拒否のみにする (アクセスを許可できないようにする) か、制限付き SID リストを作成することができます。プログラムがアクセスすることが期待されるグローバル オブジェクトがあり、Everyone グループがアクセスできるため、これを実装するのは困難です。これは通常、安全な選択です。

CreateRestrictedToken 関数を参照してください。

オープンソースのコマンド ライン プログラムもあります。この目的のために、制限付きトークンとジョブ オブジェクトをオンザフライで作成するプログラムを作成しました: UlimitNT

于 2009-01-02T16:08:31.220 に答える
1

多分sudownが解決策です。これは、特権のないユーザーとして実行するための sudo に似た (Linux で知られている) アプローチですが、必要に応じて (パスワードを使用して) 管理者アカウントに昇格する可能性があります。

ユーザーが単独でログオンできるようにマシンをロックダウンし、自分の権利でSkypeを起動することさえできず、sudownで「実行」してSkypeを起動できると思います。

于 2009-01-02T15:45:16.837 に答える
0

VM を使用する以外に、サンドボックスの使用を検討できます。Sandboxie fox の例を見てください。

于 2009-01-02T15:24:12.730 に答える
-1

acl apis を使用するだけです (msdn のサンプル)

于 2009-01-03T14:32:59.073 に答える