web-dev-qa-db-ja.com

「管理者として実行」とは正確には何ですか?

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"

60

Windowsにログオンすると、アクセストークンが作成されます。これは、あなた、あなたがメンバーであるグループ、あなたの特権を識別します。また、ユーザーが管理者であるかどうかは、ユーザーが管理者グループのメンバーであるかどうかによって決まります。

UACを使用しない場合、プログラムを実行するとアクセストークンのコピーが取得され、プログラムがアクセスできるものが制御されます。

UACでは、プログラムを実行すると、制限付きアクセストークンが取得されます。これは、グループのリストから「管理者」が削除された(およびその他の変更)元のアクセストークンです。ユーザーが管理者グループのメンバーであっても、プログラムは管理者権限を使用できません。

「管理者として実行」を選択し、ユーザーが管理者である場合、プログラムは元の無制限のアクセストークンで起動されます。ユーザーが管理者でない場合は、管理者アカウントの入力を求められ、そのアカウントでプログラムが実行されます。

100
arx

だから...結果をもっと掘り下げてください。通常のプロセスを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

10
Andrei

[〜#〜] update [〜#〜]

「Run as Aministrator」は単なるコマンドであり、UACアラートを表示せずに、プログラムが管理者特権を必要とする一部の操作を続行できるようにします。

ユーザーが管理者グループのメンバーであっても、システムファイルの編集などの特別な操作を行っている場合、アプリケーションは安全ではないと見なされるため、実行中のアプリケーションには管理者権限が必要です。これが、Windowsがアプリケーションを実行するために管理者特権を必要とし、UACアラートで通知する理由です。すべてのアプリケーションを実行するためにAmnistratorアカウントが必要なわけではなく、一部のアプリケーションは、管理者権限が必要です。

「管理者として実行」コマンドを使用してアプリケーションを実行すると、アプリケーションが安全であることをシステムに通知し、管理者権限が必要なことを確認して実行します。

これを避けたい場合は、コントロールパネルでUACを無効にしてください。

さらに詳しく知りたい場合は、Microsoftフォーラムの質問 「管理者として実行」とWindows 7管理者グループの違い または this スーパーユーザーの質問。

1
Alberto Solano

「特権の昇格」、「制限付きアクセストークン」、「管理者特権」など...とにかく管理者特権とは何ですか?ナンセンスです。

以下は、通常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)

申し訳ありませんが、まだこれに多くの光を追加することはできませんが、私はまだ掘っている。

1
Andrei

もう少し明確に... カーネルモードアクセスを持つソフトウェアプログラムは、コンピューターのすべてのデータとそのハードウェアに完全にアクセスできます。

Windows Vista以降、MicrosoftはすべてのI/Oプロセスがカーネル(リング0)に直接アクセスすることを二度と停止しています。最も近いのは、仮想カーネルアクセスパーティションとして作成されたフォルダーですが、技術的にはカーネル自体にはアクセスできません。カーネルは途中で会います。

これは、ソフトウェア自体が使用するトークンを決定するためです。したがって、Windows XPのようにカーネルとの通信を許可する代わりに、管理者アクセストークンを要求すると、毎回カーネルへのアクセスを許可するように求められます。 UACを変更するとプロンプトを減らすことができますが、カーネルプロンプトが表示されることはありません。

管理者としてログインした場合でも、所有する権限を昇格するように求められるまで、標準ユーザーとしてプロセスを実行しています。管理者が資格情報の入力からあなたを救うので、私はログインしたと思います。ただし、管理者ユーザーのフォルダー構造にも書き込みます。

カーネルアクセスは、Linuxのルートアクセスに似ています。パーミッションを上げると、C:\のルートと、そこに含まれる素敵な環境変数から隔離されます。

BSODを覚えている場合、これは、悪いI/Oがカーネルに到達したと考えたときにシャットダウンするOSでした。

0
user5244305

Run as * Anythingコマンドを使用すると、runasコマンドを使用するユーザーとしてログアウトおよびログインする必要がなくなります。

プログラムがこの昇格された特権を要求する理由は、Black CombとPantherフォルダーから始まりました。管理プロンプトを使用しない限り、Windowsのカーネルへのアクセスは0であり、O/Sカーネルとの仮想関係にすぎません。

フーラ!

0
user5244305

さて、もう一度繰り返しましょう...

実際の質問(そしてそれで素晴らしい質問)

「管理者として実行」は、管理者グループのメンバーではないのに何をするのですか?

(回答)1。ユーザーセッション中に管理者権限を呼び出すことができます。

注:質問は間違っています。 1つはコマンドで、もう1つはポリシーを適用するグループオブジェクトです。

コマンドプロンプトを開き、runas /?

これにより、runasコマンドラインで使用できるすべてのスイッチが一覧表示されます。

管理者グループに関しては、これはGPEDITまたはSECPOLに基づいており、ドメイン管理者が存在するかどうか、またはネットワークが存在するかどうかに関係しません。

通常、これらのことは、管理者グループが影響を受けないコンピューターに制限を適用します。

質問は

Runas adminがユーザーとして実行しないのは何ですか?

OR

管理者グループは、カスタマイズされたユーザーグループができないことを何をしますか?

あなたはリンゴとオレンジを混ぜています。

0
user5244305

Windows 7では、悪意のあるプログラムがあなたに悪いことをしないように、特定の特権を意図的に要求する必要があります。ダウンロードした無料の計算機を管理者として実行する必要がある場合は、何か問題があることがわかります。アプリケーションの特権を昇格させるOSコマンドがあります(ユーザーに確認を要求します)。

適切な説明は次の場所にあります。

http://msdn.Microsoft.com/en-us/magazine/cc163486.aspx#S4

0
vextorspace