
コンピュータの世界では、スーパーユーザーとはシステム管理に使用される特別なユーザーアカウントのことです。オペレーティングシステム(OS)によって、このアカウントの実際の名前はroot、administrator、admin 、またはsupervisorなどになります。最小権限の原則では、スーパーユーザーアカウントはシステム全体に無制限かつ潜在的に悪影響を及ぼす変更を行うことができるため、ほとんどのユーザーとアプリケーションは通常のユーザーアカウントで作業を行うことが推奨されています。
場合によっては、アカウントの実際の名前によってユーザーがスーパーユーザーであるかどうかが決まります。他の場合では、アカウントの名前は決定要因ではありません。たとえば、Unix ライクなシステムでは、ユーザー識別子(UID) がゼロのユーザーがスーパーユーザーです (つまり、uid=0)。アカウントの名前に関係なく。[ 1 ]また、ロールベースのセキュリティモデルを実装しているシステムでは、スーパーユーザーの役割を持つユーザーは、スーパーユーザー アカウントのすべてのアクションを実行できます。
Unix ライクなコンピュータ OS ( Linuxなど)では、 root は、すべてのモード (シングル ユーザーまたはマルチ ユーザー) で (すべてのファイルとプログラムに対して) すべての権限または許可を持つユーザーの慣習的な名前です。別の名前には、BeOSのbaronや一部の Unix の派生版のavatar などがあります。 [ 2 ] BSD では、root アカウントに加えて、toor (「root」を逆から書いたもの) アカウントがよく提供されます。 [ 3 ]名前に関係なく、スーパーユーザーのユーザー IDは常に 0 です。root ユーザーは、ファイルの所有権の変更や1024 未満の番号のネットワークポートへのバインドなど、通常のユーザーにはできない多くのことができます。
rootという名前は、root がUnix システムのroot ディレクトリを変更する権限を持つ唯一のユーザー アカウントであることに由来している可能性があります。このディレクトリは元々 root のホーム ディレクトリと考えられていましたが、[ 4 ] UNIXファイルシステム階層標準では、root のホームは/rootにあることが推奨されています。[ 5 ] Unix ライクなシステムで最初に起動されるプロセスは、通常initと呼ばれ、root 権限で実行されます。これは、直接または間接的に他のすべてのプロセスを生成し、それらのプロセスは親の権限を継承します。root として実行されているプロセスのみが、ユーザー ID を他のユーザーのものに変更することが許可されています。一度変更すると、元に戻すことはできません。これを行うことは、root 権限の放棄と呼ばれることもあり、プロセスの汚染の可能性による損害を制限するためのセキュリティ対策として行われることがよくあります。もう 1 つの例は、ログインや、ユーザーに資格情報を要求し、認証が成功した場合にアカウントの権限でプログラムを実行できるようにする他のプログラムです。
root を通常のユーザー アカウントとして使用することは推奨されないことが多い。[ 6 ] [ 7 ]コマンドを入力する際の単純なタイプミスでも、システムに重大な損害を与える可能性があるためである。代わりに、通常のユーザー アカウントを使用し、su (substitute user) コマンドまたはsudo (substitute user do ) コマンドを使用する必要がある。su方式では、ユーザーが root パスワードを知っている必要があるが、sudo方式では、 /etc/sudoersファイル内でユーザーが「root として」実行できる権限を持つように設定されている必要がある。これは通常、 wheel [ 8 ] adm [ 9 ] adminまたはsudoグループのメンバーになることで間接的に実現される。
いくつかの理由から、現在では一般的にsudo方式が好まれています。例えば、誰がコマンドを使用したか、どのような管理操作を行ったかの監査証跡が残ります。 [ 10 ]
macOSや一部のLinuxディストリビューション (特にUbuntu [ 6 ] )などの OS では、最初に作成されたユーザーにsudoを介して root として実行する権限が自動的に付与されますが、これは管理操作を行う前にパスワードを要求するように構成されています。場合によっては、実際のrootアカウントはデフォルトで無効になっているため、直接使用することはできません。[ 6 ] Apple iOSやAndroidなどのモバイル プラットフォーム向け OS では、スーパー ユーザー アクセスは設計上アクセスできませんが、一般的にはセキュリティ システムを悪用して取得することができます。Plan 9などの一部のシステムでは、スーパー ユーザーは全く存在しません。[ 11 ]
Windows NTおよびそれ以降の派生システム ( Windows 2000、Windows XP、Windows Server 2003、Windows Vista / 7 / 8 / 10 / 11など)では、少なくとも 1 つの管理者アカウント (Windows XP 以前) またはスーパーユーザーに権限を昇格できるアカウント (Windows Vista / 7 / 8 / 10 / 11 ではユーザー アカウント制御経由) が必要です。[ 12 ] Windows XP 以前のシステムでは、管理者と同等のユーザー アカウントが存在する場合、組み込みの管理者アカウントが非表示になります。[ 13 ]この組み込みの管理者アカウントは、パスワードが空白で作成されます。[ 13 ]パスワードが空白のままの場合、ローカル ユーザーが組み込みの管理者アカウントを介してコンピュータにアクセスできるため、セキュリティ リスクが発生します。そのため、ユーザー アカウント制御 (UAC) の導入により、Windows Vista 以降のシステムでは、このアカウントはデフォルトで無効になっています。[ 13 ]リモート ユーザーは、組み込みの管理者アカウントにアクセスできません。
Windows の管理者アカウントは、 Unix のroot アカウントと完全に一致するものではありません。組み込みの管理者アカウントである Administrator と、ユーザー管理者アカウントは同じレベルの権限を持ちます。Windows システムで作成されるデフォルトのユーザーアカウントは、管理者アカウントです。macOS、Linux、および Windows Vista/7/8/10 の管理者アカウントとは異なり、UAC のない Windows システムの管理者アカウントは、完全な root アクセスに伴うほとんどの落とし穴からシステムを保護しません。これらの落とし穴の 1 つは、マルウェア感染に対する耐性の低下です。これを回避し、UAC のない Windows システムで最適なシステムセキュリティを維持するには、組み込みの管理者アカウントに設定されたパスワード、または別の管理者アカウントを使用して、必要に応じて標準ユーザーアカウントから認証することをお勧めします。
Windows Vista/7/8/10/11 の管理者アカウントでは、昇格された権限でプロセスを実行する際に認証を求めるプロンプトが表示されます。通常、管理者アカウントでは UAC プロンプトの認証にユーザー資格情報は不要ですが、標準ユーザーアカウントでは、UAC プロンプトの認証に管理者のユーザー名とパスワードの入力が必要です。Windows XP (およびそれ以前のシステム) の管理者アカウントでは、昇格された権限でプロセスを実行する際に認証は不要です。これがセキュリティ上のリスクとなり、UAC の開発につながりました。ユーザーは、プロセスを「管理者として実行」に設定するか、runasコマンドを使用して管理者アカウントの資格情報 (ユーザー名とパスワード) でプロンプトを認証することにより、標準アカウントから昇格された権限でプロセスを実行するように設定できます。使用する管理者アカウントの資格情報にパスワードが設定されていない場合 (Windows XP およびそれ以前のシステムの組み込み管理者アカウントの場合)、標準アカウントから認証するメリットの多くが失われるため、組み込み管理者アカウントにパスワードを設定することをお勧めします。管理者権限があっても、一部のシステムファイルは、 Linuxのrootユーザーに相当するSYSTEMやNT Service/TrustedInstallerといった、さらに高い権限を持つシステムアカウントによって保護されています。
Windows NT 2000以降では、rootユーザーはAdministratorアカウントです。[ 14 ]
Novell NetWareでは、スーパーユーザーは「supervisor」[ 15 ]と呼ばれ、後に「admin」となった。
OpenVMSでは、「SYSTEM」はOSのスーパーユーザーアカウントです。
1970年代から1980年代にかけてのほとんどのパーソナルコンピュータでは、システムを使用するすべてのユーザーが完全な権限を持ち、ユーザーアカウントという概念は存在しませんでした。Windows 95では複数のアカウントが使用可能になり、それぞれが独自の環境設定プロファイルを持つことができます。各ユーザーは依然としてコンピュータに対する完全な管理者権限を持っています。
{{citation}}: CS1 maint: 数値名: 著者リスト (リンク)