1. 所需密码不同. sudu 用的是普通用户本身的密码,而su用的是root的密码。 而普通用户一般情况下是不会知道root密码的,所以在真正的企业级或者有管理员负责维护的unix系统上时,是无法直接su的。
2. sudo的用户权限在/etc/sudoers文件中设置, 可以指定某个用户在sudo之后可以用root权限做那些事情。对于进行对特权下放的控制很有用。
而su则一旦成功有全部root权限,单独的su只是更换用户,加一个参数 - 的命令 su - 则更换用户并改变env到新的用户的登录环境下。
3. 并不是所有人都可以直接su的。即使su已经被管理员设定了SET_UID,但是如果不将自己加到wheel组里面,一般用户还是无法登录。这一特性是在配置文件/etc/pam.d/su中实现的(在Gentoo下是靠 "auto required pam_wheel.so use_uid" 这一行).
4. 如果你在sudo中被给予了很多权利......其实可以sudo su.....但没啥必要了...