
sudo 的全称是 Super User DO,它使得授权用户可以以另一个用户(通常是 root)的身份运行命令。通过 sudo 执行的任何操作都等同于目标用户亲自执行。
使用权限:仅限在 /etc/sudoers 文件中列出的用户。
<pre class="brush:php;toolbar:false;">sudo [参数] 命令
示例:
<pre class="brush:php;toolbar:false;">sudo apt update # 使用 root 权限更新软件源列表 sudo vim /etc/hosts # 编辑需要管理员权限的文件
常用参数说明:
以 root 权限运行单一命令:
<pre class="brush:php;toolbar:false;">sudo apt update sudo systemctl restart nginx sudo mkdir /opt/myapp
切换到 root shell 环境:
<pre class="brush:php;toolbar:false;">sudo -i # 登录式 shell,加载 root 用户配置 sudo -s # 非登录式 shell sudo su - # 另一种方法
以其他用户身份运行命令:
<pre class="brush:php;toolbar:false;">sudo -u username command
<pre class="brush:php;toolbar:false;"> sudo -u postgres psql # 使用 postgres 用户启动 psql
查看当前用户可执行的 sudo 权限:
<pre class="brush:php;toolbar:false;"> sudo -l
编辑受保护的系统文件:
<pre class="brush:php;toolbar:false;">sudo nano /etc/hosts sudo vim /etc/nginx/nginx.conf
sudo 的配置信息保存在 /etc/sudoers 文件中,推荐使用 visudo 工具进行修改:
<pre class="brush:php;toolbar:false;">sudo visudo
典型配置示例:
<pre class="brush:php;toolbar:false;"> # 允许用户无需密码执行所有命令 username ALL=(ALL) NOPASSWD: ALL <h1>授权用户组执行特定命令</h1><p>%wheel ALL=(ALL) /bin/systemctl, /usr/bin/apt
提示“不在 sudoers 文件中”错误:
<pre class="brush:php;toolbar:false;"></p><h1>需要由 root 用户将该用户加入对应组:</h1><p>usermod -aG sudo username # Ubuntu/Debian 系统 usermod -aG wheel username # CentOS/RHEL 系统
修改缓存有效时间:
在 /etc/sudoers 中设置 timestamp_timeout 参数(单位为分钟):
<pre class="brush:php;toolbar:false;"> Defaults timestamp_timeout=30
| 特性 | su | sudo |
|---|---|---|
| 所需密码 | 目标用户密码 | 当前用户密码 |
| 会话持续时间 | 需手动退出 | 单次或短暂缓存 |
| 配置复杂度 | 简单直接 | 需编辑 sudoers 文件 |
| 安全性 | 需要知道 root 密码 | 更细粒度权限控制 |
| 日志审计能力 | 较弱 | 详细记录 |
尽管 su 命令使用简便,但在实际运维工作中,sudo 更加安全可靠,具备更强的权限管理和日志追踪能力,因此更推荐使用。
以上就是linux以其他用户身份执行是什么-sudo 命令使用与实例的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号