在Linux系统中,sudo
和 su
是两个非常重要的命令,它们都用于提升权限以执行需要超级用户(root)权限的操作。以下是两者的基本用法和区别:
sudo
sudo (Super User DO) 允许普通用户以 root 或其他指定用户的权限运行单个命令,而无需切换到该用户账户。它要求用户提供当前用户的密码(而不是root的密码),并默认情况下保留了当前用户的环境变量。
基本用法:
sudo <command>
例如:
sudo apt-get update
这会以 root 权限运行 apt-get update
命令来更新软件包列表。
su
su (Switch User) 则是用来切换到另一个用户账户的命令,包括但不限于 root 用户。如果要切换到 root 用户,并且希望拥有完整的 root 环境(包括环境变量、工作目录等),通常使用 -
选项:
基本用法:
su [选项] [用户名]
- 不带选项直接
su
时,如果没有提供用户名,默认尝试切换到 root 用户,并提示输入 root 密码。 - 使用
-
或者su -
时,会切换到指定用户的完整登录shell,即加载目标用户的环境变量、家目录等配置。
例如:
su -
或者
su - root
这将切换到 root 用户的完全登录环境。
总结来说:
sudo
更常见于日常操作,临时提升权限执行某个特定命令,安全性较高,因为记录了每个sudo操作及其执行者。su
则更倾向于进行长时间的工作或需要整个环境改变的任务,比如作为root用户进行一些复杂的系统维护工作。