まず、アクセストークン
にはセキュリティ識別子(SID)よりもはるかに多く含まれています。ユーザーが管理者ではなく自分自身であることをタスクマネージャーで確認するには、プログラムを「管理者として実行」するだけでよく、この奇跡はSIDを置き換えることではなく、アクセストークンの変更によって達成されます。
第二に、NT-AUTHORITYとSYSTEMは、他のさまざまなソース(Microsoft内でも)が言っているにもかかわらず、アカウントでもグループでもありません。通常、SIDには、必要なときに表示される名前があります。ユーザーアカウントは、そのSIDをプリンシパルSIDとしてアクセストークンに提供します。アクセストークンは、さまざまなユーティリティによって表示される名前も決定します。ただし、アクセストークンには、たとえばそのユーザーアカウントが属するすべてのグループに対して、追加のSIDが含まれる場合があります。アクセス許可を確認するとき、Windowsはそのアクセス許可を持つアクセストークン内のSIDを探します。
一部の有名なWindows SIDには、Windowsによって報告される名前がありますが、実際にはどのアカウントにも属していません。
A セキュリティ識別子は、
ウィキペディアでのように定義されます。
ユーザー、ユーザーグループ、またはその他のセキュリティプリンシパルの一意の不変の識別子
。
SIDは、ユーザーアカウントまたはグループを定義する必要もありません。一連の許可を定義するだけです。上記のウィキペディアの記事には以下が追加されています。
Windowsは、SIDを使用してユーザーとそのグループメンバーシップを一意に識別するアクセス制御リスト(ACL)に基づいて、リソースへのアクセスと特権を許可または拒否します。ユーザーがコンピューターにログインすると、ユーザーおよびグループのSIDとユーザー特権レベルを含むアクセストークンが生成されます。ユーザーがリソースへのアクセスを要求すると、アクセストークンがACLと照合され、特定のオブジェクトに対する特定のアクションが許可または拒否されます。
のSIDはNT-AUTHORITY\SYSTEM
他のアカウントに追加できます。たとえば、これはLocalSystemアカウントについて言われてい
ます:
LocalSystemアカウントは、サービスコントロールマネージャーが使用する定義済みのローカルアカウントです。[...] そのトークンにはNT AUTHORITY \ SYSTEMおよびBUILTIN \ Administrators SIDが含まれています。これらのアカウントは、ほとんどのシステムオブジェクトにアクセスできます。
上記のテキストでは、Microsoftのドキュメントでさえ、システムSIDに関して支配している混乱を既に見ることができます。システムSIDは、アカウントでもグループでもありません-単なるアクセス許可のセットです。この混乱は他のユーティリティや記事にも及ぶため、返された情報は慎重に検討する必要があります。
Microsoftの記事「
Windowsオペレーティングシステムの既知のセキュリティ識別子」に
は、すべてのシステムSIDの詳細が記載されています。そのうちのいくつかを以下に示します。
結論:NT-AUTHORITY \ SYSTEMはセキュリティIDの名前であり、グループでもアカウントでもありません。プログラムのプリンシパルSIDである場合、タスクマネージャーにSYSTEMとして表示されます。私がそれを呼ぶのは「疑似アカウント」です。