連載
» 2009年05月08日 05時00分 公開

Tech TIPS:Windowsのサービスで使用される「System」「Local Service」「Network Service」アカウントとは?

プロセス一覧やアクセス権の設定画面で、しばしば「System」「Local Service」「Network Service」というアカウントを見かける。しかしユーザー/グループ・アカウントの一覧には表示されない。これらはサービスを起動するために用意された専用のビルトイン・アカウントで、権限などの違いがある。特殊なアカウントなのでアクセス権やパスワードの指定には注意が必要だ。

[島田広道,デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows 2000/Windows XP/Windows Server 2003


解説

 Windowsにログオンしてタスク・マネージャの[プロセス]タブを開くと、実行中のプロセス一覧が表示される。ここで[全ユーザーのプロセスを表示する]チェックボックスをオンにして[ユーザー名]列に注目すると、次の画面のように、ログオン中のユーザーとは異なるアカウント、すなわち「LOCAL SERVICE」「NETWORK SERVICE」「SYSTEM」によって複数のプロセスが実行されていることが分かる。

タスク・マネージャのプロセス一覧におけるユーザー名 タスク・マネージャのプロセス一覧におけるユーザー名
AdministratorアカウントでWindows XPにログオンし、タスク・マネージャを起動して[プロセス]タブを選択したところ。
  (1)ログオン中のAdministratorだけではなく、「LOCAL SERVICE」「NETWORK SERVICE」「SYSTEM」というアカウントでプロセスが実行中であることが分かる。

 特に「SYSTEM」というアカウントは、ファイル/フォルダのアクセス権の設定画面でよく見かける。たいていはAdministratorsグループと同じく、フル・コントロールの権限が割り当てられている。

アクセス権が設定されている「SYSTEM」アカウント アクセス権が設定されている「SYSTEM」アカウント
あるフォルダのプロパティの[セキュリティ]タブを開いたところ。OSがインストール時に設定したデフォルトのままである。
  (1)「SYSTEM」というアカウントが追加済み。
  (2)「SYSTEM」にはフル・コントロールの権限が割り当てられている。

 しかし、管理ツールの[コンピュータの管理]を開き、[システム ツール]−[ローカル ユーザーとグループ]以下にあるユーザー/グループ・アカウント一覧を見ても、これらのアカウントは見当たらない。実際、読者諸兄にはこうしたアカウントを作成した覚えがないはずだ。

●「SYSTEM」「LOCAL SERVICE」「NETWORK SERVICE」の正体

 前出のタスク・マネージャのプロセス一覧画面において、「SYSTEM」「LOCAL SERVICE」「NETWORK SERVICE」で実行されているプロセスは、Windowsの各種サービス・プログラムのプロセスか、あるいはサービスから起動された子プロセスが多数を占める。すなわち、サービスを起動するのに用いられているアカウントといえる。

  これらのアカウントは、Windows OSがサービスを起動するための専用アカウントとして提供しているものだ。アプリケーションなど通常のプログラムと異なり、サービスは特殊な権限を必要とすることが多いため、通常のユーザー・アカウントではなく、これらのサービス用アカウントがデフォルトでサービス起動に利用される。いずれもOSによってインストール時に自動作成されるビルトイン・アカウントだ。

名称 System
(Local System)
Local Service Network Service
名称(日本語) システム (ローカル システム) ローカル サービス ネットワーク サービス
アカウントの実際の名前 NT AUTHORITY\
System
NT AUTHORITY\
LocalService
NT AUTHORITY\
NetworkService
権限 Administratorsグループのメンバと同じレベル Usersグループのメンバと同じレベル Usersグループのメンバと同じレベル
ネットワーク・アクセス時の資格情報 ローカルのコンピュータ・アカウント(<コンピュータ名>$) 匿名 ローカルのコンピュータ・アカウント(<コンピュータ名>$)
プロファイルのパス Windows XP以降 %SystemRoot%\
system32\config\
systemprofile
%SystemDrive%\
Documents and Settings\
LocalService
%SystemDrive%\
Documents and Settings\
NetworkService
Windows 2000 %SystemDrive%\
Documents and Settings\
<コンピュータ名>$
パスワードの扱い 指定不要(管理しなくてよい) 指定不要(管理しなくてよい) 指定不要(管理しなくてよい)
3種類のサービス用アカウントの違い
Local ServiceとNetwork ServiceはWindows XPで新設された(Windows 2000にはない)。

 このうちWindows 2000に存在するのはSystemに限られる。Local ServiceとNetwork ServiceはWindows XPで新設され、これ以後のOSで利用できる。

■System(システムまたはローカル システム)アカウント
 SystemはAdministratorsグループのメンバと同等の権限を持つアカウントで、システムへのフル・アクセスが可能だ。ネットワーク・リソース(ネットワークを経由して利用するリソース)にも、ローカルのコンピュータ・アカウントの資格情報でアクセスできることから、Active Directoryのディレクトリ・サービスなどネットワーク系のサービスにも多用されている。ドメイン・コントローラ上でSystemによって起動されたサービスは、そのドメイン全体にアクセスできる。

 このようにSystemは強力な権限を持つため、攻撃者にサービスの脆弱性を突かれて乗っ取られた際、被害が甚大になりかねない。そこでWindows XPから、権限の制限されたサービス用アカウントとして次の2つが新設された。

■Local Service(ローカル サービス)アカウント
 Local ServiceはUsersグループのメンバと同じ権限しか持たないサービス用アカウントだ。ネットワーク・リソースへのアクセスも、特定アカウントではなく匿名の資格情報に制限される。デフォルトでは、ローカルとネットワークのどちらのリソースに対しても、Systemほど強力な権限を必要としないサービスで利用されている。

■Network Service(ネットワーク サービス)アカウント
 Local Serviceと同じく、Usersグループのメンバと同じ権限しか持たないサービス用アカウント。ただしネットワーク・リソースには、Systemと同じくローカルのコンピュータ・アカウントの資格情報でアクセスできることから、Systemほど強力な権限を必要としないネットワーク系サービスで利用されている。

●UIにおけるサービス用アカウント指定時の注意

 サービスを正常に実行するために、サービス用アカウントに権限を追加したり、サービスのログオン(実行)アカウントを変更したりする作業がしばしば必要となる。ところが特殊なビルトイン・アカウントのせいなのか、設定画面でサービス用アカウントを指定する際、アカウント名とパスワードについて戸惑うことがある。

■指定するアカウント名
 サービス用アカウントには前出の表のようにいくつかの名称があるが、「Local System」「LocalService」「NetworkService」といった名称だと、ユーザーの選択画面でエラーが生じる。指定すべきアカウント名は以下のとおりだ(大文字小文字の区別はない)。

  • Systemアカウント: 「SYSTEM」
  • Local Serviceアカウント: 「LOCAL SERVICE」
  • Network Serviceアカウント: 「NETWORK SERVICE」
ユーザーの選択画面で指定するアカウント名
アクセス権を割り当てる各サービス用アカウント名をセミコロンで区切って指定し、[名前の確認]ボタンをクリックして正式なアカウント名を表示させたところ。これらが指定すべきアカウント名となる。
  (1)ここがドメイン名の場合、(2)(4)で指定したサービス用アカウントが見つからないというエラーが発生する。その場合には事前に[場所]ボタンをクリックして、ローカルのコンピュータを指定しておく。
  (2)Systemアカウント。
  (3)Local Serviceアカウント。
  (4)Network Serviceアカウント。
  (5)これをクリックすると、存在する名前であるかどうか確認され、正しければ下線付きの文字表示になる。

■空パスワードを指定する
 サービス用アカウントに対して、管理者がパスワードを付けることはできない(管理する必要もない)。そのため、ログオン・アカウントの指定時、パスワード欄には何も指定できないので空にする。デフォルトでパスワード欄に「********」と表示されていたら、必ず削除すること。サービスのログオン・アカウント指定画面の例を以下に記す。

サービスのログオン・アカウント指定画面 サービスのログオン・アカウント指定画面
これは管理ツールの[サービス]を起動し、右ペインから対象のサービスを右クリックしてプロパティを選択し、[ログオン]タブを選んだところ。サービスの実行アカウントを指定できる。
  (1)Systemアカウントを指定するにはこれを選ぶ。
  (2)Local ServiceまたはNetwork Serviceを指定するには、まずこれを選ぶ。
  (3)(2)の選択後、これをクリックして表示されるユーザーの選択画面にて「LOCAL SERVICE」または「NETWORK SERVICE」のいずれかを指定する。
  (4)このように「********」が表示されていたら削除して空にする。

 なお、サービスのログオン・アカウントはむやみに変更しない方がよい。アカウントの持つアクセス権などが変わったのが原因でサービスがよく起動不能になるからだ。上記の例はどちらかというと、あるユーザー・アカウントでサービスを起動するように指定したものの失敗したため、元に戻す際に必要な手順といえる。

 特定のユーザー・アカウントでサービスを起動する方法については別の機会に説明する。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。