ホームページ  >  記事  >  システムチュートリアル  >  非常に多くの人が、Linux における root と sudo の使用法と違いについて混乱しています。

非常に多くの人が、Linux における root と sudo の使用法と違いについて混乱しています。

PHPz
PHPz転載
2024-02-10 14:18:231263ブラウズ

Linux システムには、誰もがよく知っている 2 つの概念があります。1 つは sudo コマンドで、もう 1 つは root アカウントです。 sudo コマンドを使用すると、最高の権限でコマンドを実行できます。root アカウントでは、すべてのコマンドに最高の権限が与えられます。これは、デフォルトで sudo が追加されたすべてのコマンドと同等です。

Linux 中 root 与 sudo 的用法与区别,居然这么多人搞不清楚!

それでは、sudo と root の違いは何でしょうか? root アカウントを直接使用する代わりに sudo を使用することをお勧めするのはなぜですか?このチュートリアルでは、root アクセス、sudo コマンド、sudo を使用してコマンドを実行する方法、sudo アクセスと root の違いについて学びます。

ルートとは何ですか?

root は、Linux などの Unix 系システムのスーパーユーザー アカウントを指します。これは、システム管理に使用されるシステム上で最高のアクセス権を持つ特権アカウントです。この root/スーパーユーザー アカウントのユーザー識別子 (UID) は、アカウント名に関係なくゼロです。

root ユーザーは、システム全体に対する完全な権限 (root 権限) を持ちます。システムのコア部分の変更、システムのアップグレード、システム構成の変更、実行中のすべてのシステム サービスの開始、停止、再起動などを行うことができます。

root としてログインすると (su - を使用)、ターミナルのコマンド プロンプトの記号が

に変わります。 リーリー ###なる### リーリー

一部のシステム (Ubuntu など) では、root ユーザーはデフォルトでロックされています。 (注: Bricklayer はロックされませんが、Tencent Cloud はデフォルトでロックします)。

須藤とは何ですか?

sudo

(スーパーユーザー do) コマンドは、ユーザーが root または他のユーザーとしてコマンドを実行できるようにする コマンド ライン ユーティリティ です。これは、特定のシステム コマンドを使用したり、root ユーザーとしてスクリプトを実行したりするための適切な権限を特定のユーザーに付与する効率的な方法を提供します。 sudo は su コマンドに似ていますが、デフォルトで認証に su が必要とする対象ユーザーのパスワードではなく、ユーザーのパスワードを必要とする点が異なります。また、Sudo は root シェルを生成しません。代わりに、root シェルを生成する su とは異なり、昇格された特権でプログラムまたはコマンドを実行します。

sudo を使用すると、システム管理者は次の操作を実行できます:

ユーザーまたはユーザーのグループに、昇格された権限または root 権限で特定のコマンドを実行する権限を付与します。
  • sudo を使用して各ユーザーのユーザー ID のログを表示します。
  • ユーザーがホスト システムで使用できるコマンドを制御します。
  • Sudo は、実行されたすべてのコマンドとパラメーターを /var/log/auth.log ファイルに記録します。これは、障害が発生した場合に分析できます。

sudoers ファイル

sudo はデフォルトの sudoers セキュリティ ポリシーを使用し、特別な設定ファイル /etc/sudoers を維持します。このファイルを使用して、アクセス許可とパスワード プロンプトのタイムアウトを制御できます。

注: sudoers ファイルを表示するには、昇格されたアクセス許可が必要です

/etc/sudoers ファイルを開きます。ファイルは次のようになります:

リーリー

この行:

リーリー

は、root ユーザーが無制限の権限を持ち、システム上で任意のコマンドを実行できることを意味します。

リーリー

グループ sudo のすべてのメンバーに任意のコマンドの実行を許可します。

: sudoers ファイル内の「%」は、コメントではなくグループを表します。 /etc/sudoers ファイルの最初の行からわかるように:

リーリー

sudoers ファイルを直接編集しないでください。 root 権限で visudo コマンドを使用します。

sudo を使用してコマンドを実行するのは非常に簡単です。コマンドの前に sudo を追加するだけです。

リーリー

通常、パスワードの入力を求められるので、パスワードを入力して Enter を押します。

$ sudo command
[sudo]  password for user:

Sudo 对比 Root

最小权限原则是一种信息和计算机安全概念,它认为授予程序和用户执行任务所需的最少或最低限度的权限。

以 root 用户登录后,输入到终端的每一条命令都以系统最高权限运行,违反了最小权限原则。像 rm 这样的简单命令可用于删除核心根目录或文件,而不会在意外时提示用户。例如,如果您尝试使用以下命令删除 /etc 之类的根目录:

$ rm -rf /etc

当您以普通用户身份登录时,您将被拒绝许可。当以 root 身份登录时,不会显示任何提示,并且整个文件夹将被删除 – 这很可能会破坏您的系统,因为运行系统所需的特殊配置文件存储在 /etc 目录中。您也可能最终错误地格式化磁盘,并且系统不会提示您。

此缺陷还扩展到以 root 身份运行代码或应用程序;应用程序中的一个小错误可能会删除一些系统文件,因为该应用程序是在最高权限下运行的。

Sudo 提供细粒度的访问控制。它仅向需要它的特定程序授予提升的权限。您知道哪个程序以提升的权限运行,而不是使用 root shell(以 root 权限运行每个命令)。

Sudo 也可以配置为以另一个用户身份运行命令,指定允许哪些用户和组使用 sudo 运行命令,或者通过编辑 sudoers 文件设置以 root 权限运行程序的超时。

因此,不建议使用 root shell 运行命令,因为您破坏系统的机会要高得多。如果您需要更高权限或 root 权限来运行命令,请使用 sudo 确保只有该命令以 root 权限运行。

以上が非常に多くの人が、Linux における root と sudo の使用法と違いについて混乱しています。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlxlinux.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。