root和sudo有什么区别?


14

超级用户可以拥有所有特权。但是普通用户可以使用su或sudo命令以及自己的密码来获得访问权限,例如root用户。

那有什么区别呢?

Answers:


7

su传统上,(和sudo)命令需要root的密码。但是,您可以进行设置,sudo以便普通用户可以通过修改/etc/sudoers(以root用户身份,最好使用visudo)来使用自己的密码获得root特权。

现代Linux发行版预配置了第一个用户,使其能够使用自己的密码进行sudo。这样可以防止用户意外配置系统,并使他们无需单独的root密码即可获得完全控制权。


2
您应该使用«visudo»而不是手动编辑/ etc / sudoers-在保存之前会检查语法,这可能会给您带来麻烦。
Nicolas

@Nicolas已更新为包括该内容。但我想指出的是,该文件是由现代发行版自动写入的。
phihag 2011年

3

如果普通用户位于sudoers文件中,则他们只能使用sudo获得root访问权限(这意味着他们受到足够信任,可以根据需要获得管理员权限)。在生产环境中,几乎没有人应该是一个礼貌的人。


3

su命令用于临时更改系统上任何用户的身份,并在其权限下执行许多程序。它不必是根。如果执行的用户su不是root用户,则必须输入要获取身份的用户的密码。

sudo命令将在任何用户的权限下执行一个命令。它也不必是根。该命令是非常可配置的,并提供某种精确的访问控制。输入自己的密码是可选的并且是可配置的。某些分发使系统的第一个用户可以执行sudo所有操作。


2

要添加到上述答案中,

su user1使用用户密码将您的凭证切换到user1,直到您键入exit才su默认为root。

sudo如其他答案中所述,可以授予受信任的用户和一组受限制的命令。此外,sudo可以配置为记录执行的命令。这是跟踪特权滥用的好方法。


1

并非所有普通用户都可以使用sudo,它们必须在sudoers文件中,并且您可以控制用户可以执行哪些命令或命令类型。另外,只有某些用户可以使用su切换到root用户。通常,您将仅对有限的一组命令具有sudo权限,而在有限的一段时间内仅具有完全su权限。


3
可以肯定的是,所有用户都可以使用su,他们只需要切换到该用户的密码即可。
Grady Player

1
传统上,BSD的要求是将其加入“车轮组”以允许使用su成为根。也可以在Linux上配置它,但这不是标准的。
Jaap Eldering

-2

只有具有超级用户特权的用户才能使用sudo或su,普通用户则不能。这是在/ etc / sudoers中配置的,应始终使用visudo编辑。

该系统的优点是:

  1. 特权用户仅在需要时才可以以root用户身份运行命令,
  2. 使得很难猜测根用户名(例如,如果一个简单的ssh bot尝试登录系统root将是第一个要猜测的登录名)。
  3. 共享系统上的多个用户可以具有root权限,而无需共享密码。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.