Windows 7では、ファイル書き込み許可エラーのために失敗するコマンドラインプログラムがあり、コマンドラインを実行するたびに迷惑な [〜#〜] uac [〜#〜] ダイアログがポップアップします。 「不明な出版社」からのプログラム。
ただし、右クリックして「管理者として実行」を選択してコンソールを起動すると、UACダイアログがまだ表示されている場合でもインストールは正常に機能します。
私のユーザーはすでに「管理者」グループのメンバーであるため、「管理者として実行」すると何が正確にインストールが機能しますか?
私の具体的な質問は正確です:「管理者として実行」は何をしますか?これまでのところ、どちらの答えもこれに対処していません。 (たとえば、「管理者」ユーザーとして新しいプロセスを実行しますか?または、現在のユーザーとしてプロセスを実行しますが、昇格された特権がありますか?その場合、どの特権ですか?ユーザーは「管理者」グループに属していますか?
(具体的には、通常のCMDウィンドウではなく SourceForge の 'Console'を使用していますが、それは重要ではないと思います。これはPython 'のインストール中ですpython.orgから新しくインストールされたPython3 MSIで「python distribute_setup.py」を実行して、パッケージを配布します。64ビットWindowsでは32ビットPythonです。を参照してください。 PythonをインストールしてWindows 7に配布すると、 "Writing failed ... permission denied")
Windowsにログオンすると、アクセストークンが作成されます。これは、あなた、あなたがメンバーであるグループ、あなたの特権を識別します。また、ユーザーが管理者であるかどうかは、ユーザーが管理者グループのメンバーであるかどうかによって決まります。
UACを使用しない場合、プログラムを実行するとアクセストークンのコピーが取得され、プログラムがアクセスできるものが制御されます。
UACでは、プログラムを実行すると、制限付きアクセストークンが取得されます。これは、グループのリストから「管理者」が削除された(およびその他の変更)元のアクセストークンです。ユーザーが管理者グループのメンバーであっても、プログラムは管理者権限を使用できません。
「管理者として実行」を選択し、ユーザーが管理者である場合、プログラムは元の無制限のアクセストークンで起動されます。ユーザーが管理者でない場合は、管理者アカウントの入力を求められ、そのアカウントでプログラムが実行されます。
だから...結果をもっと掘り下げてください。通常のプロセスを1つと「管理者として」を1つ実行しましたが、UACをオフにしたようです。 UACを中にすると、さまざまな結果を見ることができました。基本的に、すべては整合性レベル5になります。
たとえば、ブラウザは低レベル(1)で実行され、サービス(システムユーザー)はシステムレベル(4)で実行されます。すべてがWindows Integrity Mechanism Designで非常によく説明されています。 UACが有効な場合、プロセスは中レベルで作成され(SID S-1-16-8192 AKA 0x2000が追加されます)、「管理者として実行」の場合、プロセスは高レベル(SID S-1-16-12288 aka 0x3000)。
したがって、通常のユーザー(中程度の整合性レベル)の正しいACCESS_TOKENは次のとおりです。
0:000:x86> !token
Thread is not impersonating. Using process token...
TS Session ID: 0x1
User: S-1-5-21-1542574918-171588570-488469355-1000
Groups:
00 S-1-5-21-1542574918-171588570-488469355-513
Attributes - Mandatory Default Enabled
01 S-1-1-0
Attributes - Mandatory Default Enabled
02 S-1-5-32-544
Attributes - DenyOnly
03 S-1-5-32-545
Attributes - Mandatory Default Enabled
04 S-1-5-4
Attributes - Mandatory Default Enabled
05 S-1-2-1
Attributes - Mandatory Default Enabled
06 S-1-5-11
Attributes - Mandatory Default Enabled
07 S-1-5-15
Attributes - Mandatory Default Enabled
08 S-1-5-5-0-1908477
Attributes - Mandatory Default Enabled LogonId
09 S-1-2-0
Attributes - Mandatory Default Enabled
10 S-1-5-64-10
Attributes - Mandatory Default Enabled
11 S-1-16-8192
Attributes - GroupIntegrity GroupIntegrityEnabled
Primary Group: LocadDumpSid failed to dump Sid at addr 000000000266b458, 0xC0000078; try own SID dump.
s-1-0x515000000
Privs:
00 0x000000013 SeShutdownPrivilege Attributes -
01 0x000000017 SeChangeNotifyPrivilege Attributes - Enabled Default
02 0x000000019 SeUndockPrivilege Attributes -
03 0x000000021 SeIncreaseWorkingSetPrivilege Attributes -
04 0x000000022 SeTimeZonePrivilege Attributes -
Auth ID: 0:1d1f65
Impersonation Level: Anonymous
TokenType: Primary
Is restricted token: no.
現在、違いは次のとおりです。
S-1-5-32-544
Attributes - Mandatory Default Enabled Owner
「管理者として」の場合、
S-1-5-32-544
Attributes - DenyOnly
非管理者向け。
S-1-5-32-544はBUILTIN\Administratorsであることに注意してください。また、権限が少なくなり、最も重要なことに注意してください。
管理者:
S-1-16-12288
Attributes - GroupIntegrity GroupIntegrityEnabled
一方、非管理者の場合:
S-1-16-8192
Attributes - GroupIntegrity GroupIntegrityEnabled
これがお役に立てば幸いです。
さらに読む: http://www.blackfishsoftware.com/blog/don/creating_processes_sessions_integrity_levels
[〜#〜] update [〜#〜]
「Run as Aministrator」は単なるコマンドであり、UACアラートを表示せずに、プログラムが管理者特権を必要とする一部の操作を続行できるようにします。
ユーザーが管理者グループのメンバーであっても、システムファイルの編集などの特別な操作を行っている場合、アプリケーションは安全ではないと見なされるため、実行中のアプリケーションには管理者権限が必要です。これが、Windowsがアプリケーションを実行するために管理者特権を必要とし、UACアラートで通知する理由です。すべてのアプリケーションを実行するためにAmnistratorアカウントが必要なわけではなく、一部のアプリケーションは、管理者権限が必要です。
「管理者として実行」コマンドを使用してアプリケーションを実行すると、アプリケーションが安全であることをシステムに通知し、管理者権限が必要なことを確認して実行します。
これを避けたい場合は、コントロールパネルでUACを無効にしてください。
さらに詳しく知りたい場合は、Microsoftフォーラムの質問 「管理者として実行」とWindows 7管理者グループの違い または this スーパーユーザーの質問。
「特権の昇格」、「制限付きアクセストークン」、「管理者特権」など...とにかく管理者特権とは何ですか?ナンセンスです。
以下は、通常Administratorsグループに属するユーザーから実行されるプロセスのACCESS_TOKENです。
0: kd> !process 0 1 test.exe
PROCESS 87065030 SessionId: 1 Cid: 0d60 Peb: 7ffdf000 ParentCid: 0618
DirBase: 2f22e1e0 ObjectTable: a0c8a088 HandleCount: 6.
Image: test.exe
VadRoot 8720ef50 Vads 18 Clone 0 Private 83. Modified 0. Locked 0.
DeviceMap 8936e560
Token 935c98e0
0: kd> !token -n 935c98e0
_TOKEN 935c98e0
TS Session ID: 0x1
User: S-1-5-21-2452432034-249115698-1235866470-1000 (no name mapped)
User Groups:
00 S-1-5-21-2452432034-249115698-1235866470-513 (no name mapped)
Attributes - Mandatory Default Enabled
01 S-1-1-0 (Well Known Group: localhost\Everyone)
Attributes - Mandatory Default Enabled
02 S-1-5-32-544 (Alias: BUILTIN\Administrators)
Attributes - Mandatory Default Enabled Owner
03 S-1-5-32-545 (Alias: BUILTIN\Users)
Attributes - Mandatory Default Enabled
04 S-1-5-4 (Well Known Group: NT AUTHORITY\INTERACTIVE)
Attributes - Mandatory Default Enabled
05 S-1-2-1 (Well Known Group: localhost\CONSOLE LOGON)
Attributes - Mandatory Default Enabled
06 S-1-5-11 (Well Known Group: NT AUTHORITY\Authenticated Users)
Attributes - Mandatory Default Enabled
07 S-1-5-15 (Well Known Group: NT AUTHORITY\This Organization)
Attributes - Mandatory Default Enabled
08 S-1-5-5-0-85516 (no name mapped)
Attributes - Mandatory Default Enabled LogonId
09 S-1-2-0 (Well Known Group: localhost\LOCAL)
Attributes - Mandatory Default Enabled
10 S-1-5-64-10 (Well Known Group: NT AUTHORITY\NTLM Authentication)
Attributes - Mandatory Default Enabled
11 S-1-16-12288 (Label: Mandatory Label\High Mandatory Level)
Attributes - GroupIntegrity GroupIntegrityEnabled
Primary Group: S-1-5-21-2452432034-249115698-1235866470-513 (no name mapped)
Privs:
05 0x000000005 SeIncreaseQuotaPrivilege Attributes -
08 0x000000008 SeSecurityPrivilege Attributes -
09 0x000000009 SeTakeOwnershipPrivilege Attributes -
10 0x00000000a SeLoadDriverPrivilege Attributes -
11 0x00000000b SeSystemProfilePrivilege Attributes -
12 0x00000000c SeSystemtimePrivilege Attributes -
13 0x00000000d SeProfileSingleProcessPrivilege Attributes -
14 0x00000000e SeIncreaseBasePriorityPrivilege Attributes -
15 0x00000000f SeCreatePagefilePrivilege Attributes -
17 0x000000011 SeBackupPrivilege Attributes -
18 0x000000012 SeRestorePrivilege Attributes -
19 0x000000013 SeShutdownPrivilege Attributes -
20 0x000000014 SeDebugPrivilege Attributes -
22 0x000000016 SeSystemEnvironmentPrivilege Attributes -
23 0x000000017 SeChangeNotifyPrivilege Attributes - Enabled Default
24 0x000000018 SeRemoteShutdownPrivilege Attributes -
25 0x000000019 SeUndockPrivilege Attributes -
28 0x00000001c SeManageVolumePrivilege Attributes -
29 0x00000001d SeImpersonatePrivilege Attributes - Enabled Default
30 0x00000001e SeCreateGlobalPrivilege Attributes - Enabled Default
33 0x000000021 SeIncreaseWorkingSetPrivilege Attributes -
34 0x000000022 SeTimeZonePrivilege Attributes -
35 0x000000023 SeCreateSymbolicLinkPrivilege Attributes -
Authentication ID: (0,14e4c)
Impersonation Level: Anonymous
TokenType: Primary
Source: User32 TokenFlags: 0x2000 ( Token in use )
Token ID: d166b ParentToken ID: 0
Modified ID: (0, d052f)
RestrictedSidCount: 0 RestrictedSids: 00000000
OriginatingLogonSession: 3e7
...そして、これは通常「管理者として実行」で同じユーザーによって実行されるプロセスのACCESS_TOKENです。
TS Session ID: 0x1
User: S-1-5-21-2452432034-249115698-1235866470-1000 (no name mapped)
User Groups:
00 S-1-5-21-2452432034-249115698-1235866470-513 (no name mapped)
Attributes - Mandatory Default Enabled
01 S-1-1-0 (Well Known Group: localhost\Everyone)
Attributes - Mandatory Default Enabled
02 S-1-5-32-544 (Alias: BUILTIN\Administrators)
Attributes - Mandatory Default Enabled Owner
03 S-1-5-32-545 (Alias: BUILTIN\Users)
Attributes - Mandatory Default Enabled
04 S-1-5-4 (Well Known Group: NT AUTHORITY\INTERACTIVE)
Attributes - Mandatory Default Enabled
05 S-1-2-1 (Well Known Group: localhost\CONSOLE LOGON)
Attributes - Mandatory Default Enabled
06 S-1-5-11 (Well Known Group: NT AUTHORITY\Authenticated Users)
Attributes - Mandatory Default Enabled
07 S-1-5-15 (Well Known Group: NT AUTHORITY\This Organization)
Attributes - Mandatory Default Enabled
08 S-1-5-5-0-85516 (no name mapped)
Attributes - Mandatory Default Enabled LogonId
09 S-1-2-0 (Well Known Group: localhost\LOCAL)
Attributes - Mandatory Default Enabled
10 S-1-5-64-10 (Well Known Group: NT AUTHORITY\NTLM Authentication)
Attributes - Mandatory Default Enabled
11 S-1-16-12288 (Label: Mandatory Label\High Mandatory Level)
Attributes - GroupIntegrity GroupIntegrityEnabled
Primary Group: S-1-5-21-2452432034-249115698-1235866470-513 (no name mapped)
Privs:
05 0x000000005 SeIncreaseQuotaPrivilege Attributes -
08 0x000000008 SeSecurityPrivilege Attributes -
09 0x000000009 SeTakeOwnershipPrivilege Attributes -
10 0x00000000a SeLoadDriverPrivilege Attributes -
11 0x00000000b SeSystemProfilePrivilege Attributes -
12 0x00000000c SeSystemtimePrivilege Attributes -
13 0x00000000d SeProfileSingleProcessPrivilege Attributes -
14 0x00000000e SeIncreaseBasePriorityPrivilege Attributes -
15 0x00000000f SeCreatePagefilePrivilege Attributes -
17 0x000000011 SeBackupPrivilege Attributes -
18 0x000000012 SeRestorePrivilege Attributes -
19 0x000000013 SeShutdownPrivilege Attributes -
20 0x000000014 SeDebugPrivilege Attributes -
22 0x000000016 SeSystemEnvironmentPrivilege Attributes -
23 0x000000017 SeChangeNotifyPrivilege Attributes - Enabled Default
24 0x000000018 SeRemoteShutdownPrivilege Attributes -
25 0x000000019 SeUndockPrivilege Attributes -
28 0x00000001c SeManageVolumePrivilege Attributes -
29 0x00000001d SeImpersonatePrivilege Attributes - Enabled Default
30 0x00000001e SeCreateGlobalPrivilege Attributes - Enabled Default
33 0x000000021 SeIncreaseWorkingSetPrivilege Attributes -
34 0x000000022 SeTimeZonePrivilege Attributes -
35 0x000000023 SeCreateSymbolicLinkPrivilege Attributes -
Authentication ID: (0,14e4c)
Impersonation Level: Anonymous
TokenType: Primary
Source: User32 TokenFlags: 0x2000 ( Token in use )
Token ID: ce282 ParentToken ID: 0
Modified ID: (0, cddbd)
RestrictedSidCount: 0 RestrictedSids: 00000000
OriginatingLogonSession: 3e7
ご覧のとおり、唯一の違いはトークンIDです。
Token ID: d166b ParentToken ID: 0
Modified ID: (0, d052f)
対
Token ID: ce282 ParentToken ID: 0
Modified ID: (0, cddbd)
申し訳ありませんが、まだこれに多くの光を追加することはできませんが、私はまだ掘っている。
もう少し明確に... カーネルモードアクセスを持つソフトウェアプログラムは、コンピューターのすべてのデータとそのハードウェアに完全にアクセスできます。
Windows Vista以降、MicrosoftはすべてのI/Oプロセスがカーネル(リング0)に直接アクセスすることを二度と停止しています。最も近いのは、仮想カーネルアクセスパーティションとして作成されたフォルダーですが、技術的にはカーネル自体にはアクセスできません。カーネルは途中で会います。
これは、ソフトウェア自体が使用するトークンを決定するためです。したがって、Windows XPのようにカーネルとの通信を許可する代わりに、管理者アクセストークンを要求すると、毎回カーネルへのアクセスを許可するように求められます。 UACを変更するとプロンプトを減らすことができますが、カーネルプロンプトが表示されることはありません。
管理者としてログインした場合でも、所有する権限を昇格するように求められるまで、標準ユーザーとしてプロセスを実行しています。管理者が資格情報の入力からあなたを救うので、私はログインしたと思います。ただし、管理者ユーザーのフォルダー構造にも書き込みます。
カーネルアクセスは、Linuxのルートアクセスに似ています。パーミッションを上げると、C:\のルートと、そこに含まれる素敵な環境変数から隔離されます。
BSODを覚えている場合、これは、悪いI/Oがカーネルに到達したと考えたときにシャットダウンするOSでした。
Run as * Anythingコマンドを使用すると、runasコマンドを使用するユーザーとしてログアウトおよびログインする必要がなくなります。
プログラムがこの昇格された特権を要求する理由は、Black CombとPantherフォルダーから始まりました。管理プロンプトを使用しない限り、Windowsのカーネルへのアクセスは0であり、O/Sカーネルとの仮想関係にすぎません。
フーラ!
さて、もう一度繰り返しましょう...
実際の質問(そしてそれで素晴らしい質問)
「「管理者として実行」は、管理者グループのメンバーではないのに何をするのですか?」
(回答)1。ユーザーセッション中に管理者権限を呼び出すことができます。
注:質問は間違っています。 1つはコマンドで、もう1つはポリシーを適用するグループオブジェクトです。
コマンドプロンプトを開き、runas /?
。
これにより、runas
コマンドラインで使用できるすべてのスイッチが一覧表示されます。
管理者グループに関しては、これはGPEDITまたはSECPOLに基づいており、ドメイン管理者が存在するかどうか、またはネットワークが存在するかどうかに関係しません。
通常、これらのことは、管理者グループが影響を受けないコンピューターに制限を適用します。
質問は
Runas adminがユーザーとして実行しないのは何ですか?
OR
管理者グループは、カスタマイズされたユーザーグループができないことを何をしますか?
あなたはリンゴとオレンジを混ぜています。
Windows 7では、悪意のあるプログラムがあなたに悪いことをしないように、特定の特権を意図的に要求する必要があります。ダウンロードした無料の計算機を管理者として実行する必要がある場合は、何か問題があることがわかります。アプリケーションの特権を昇格させるOSコマンドがあります(ユーザーに確認を要求します)。
適切な説明は次の場所にあります。