Linux su和sudo命令的区别

2025-04-05 21:38:45
推荐回答(2个)
回答1:

定义上的区别:

su为switch user,即切换用户的简写。su是最简单的身份切换名,用su我们能够进行不论什么用户的切换,一般都是su-username,然后输入password就OK了,可是root用su切换到其他身份的时候是不需要输入password的。

sudo是一种权限管理机制,依赖于/etc/sudoers,其定义了授权给哪个用户可以以管理员的身份能够执行什么样的管理命令。

格式上的区别:

su格式有两种:su -l USERNAME、su USERNAME。

sudo格式:sudo -u USERNAME COMMAND。

密码上的区别:

两个命令的最大区别是:sudo命令需要输入当前用户的密码,su命令需要输入root用户的密码。

日志记录上的区别:

尽管sudo命令以目标用户的身份执行命令,但是它们会使用sudoer所配置的用户名来记录是谁执行的命令。而su命令是无法直接跟踪记录用户切换到root用户之后执行了什么操作。

灵活性上的区别:

sudo命令比su命令灵活很多,甚至可以限制sudo用户可以访问哪些命令。换句话来讲,用户通过sudo命令只能访问他们工作需要的命令,而su命令让用户有权限做任何事情。

回答2:

su 登陆到某个用户

sudo 以某个用户的权限执行某个指令

例:

su root   #登录到root用户
sudo iftop #默认以root用户的身份执行iftop