Linuxにおける「ルート」とは何ですか?
ルートユーザーは、良かれ悪かれ無限の権限を持つLinuxの宇宙で最も強力な存在です。ユーザーを作成しますか?了解です。ファイルシステムを消去しますか?おっと、それもできます。
起源の物語
ルートユーザーはLinuxのスーパーユーザーです。彼らは文字通り何でもできます。rootには制限や禁じられたことはありません。彼らがスーパーヒーローかスーパービランかは、システム管理者の役割を担う人間のユーザーによります。ルートユーザーによるミスは壊滅的な結果を招く可能性があるため、ルートアカウントは管理目的にのみ使用すべきです。
ルートユーザーの概念はUnixから引き継がれました。Unixには管理者のスーパーユーザーとしてのルートユーザーが存在しました。しかし、「ルート」という名前の由来は確かなことは分かっていません。ある人々は、この名前がUnixの前にあったMulticsオペレーティングシステムから来たのではないかと考えています。
ケン・トンプソンとデニス・リッチー、Unixの最も重要な設計者であり著者の二人は、以前Multicsで働いていました。Multicsには、ルートディレクトリまたは「/」と呼ばれるポイントから始まるファイルシステムがあり、他のすべてのディレクトリとサブディレクトリは、ルートから逆さまの木のように下方に広がっていました。これはUnixが採用したのと同じような木構造です。だから、UnixもMulticsからルートユーザーを採用したのかもしれませんね?
Multicsの技術文書を検索すると、ルート論理ボリューム、ルート物理ボリューム、ルートカード、およびルートディレクトリに関する多数の言及が見つかります。しかし、ルートユーザーアカウントや「root」と呼ばれるユーザーについての言及はありません。
別の理論は、Unixの初期の頃、スーパーユーザーのホームフォルダがファイルシステムのルートである「/」だったというものです。スーパーユーザーには名前が必要でした。「root user」という用語が正式な名前の代わりに使われていましたが、その用語が定着し、公式な名称となりました。
それはより可能性が高いようですが、ルートユーザーがどのようにその名前を得たのかを確実に言える人はいないようです。
sudoコマンド
どのオペレーティングシステムでも、スーパーユーザーは管理目的のみに予約し、その他の時間は通常のユーザーアカウントを使用するのがベストプラクティスです。実際、ほとんどの最新のLinuxディストリビューションでは、rootユーザーとしてログインすることはできません。
もちろん、これはLinuxなので、rootユーザーのログインを許可するように設定できます。しかし、rootとしてログインしている時間が短ければ短いほど良いです。タイプミスによる災害から自分を守るだけでなく、rootとしてログインできなければ、他の誰もログインできません。あなたのシステムに不正アクセスした誰もがrootとしてログインできないため、彼らができる被害を制限できます。
ただし、rootとしてのログインが無効にされている場合、Linuxコンピュータをどのように管理しますか?それがsudoコマンドの目的です。rootユーザーとしてのログインは必要ありません。これは一時的にrootの権限をあなたに授けます。まるで、トールのハンマー・ミョルニルを拾い、トールの力を一時的に授かるようなものです。しかし、あなたがそのハンマーを持ち上げることができるのは、あなたが価値のある者である場合のみです。同様に、sudoコマンドを使用できるのは誰でもではありません。sudoコマンドは、あなたが価値のある者と見なされ、sudoersリストに追加された場合のみ、rootの権限をあなたに授けます。
sudoと似たようなコマンドにsuがあります。sudoでは、自分のパスワードを使って認証しますが、suでは、rootユーザーのパスワードを使って認証します。これは二つの点で重要です。まず第一に、suを使用するには、rootユーザーにパスワードを割り当てる必要があります。デフォルトでは、rootユーザーにはパスワードが設定されていないため、これがセキュリティに役立ちます。もしrootにパスワードが無ければ、rootとしてログインすることはできません。
次に、ルートパスワードを設定する場合、suコマンドを使用するすべての人がそのパスワードを知っている必要があります。そして、パスワードの共有はセキュリティの観点から好ましくなく、ルートパスワードについてはさらにそうです。ルートパスワードを知っている人は誰でも他の人にそのパスワードを教えることができます。ルートパスワードを変更する必要がある場合、新しいパスワードを知っておく必要があるすべての人に伝える必要があります。
sudoを使用できる人を制限するためにsudoersリストを使用する方がはるかに安全であり、特権を持つ各人が自分の個別のパスワードを使用して認証を行うことを許可します。
sudoを使用する
"/etc/shadow" ファイルには、Linux コンピュータ上の各アカウントのユーザー名や、各アカウントの暗号化されたパスワード、最後にパスワードが変更された日時、パスワードの有効期限などのその他の情報が含まれています。そのため、機密情報を含むため、root のみが読み取ることができます。
シャドウファイルの行、単語、文字を読み取るために
wc /etc/shadow私たちがsudoersリストにいる場合、行の先頭にsudoを付けて同じコマンドを使用すると、パスワードを求められ、コマンドが私たちのために実行されます。もしあなたがLinuxコンピュータの唯一のユーザーであれば、システムがインストールされると自動的にsudoersリストに追加されます。
sudo wc /etc/shadow私たちがrootとしてコマンドを実行しているため、wcコマンドが実行されます。誰もrootに反対することはありません。
sudo コマンドは「スーパーユーザー do」を意味していました。それは、任意のユーザーとしてコマンドを実行できるように強化され、「代わりのユーザー do」に名前が変更されました。このコマンドは、他のユーザーが実行したかのように実行されます。ユーザー名を指定しない場合、sudo はデフォルトで root を使用します。異なるユーザーを使用したい場合は、-u(ユーザー)オプションを使用してください。
コマンドが別のユーザーとして実行されていることは、whoamiコマンドを使用することで確認できます。
whoamisudo whoamisudo -u mary whoamisuを使用せずにrootとして実行する
sudoの欠点は、すべてのコマンドの最初に「sudo」を使用しなければならないことです。1つまたは2つのコマンドを入力するだけであれば大したことではありませんが、実行するコマンドが長くなると面倒に感じることがあります。それは面倒かもしれませんが、rootの権限に対する便利なセーフティキャッチとして機能しますし、毎回意識的に安全装置を外さなければなりません。
パスワードを必要とせず、suを使用しないで、rootとして効果的に「ログイン」する方法があります。
この方法を使用する際は注意してください。あなたが出すすべてのコマンドは何の疑問もなく幸福に実行されます---たとえそれが破壊的であっても。
Bashシェルを実行するためにsudoを使用すると、新しいシェルがrootユーザーとして開かれます。
sudo bashコマンドプロンプトが変わることに注意してください。プロンプトの最後の文字は、ドル記号「$」の代わりにハッシュ「#」になっています。
コマンドプロンプトのボディの表示は、ディストリビューションによって異なります。Ubuntuでは、ユーザーがrootであることを知らせられ、コンピュータの名前と現在の作業ディレクトリが表示されます。また、プロンプトの色も変更されます。
私たちはrootであるため、通常はsudoの使用を必要とするコマンドを実行できます。
wc /etc/shadowルートユーザーのシェルを終了するには、「Ctrl+D」を押すか、「exit」と入力して「Enter」を押してください。
exitスーパーマンより、クラーク・ケントをもっと
sudoersリストにいる場合、あなたはLinuxシステムに対するスーパー能力を持っています。ただし、スーパーマンは赤いマントを着ている時間よりも、穏やかな別の自分として過ごす時間が多いことを忘れないでください。
可能な限り通常のユーザーアカウントを使用してください。本当に必要なときだけrootに変更してください。






