Linux的su和sudo有什么区别?如何使用?
我们在使用Linux时,经常会遇到关于用户权限的问题,每个文件都对不同的用户身份设定了不同的权限。
最常见的场景就是:获取root权限来执行命令。
而Linux中的su和sudo就是关于系统权限的命令,两者都可以让你使用root权限,那它们区别是什么呢?
sudo:
Linux解释:execute a command as another user.
让用户使用另一个用户身份执行一条命令。
特点:
- 可管理用户的sudo使用权限,用户是否有sudo权限记录在/ect/sudoers文件中,不是每一个用户都能使用该条命令;
- 可管理用户sudo执行的命令范围;
- 可记录用户sudo执行日志,并可上传服务器;
- 不需要root密码,只需输入当前用户密码即可拥有5mins使用权限(该时间内不需反复输入密码)。
常用用法:
- #sudo [command] 默认以root身份执行命令(处理很少量root命令时最常用)
- #sudo [-u username] [command] 指定身份执行命令
- #sudo -i 换到root用户,exit登出(当需要处理大量root命令时优先该方法切换)
su:
Linux解释:运行替换用户和组标志的shell。
切换到其他用户权限。需要root密码。
特点:
- 需要知道root密码,到root权限后,放飞自我,拥有root的所有权限;
- 不能跟踪是哪个用户执行了root命令,安全性差。
常用用法:
- #su [username] 切换到指定用户权限,不改变环境变量,默认为root权限。
- #su - [username] 切换,并改变环境变量为指定用户(最常用)
总结
两者都是Linux系统管理的命令,不管怎么样sudo都比su更加方便,最重要的是更加安全,我们应该养成用sudo的习惯。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· Linux系列:如何调试 malloc 的底层源码
· JDK 24 发布,新特性解读!
· C# 中比较实用的关键字,基础高频面试题!
· .NET 10 Preview 2 增强了 Blazor 和.NET MAUI
· Ollama系列05:Ollama API 使用指南
· 为什么AI教师难以实现