侧边栏壁纸
  • 累计撰写 208 篇文章
  • 累计创建 16 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

Linux命令:su 和 sudo 的区别

Wake
2024-02-19 / 0 评论 / 0 点赞 / 963 阅读 / 637 字

su(Switch User)命令和sudo(Substitute User DO)命令都是Linux和其他Unix-like操作系统中用于权限提升的工具,但是两者之间是有一些差别的。

1. 认证方式

su: 需要输入目标用户的密码。

sudo: 需要输入执行命令的用户的自己的密码。

2. 用户切换

su: 完全切换到目标用户,开启新的用户session。

sudo: 以目标用户(通常为root)的权限执行命令,但不切换用户。

3. 执行环境

su: 可以通过su -加载目标用户的环境变量和配置。

sudo: 通常保留原始用户的环境变量,但可以通过参数修改(比如sudo -i)。

4. 权限细节

su: 无法精细控制,给予完整的目标用户权限。

sudo: 可以通过/etc/sudoers文件精细控制权限,限制用户执行特定的命令。

5. 安全性

su: 用户需要知道其他用户的密码,这可能导致密码泄漏的风险。

sudo: 更安全,因为用户只需知道自己的密码,且可以通过配置限制权限。

6. 日志记录

su: 通常不会记录执行的命令详情。

sudo: 记录所有通过sudo执行的命令,便于审计。

7. 使用习惯

su: 通常用于临时完全切换到另一个用户。

sudo: 常用于执行单个需要权限提升的命令。

8. 配置复杂度

su: 没有配置文件,使用较为简单。

sudo: 通过/etc/sudoers进行配置,设置较为复杂但功能强大。

9.推荐使用场景

su: 在需要长时间以另一个用户身份工作时使用,或者在没有sudo配置的系统中使用。

sudo: 在需要执行特权操作时使用,特别是在多用户环境中,由于其提供了更好的安全性和可追溯性。

简单总结:

使用su时,你变成了另一个用户,并且需要该用户的密码。

使用sudo时,你仍然是原来的用户,但是可以执行特权命令,并且需要你自己的密码。

出于安全考虑,sudo通常是更受推荐的方法,因为它提供了更细粒度的控制,而且能够记录所有的sudo操作。

0

评论区