ユーザーアカウント制御
読み:ユーザーアカウントせいぎょ
外語:UAC: User Account Control

 Windows Vistaから導入された、システムセキュリティ機能の一つ。略して「UAC」という。
目次

概要

由来
 Windows XPまでは、ユーザーはおおむね管理者ユーザー(Administrator権限)でWindowsを使っていた。UNIXで例えれば、常にrootでいるようなものである。
 しかし管理者ユーザーではあらゆる操作が可能であり、コンピューターウイルスワームトロイの木馬、あるいは操作ミス等により、不正なプログラムがインストールされたりする問題が相次いだ。
 そこで、Windowsを「一般ユーザー」で利用させよう、というものが、このユーザーアカウント制御(UAC)である。

問題
 但し、様々な技術的問題(特に、仮想化に関するもの)がある。
 ソフトウェアを作る側も使う側も、従来と同様に考えていると大きな損害を被ることになる。

特徴

確認
 Windows Vistaからは、たとえ管理者ユーザーとしてログインしても一般ユーザーと同程度の権限しか与えられない。システムを操作するような作業をする場合は、逐一ユーザー名とパスワードの入力か、または実行を許可するかどうかの確認が求められる。
 しかも、この確認ダイアログモーダルという概念を更に超え、そのダイアログ以外の一切の操作が出来なくなる。これはセキュリティのためだと説明されている。

いらいらさせるために作った
 CNET Japanの記事によれば、UACの設計担当責任者David Crossはサンフランシスコで開催されたRSA Conference 2008において、「VistaのUACはユーザーをいらいらさせるために搭載した。」と述べたとしている。
 システムセキュリティの低いアプリケーションは、使うたびに警告が出て鬱陶しいため、ユーザーはそのプログラムを使いたがらなくなる。これは、よりセキュリティの高いプログラムを書くようにするための圧力だ、としている。

異論
 この機能には効果がないとする異論もある。
 セキュリティ面では見かけ上危険な振る舞いであっても実際には無害であることが多い。多くのアプリケーションではそうであるが、UACはそれとは無関係に毎回警告を発する。ユーザーは、面倒なので警告を無視して許可するか、あるいは頭にきてUACを無効にするか、どちらかの行動を取るだろう、とする。

技術

仮想化
 UACが有効の場合、アプリケーションの設定その他、アプリケーションが書き出すファイルは、ユーザーごとに保存することを強要する。
 つまり、グローバルな場所へのファイル書き込みは拒絶される。
 具体的には、次のようなフォルダーやレジストリキーへの書き込みが出来ない。
 しかし、UACに対応していない従来のアプリケーションは頻繁にこれらの場所を読み書きしており、そのままでは従来のアプリケーションが利用できなくなる。
 そこで、ここに書き込みをしようとすると、一旦別の場所、具体的には「%LocalAppData%」(ユーザーのApplication Dataフォルダー)に内容が複写され、その複写に対して読み書きをする「仮想化」の機能が働くようになる。
 例えば、%ProgramFiles%は、「%LocalAppData%\VirtualStore\Program Files」にリダイレクトされ、実際のファイルはこのフォルダー以下に保存される。
 従来は、アプリケーションの実行フォルダーに情報を保存しておけば、フォルダーを丸ごと複写するだけで同じ設定が使えたり、バックアップも可能であった。しかしUAC環境では、フォルダーごとコピーでできると思ってると肝心なものが全くコピーされないという問題が生ずる。
 なお、仮想化されるのは32ビットのUAC未対応アプリケーションのみで、UAC対応アプリケーションや、64ビットアプリケーションでは、仮想化の機能は無効になる。

再検索