【Linux】命令 - su/sudo

Posted by 西维蜀黍 on 2021-02-18, Last Modified on 2024-08-28

sudo(Superuser Do)

  • 功能: sudo 允许用户以另一个用户(通常是超级用户 root)的权限来执行单个命令。sudo 是一个临时授权工具,它不需要用户知道 root 的密码,而是使用当前用户的密码来进行身份验证。
  • 用途: sudo 主要用于执行需要管理员权限的单个命令。例如,系统管理员可以为特定用户授予使用 sudo 的权限,使他们能够在不直接访问 root 账户的情况下执行特定的管理任务。

优点:

  • 通过 sudo,系统管理员可以更细粒度地控制哪些用户可以执行哪些命令。
  • 提升权限仅限于当前执行的命令,减少了系统安全风险。

su(Substitute User or Switch User)

  • 功能: su 命令允许你切换到另一个用户的身份。通常不带参数的 su 命令会切换到 root 用户身份,要求你输入 root 用户的密码。

  • 用途: su 主要用于切换用户身份后,以该用户的权限执行命令或打开一个新的 shell 会话。与 sudo 不同的是,su 切换的是整个用户身份,而不仅仅是执行单个命令。

  • su - 的作用: 使用 su - 选项时,会加载目标用户的环境变量,使得你完全切换到该用户的环境。

  • 优点:

    • su 允许你完全切换到另一个用户的身份,并且可以在新身份下连续执行多个命令。
    • 对于需要长时间以管理员身份工作的情况,su 可能更方便。

主要区别

  • sudo: 用于临时提升权限,执行单个需要高权限的命令,使用当前用户的密码进行身份验证。常用于执行一次性或短期的管理任务。
  • su: 用于切换到另一个用户身份(通常是 root),并打开一个新的 shell 会话,要求输入目标用户的密码。适合需要长时间以另一个用户身份工作的情况。

Reference