
本文将比较非 root 用户提权为 root 用户的两个 Linux 命令 的区别。

以下是切换到 Linux sudo 命令的五个安全原因。下载 sudo 参考手册获取更多技巧。

sudo 表示 “superuser do”。 它允许已验证的用户以其他用户的身份来运行命令。其他用户可以是普通用户或者超级用户。然而,大部分时候我们用它来以提升的权限来运行命令。

两个命令的最大区别是:sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码。另外一个区别是其默认行为。sudo 命令只允许使用提升的权限运行单个命令,而 su 命令会启动一个新的 shell,同时允许使用 root 权限运行尽可能多的命令,直到明确退出登录。

毫无疑问,sudo 是任何在 Linux 上使用命令行的人都必须知道的命令。但是,为了更负责、更有效地使用该命令,你还是要知道一些相关(及深入)的细节。这正是我们将会在这篇文章中讨论的。

Calife会在登录为另外一个用户前输入自己的密码(如果没有提供登录名,默认是登录为root),在验证具有正确的权限后,就会切换到该用户及其组身份,并就会执行一个shell。如果 calife 是由 root 执行的,不需要密码,会执行一个所需的用户ID的shell。 所用的shell是用户自身所用的,除非在calife.auth配置文件中指定了某个shell。如果在命令行指定了-选项,就会读取该用户的环境文件,该shell就像是一个登录shell。这和su的惯常用法不同。 只有在calife.auth中指定的用户才能使用此方法通过calife成为另外一个用户。calife.auth安装位置处