なぜルートとしてLinuxシステムにログインすべきでないのか
Linuxでは、ルートユーザーはWindowsの管理者ユーザーに相当します。しかし、Windowsでは長い間、一般ユーザーが管理者としてログインする文化がありましたが、Linuxではルートとしてログインすべきではありません。
マイクロソフトはUACを用いてWindowsのセキュリティ対策を改善しようとしました-Linuxでrootユーザーとしてログインすべきでないのと同じ理由で、WindowsでUACを無効にすべきではありません。
なぜUbuntuはsudoを使用するのか
ユーザーにrootとして実行することを思いとどまらせることは、Ubuntuがsuの代わりにsudoを使用する理由の一つです。デフォルトでは、Ubuntuではrootパスワードがロックされているため、一般ユーザーはrootアカウントを再有効化しない限り、rootとしてログインできません。
他のLinuxディストリビューションでは、歴史的にグラフィカルログイン画面からrootとしてログインし、rootデスクトップを取得することが可能でしたが、多くのアプリケーションは不満を言ったり(VLCのように)rootとして実行することを拒否したりする場合があります。Windowsから移行したユーザーは、Windows XPでAdministratorアカウントを使用するのと同じように、rootとしてログインすることを選ぶことがありました。
sudoを使用すると、特定のコマンド(sudoで接頭辞が付けられた)を実行して、ルート権限を取得します。suを使用すると、suコマンドを用いてルートシェルを取得し、その後、使用したいコマンドを実行して(できれば)ルートシェルから退出します。sudoはベストプラクティスを強制するのに役立ち、ルートで実行する必要があるコマンド(ソフトウェアのインストールコマンドなど)のみを実行し、ルートシェルに留まることなく、他のアプリケーションをルートとして実行することを避けることができます。
被害を制限する
自分のユーザーアカウントでログインすると、実行するプログラムはシステム全体への書き込みが制限され、ホームフォルダにのみ書き込むことができます。ルート権限を取得しない限り、システムファイルを変更することはできません。これにより、コンピュータのセキュリティが保たれます。たとえば、Firefoxブラウザにセキュリティホールがあった場合、ルートとして実行していると悪意のあるウェブページがシステム上のすべてのファイルに書き込んだり、他のユーザーアカウントのホームフォルダ内のファイルを読み取ったり、システムコマンドを妥協したものに置き換えたりできることになります。それに対して、制限されたユーザーアカウントでログインしている場合、悪意のあるウェブページはそのようなことはできず、あなたのホームフォルダ内でのみ被害を及ぼすことができます。これでも問題を引き起こす可能性がありますが、システム全体が侵害されるよりはずっと良いです。
これにより、悪意のあるアプリケーションや単純にバグのあるアプリケーションからあなたを保護することができます。例えば、アクセス可能なすべてのファイルを削除してしまうアプリケーションを実行した場合(おそらく厄介なバグが含まれている)、そのアプリケーションはあなたのホームフォルダーを消去してしまいます。これは悪いことですが、バックアップを取っていれば(もちろん取っているべきですが)、ホームフォルダー内のファイルを簡単に復元できます。しかし、アプリケーションがルートアクセスを持っていれば、ハードドライブ上のすべてのファイルを削除することができ、完全な再インストールが必要になります。
細かい権限
古いLinuxディストリビューションでは、全体のシステム管理プログラムがrootとして実行されていましたが、現代のLinuxデスクトップでは、アプリケーションが受け取る権限のより細かい制御のためにPolicyKitが使用されています。
例えば、ソフトウェア管理アプリケーションはPolicyKitを通じてシステムにソフトウェアをインストールするための権限のみが付与される可能性があります。プログラムのインターフェースは制限されたユーザーアカウントの権限で実行され、ソフトウェアをインストールする部分だけが昇格した権限を受け取ります。そして、そのプログラムの部分はソフトウェアをインストールすることのみができるのです。
そのプログラムはあなたのシステム全体への完全なルートアクセスを持たないため、アプリケーションにセキュリティホールが見つかった場合にあなたを保護することができます。PolicyKitはまた、制限されたユーザーアカウントが完全なルートアクセスを取得することなく、いくつかのシステム管理の変更を行うことを許可するため、手間を減らして制限されたユーザーアカウントで実行することが容易になります。
Linuxは、ルートとしてグラフィカルデスクトップにログインさせてくれます。これは、システムが実行中の間にハードドライブ上のすべてのファイルを削除したり、無作為のノイズをハードドライブに直接書き込んでファイルシステムを消去したりすることを許可するのと同じです。しかし、それは良い考えではありません。たとえ自分が何をしているかを知っていても、システムはルートとして実行されるようには設計されていません。あなたは、Linuxが非常に安全である理由の多くのセキュリティアーキテクチャを回避しているのです。




