OS X和Ubuntu上是否有root密码?


13

设置新的Ubuntu或OS X安装时,通常会为您创建一个用户。在OS X上,您可以选择任何用户名。在Ubuntu(服务器版本)上,通常ubuntu创建用户。

据我了解,还有一个root用户,您可以通过诸如来访问它sudo su - root,并输入ubuntu或创建的用户的密码,该密码属于Administrators组。切换到“ root我想”后,您可以使用该passwd命令并更改root的密码。

但是root在此之前的密码是什么?是否存在?它是数字和字母的随机字符串吗?系统如何处理呢?


1
在Ubuntu上,您只需要sudo suroot默认情况下使用该帐户。
内森·奥斯曼

1
在Ubuntu上,su仅需要切换到某些非root用户。要以root用户身份运行单个命令,请键入sudo command。要获得root shell,请输入sudo -i
Scott Severance

而且,如果您在ubuntu论坛上告诉某人如何设置root密码,或通过livecd引导并重置用户密码,那么它可能会使您的帐户被禁30天...问我怎么知道...。人们真的不希望您为root设置密码,他们希望您始终使用sudo
ivanivan 17-10-21

Answers:


12

我只能为Ubuntu回答。
在Ubuntu中,root用户的密码已锁定。从passwd手册页:

   -l, --lock
           Lock the password of the named account. This option disables a 
           password by changing it to a value which matches no possible 
           encrypted value (it adds a '!' at the beginning of the password).

您可以在!中看到/etc/shadow

具有锁定帐户的用户无法更改其密码,但root用户可以更改,而无需事先输入旧密码。


10

以下是在OSX中解锁(?)或创建实际root用户的方法:

  1. 系统偏好
  2. 用户和组
  3. 登录选项(单击锁定并在此处进行身份验证)
  4. 点击“加入”(NAS)
  5. 打开目录实用程序
  6. 单击锁(再次进行身份验证)
  7. 编辑菜单->启用root用户
  8. (编辑菜单->更改root密码)

请享用 !


+1为Mac GUI的良好描述。我只知道激活root帐户的命令行方式。
Andrew J. Brehm

是的,当Apple客户服务员带领我完成这些步骤时,我感到很惊讶……我认为保持“隐藏”实在是太秘密了。
Yossi Farjoun 2011年

7

正如enzotib所说,Ubuntu有一个root帐户,但是默认情况下它是被锁定的。

现在,关于Mac:

您可能会猜到,root(以及所有守护程序帐户)不会出现在“设置”的“用户和组”部分中。

在我的Mac电脑上/etc/passwd,有一个的条目root以及一条消息

Note that this file is consulted directly only when the system is running
in single-user mode.  At other times this information is provided by 
Open Directory.

我试图找到Open Directory用户列表,但没有成功,但是在配置中提到了显式授予root权限(即使暗含)。首次设置计算机时,从未提示我输入root密码,因此我猜想root帐户已被锁定,就像在ubuntu中一样。我没有(也不是真的想要)尝试给root用户一个密码并用它登录,但是您可能可以。

passwd行:

root:*:0:0:System Administrator:/var/root:/bin/sh

keith的注释中的perl命令:0在末尾添加了a 。没有密码哈希。我也找不到影子文件,我无法在任何地方找到它们来检查root是否有密码。


输出是perl -e 'print join(":", getpwuid(0)), "\n"'什么?(注意:如果其中包含看起来像是散列密码的内容,请不要在此处发布。)
Keith Thompson

@KeithThompson发表了,没什么特别的。我知道哈希值,但也感谢您为可能不会的用户提供警告。
凯文

1
使用您自己的uid的相同Perl命令呢?是否显示哈希密码?(显然,不要再发布哈希了。)
Keith Thompson

1
嗯 或许getpwuid()在Mac OS确实是故意,以避免暴露敏感信息(但必须有东西可以访问哈希密码)。
基思·汤普森

1
我一直在网上搜索,似乎他们在上一个操作系统中有一个影子,但我找不到狮子。
凯文

7

Mac OS X上的root密码(如Kevin所述)存储在Open Directory中。要确认root用户的存在,需要一个简单的grep:

$ grep ^root /etc/passwd 
root:*:0:0:System Administrator:/var/root:/bin/sh

要从Open Directory中读取root密码信息:

$ dscl localhost -read /Local/Default/Users/root Password
Password: *
$ dscl localhost -read /Local/Default/Users/root AuthenticationAuthority
No such key: AuthenticationAuthority

在默认情况下(如图所示),root用户没有密码哈希集(帐户已锁定)。您可以将此设置与“普通”用户的OD值进行比较:

$ dscl localhost -read /Local/Default/Users/normaluser Password
Password: ********
$ dscl localhost -read /Local/Default/Users/normaluser AuthenticationAuthority
AuthenticationAuthority: ;ShadowHash;HASHLIST:<SALTED-SHA512>...#rest of hash data

2

Ubuntu为命名用户设置密码,并将其用于超级用户(根)级任务,如安装和删除系统范围的软件以及目录和超出主目录的文件的删除/执行。实际上已经有一个root帐户,但是没有分配密码,因此有点隐藏。规范和Ubuntu使用约定实际上会阻止您直接调用它。

它设置一个命名的用户帐户,而不是设置一个通用的“ ubuntu”帐户。至少在已安装的系统中就是这种情况。如果您使用实时CD,可能会有一个通用的“ ubuntu”帐户,我不记得了,我已经有两年没有使用实时CD了。

MacOsX中的行为实际上非常相似。要求您设置密码,每次尝试执行超级用户级别的任务(例如安装或升级软件)时都会调用该密码,但是没有名为“ root”的帐户。


3
我相信实际上有一个根“用户”。您可以suroot用户,root用户有一个主目录,文件可以由root用户拥有。您是否可以提供关于没有root帐户的论点?
cwd

3
当然,有一个明确的root帐户(uid 0,名称为“ root”)。必须在任何类似Unix的系统上。它只是没有密码(至少默认情况下)。您甚至可以得到root shell :sudo bash -l,然后键入whoami。(但是通常您应该使用sudo单个命令,而不是让交互式shell以root身份运行。)
Keith Thompson

你也许是正确的,我不是在问你。如果有一个根帐户,那么他们已经很好地隐藏了它。我还在某些机器和VM上使用Fedora,root用户非常活跃。
haziz 2011年

1

对于Ubuntu:默认情况下,您可以访问新创建的用户帐户。

要以root用户身份运行任何命令,您可以使用

sudo command

然后输入您的普通密码。

默认情况下,根帐户是锁定的。要通过命令行激活root用户,只需输入

sudo passwd

然后输入您登录的用户密码,然后输入root的新密码。现在,您可以使用su root 身份登录,然后输入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.