TL; DR:必要なときにだけルートとして物事を行います。sudo
これは非常に簡単です。ルートログインを有効にしても、このルールに従うことができますが、注意する必要があります。ルートログインを有効にすることは、正しく行われても実際には安全ではありませんが、を持っているのでルートログインを有効にする必要はありませんsudo
。
ここには2つの関連する質問があります。
- 日常のコンピューター使用(Webブラウジング、電子メール、ワードプロセッシング、ゲームなど)のためにrootとしてログインするのはなぜ悪いのですか?
- Ubuntuがデフォルトでrootログインを完全に無効にし
sudo
、polkitを使用して管理者がrootとして特定のコマンドを実行できるようにするのはなぜですか?
すべてを常にルートとして実行しないのはなぜですか?
他の答えのほとんどはこれをカバーしています。結果は次のとおりです。
- ルートパワーを必要としないタスクにルートパワーを使用し、意図しないことを実行してしまうと、システムを変更したり、望ましくない方法で危害を加えたりする可能性があります。
- rootとしてプログラムを実行する場合、あなたがする必要はありませんでした、とするとき、それは何かをしてしまい、それが何をするためにあなたが意味するものではありませんでした-セキュリティの脆弱性やその他のバグが原因たとえば、のために-それは、変更したり、危害ができあなたが望んでいない方法であなたのシステム。
ルートとして物事を行わなくても、あなたが害を及ぼす可能性があるのは事実です。たとえば、ルートとして実行せずに、通常はすべてのドキュメントが含まれる独自のホームディレクトリ内のすべてのファイルを削除できます。(うまくいけば、バックアップがあります。)
もちろん、ルートとして、これらの同じデータを誤って破壊する追加の方法があります。たとえばof=
、dd
コマンドに間違った引数を指定して、ファイルに生データを書き込むことができます(これにより、ファイルを単に削除する場合よりも回復しにくくなります)。
あなたがあなたのコンピューターを使用している唯一の人である場合、rootとしてのみ行うことができる害は、通常のユーザー特権で行うことができる害よりも実際には大きくないかもしれません。しかし、それでも、Ubuntuシステムを台無しにする追加の方法を含めるようにリスクを拡大する理由にはなりません。
非rootユーザーアカウントで実行すると、自分のコンピューターを制御できない場合、これはもちろん悪いトレードオフになります。しかし、そうではありません。実際にrootとしてアクションを実行したいときはいつでもsudo
、他のメソッドで実行できます。
rootとしてログインできるようにしませんか?
ルートとしてログインする機能は本質的に安全ではないという考えは神話です。一部のシステムでは、デフォルトでルートアカウントが有効になっています。他のシステムはsudo
デフォルトで使用され、一部は両方で構成されます。
rootアカウントが有効になっているシステムを持つことは、客観的に間違っていません。ただし、
- あなたはまだだけで、あなたが本当にする必要がある場合、それを使用、および
- アクセスを適切に制限します。
多くの場合、初心者はUbuntuでルートアカウントを有効にする方法を尋ねます。この情報を彼らから隠すべきではありませんが、通常、人々がこれを尋ねるとき、彼らは彼らがルートアカウントを有効にする必要があるという誤った印象の下にあるためです。実際、これはほとんど必要ないので、そのような質問に答えるとき、それを説明することが重要です。また、ルートアカウントを有効にすると、安心してルート権限を必要としないアクションをルートとして簡単に実行できるようになります。しかし、これは、rootアカウントを有効にすること自体が安全でないことを意味するものではありません。
sudo
ユーザーが必要な場合にのみrootとしてコマンドを実行することを奨励および支援します。コマンドをルートとして実行するにsudo
は、スペースを入力してからコマンドを入力します。これは非常に便利で、すべてのスキルレベルの多くのユーザーがこのアプローチを好みます。
要するに、あなたが持っているので、ルートログインを有効にする必要はありませんsudo
。ただし、それを必要とする管理タスクにのみ使用する限り、次の方法でのみ有効であり、rootとしてログオンすることもほぼ同じくらい安全です。
ただし、次の方法でrootとしてログオンすると、追加のセキュリティリスクが大幅に発生します。
グラフィカルに。グラフィカルにログインすると、多くのものが実行されてグラフィカルインターフェイスが提供され、そのインターフェイスを何でも使用するルートとしてさらに多くのアプリケーションを実行することになります。これは、root権限を本当に必要とするプログラムをrootとしてのみ実行するという原則に反します。これらのプログラムの一部には、セキュリティバグなどのバグが含まれている場合があります。
さらに、これを避けるにはセキュリティ上の理由があります。rootとしてグラフィカルにログインすることは十分にサポートされていません-loevborgが述べているように、デスクトップ環境とグラフィカルアプリの開発者は、rootとしてそれらをテストしないことがよくあります。たとえそうであっても、rootとしてグラフィカルデスクトップ環境にログインしても、ユーザーによる現実世界のアルファおよびベータテストは行われません(上記で説明したセキュリティ上の理由により)。
特定のグラフィカルアプリケーションをルートとして実行する必要がある場合は、またはを使用できますgksudo
sudo -H
。これは、実際にルートアカウントでグラフィカルにログオンした場合よりも、ルートとして実行するプログラムがはるかに少なくなります。
リモートで。root
アカウントが有効で何もすることができ、それが実質的にすべてのUnixライクなシステム上で同じ名前を持ちます。ssh
または他のリモートメカニズムを介してrootとしてログインするか、リモートサービスを設定して許可することで、自動化されたスクリプトやボットネットで実行されるマルウェアなどの侵入者がブルートフォース、辞書攻撃(および場合によってはいくつかのセキュリティバグ)。
間違いなくリスクは、あなただけ許可した場合に非常に高いものではないキーベースではなく、パスワードベースの rootのログイン。
Ubuntuのデフォルトでは、rootとしてのログインを有効にしても、グラフィカルルートログインもSSH経由のリモートログインも有効になっていません。つまり、rootログインを有効にしても、合理的に安全な方法でのみ有効になります。
- Ubuntuでsshサーバーを実行していて、変更していない
/etc/sshd/ssh_config
場合は、次の行が含まれますPermitRootLogin without-password
。これにより、パスワードベースのルートログインは無効になりますが、キーベースのログインは許可されます。ただし、デフォルトではキーは設定されていないため、設定していない限り機能しません。さらに、キーベースのリモートルートログインは、パスワードベースのリモートルートログインよりもはるかに悪くありません。これは、ブルートフォース攻撃や辞書攻撃のリスクを引き起こさないためです。
- デフォルトで保護されるはずですが、ルートアカウントを有効にする場合は、sshの設定を確認することをお勧めします。また、ftpなどのリモートログインを提供する他のサービスを実行している場合は、それらも確認する必要があります。
結論として:
- 必要な場合にのみ、ルートとして作業を行ってください。
sudo
必要なときにいつでもルートのフルパワーを提供しながら、それを行うのに役立ちます。
- rootがどのように機能し、それを使いすぎる危険性を理解していれば、rootアカウントを有効にすることは、セキュリティの観点からは本当に問題ありません。
- しかし、それを理解すれば、ルートアカウントを有効にする必要はほとんどないこともわかります。
ルートとの詳細についてsudo
はsudo
、ここで説明しなかった追加の利点を含め、UbuntuヘルプwikiのRootSudoを強くお勧めします。