ルートは誰ですか?なぜルートが存在するのですか?


Linuxに root という名前の特別なアカウントがあるのはなぜだろうと思ったことはありませんか?このアカウントを使用するための推奨されるベストプラクティスを知っていますか?使用する必要があるシナリオと使用しないシナリオを知っていますか?これらの質問の1つ以上に「はい」と答えた場合は、読み続けてください。

この投稿では、手元に置いておきたいrootアカウントに関する情報を参照して提供します。

ルートとは何ですか?

まず、Unixライクなオペレーティングシステムのディレクトリの階層は、ツリーライクな構造として設計されていることに注意してください。開始点は、スラッシュ(/)で表される特別なディレクトリであり、他のすべてのディレクトリは最初はそこから分岐しています。これは実際のツリーに類似しているため、/はルートディレクトリと呼ばれます。

次の画像では、次の出力を確認できます。

$ tree -d / | less

これは、ツリーの/ root の類似性を示しています。

rootアカウントに名前を付ける理由は明確ではありませんが、/内に書き込み権限を持つ唯一のアカウントがrootであることが原因である可能性があります。

さらに、rootはUnixライクなオペレーティングシステムのすべてのファイルとコマンドにアクセスでき、そのためスーパーユーザーと呼ばれることがよくあります。

ちなみに、ルートディレクトリ(/)は、rootユーザーのホームディレクトリである/root と混同しないでください。実際、/root /のサブディレクトリです。

ルート権限へのアクセスの取得

ルート(またはスーパーユーザー)権限について話すときは、そのようなアカウントがシステムに対して持っている権限を指します。これらの特権には、システムを変更したり、他のユーザーにそのリソースへの特定のアクセス許可を付与したりする機能が含まれます(ただし、これらに限定されません)。

この電源の無謀な使用は、せいぜいシステムの破損につながり、最悪の場合は完全な障害につながる可能性があります。そのため、rootアカウントの権限へのアクセスに関しては、次のガイドラインがベストプラクティスとして受け入れられています。

最初に、rootアカウントを使用してvisudoを実行します。そのコマンドを使用して/ etc/sudoersを編集し、特定のアカウント(スーパーバイザーなど)に必要な最小限のスーパーユーザー権限を付与します。

これには、たとえば、ユーザーアカウントを作成(adduser)および変更(usermod)する機能が含まれる場合がありますが、それ以外は含まれません。

今後は、スーパーバイザーとしてログインし、sudoを使用してユーザー管理タスクを実行します。スーパーユーザーのアクセス許可を必要とする他のタスク(パッケージの削除など)を実行しようとすると失敗することに気付くでしょう。

必要に応じて上記の2つの手順を繰り返し、完了したら、exitコマンドを使用して、非特権アカウントにすぐに戻ります。

この時点で、スーパーユーザー権限を必要とする定期的にポップアップする他のタスクはありますか?その場合は、特定のアカウントまたはグループのいずれかに/ etc/sudoersで必要なアクセス許可を付与し、可能な限りrootアカウントの使用を避け続けます。

この投稿は、Unixライクなオペレーティングシステムでrootアカウントを適切に使用するためのリファレンスとして役立ちます。ブックマークに追加して、何度でも返品してください。

いつものように、この記事について質問や提案がある場合は、下のコメントフォームを使用してメモを送ってください。返信お待ちしています!