我们在使用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的习惯。
|