问题描述
设置新的Ubuntu或OS X安装时,通常会为您创建一个用户。在OS X上,您可以选择任何用户名。在Ubuntu(服务器版本)上,通常创建ubuntu
用户。
据我了解,还有一个root用户,您可以通过sudo su - root
之类的方式访问该用户,然后输入ubuntu
或您创建的用户的密码,该密码属于管理员组。切换到root
之后,我认为您可以使用passwd
命令并更改root的密码。
但是,在此之前,root
的密码是什么?是否存在?它是数字和字母的随机字符串吗?系统如何处理?
最佳方法
我只能为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用户可以更改,而无需事先输入旧密码。
次佳方法
这是在OSX中解锁(?)或创建实际root用户的方法:
-
系统偏好
-
用户和团体
-
登录选项(单击锁定并在此处进行身份验证)
-
点击”Join”(NAS)
-
打开目录实用程序
-
单击锁(再次进行身份验证)
-
编辑菜单->启用root用户
-
(编辑菜单->更改root密码)
请享用 !
第三种方法
正如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
添加到末尾。没有密码哈希。我也找不到影子文件,我无法在任何地方找到它们以检查root是否具有密码。
第四种方法
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用户没有密码哈希集(帐户已锁定)。您可以将此设置与”normal”用户的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