我试图修改Raspbian /etc/sudoers上的sudoers文件,但好像又犯了一个错误,因为我无法再次修改它。我也无法调用任何需要sudo权限的命令。
所以我做了一些研究,找到了一个解决方案。

该解决方案使用命令*pkexec visudo*,但是当我尝试这样做时它给我一个错误消息:Authentication is needed to run '/usr/sbin/visudo' as the super user。还有一个下拉列表,它仅包含单词“ root”(并且不能更改)。以及名为Identity的空白文本框和名为Password的空白文本框。

所以问题是我怎么知道根密码?我尝试了“ root”,“ raspberry”,“ admin”等。但是没有任何效果。

根据答案,使用root登录然后使用pkexec visudo似乎有点不可能不会解决我的问题!根据答案,我唯一的方法是使用linux pc来查看我的sd内容并修改sudoers文件。我已经在虚拟机上安装了Debian,最后我可以访问sudoers文件,但没有访问权限!它说我不是文件的所有者!我了解此安全问题,但是由于许多人在我的在线搜索中建议使用linux pc修改sudoers文件,因此应该有一种方法可以访问它。有没有人知道这种方式?

#1 楼

默认情况下,Raspbian已配置为无法使用密码登录root帐户。这是通过从/etc/password中的条目开始的开始的,该条目以以下内容开头:命令man 5 passwd的手册页;第5节用于配置文件,在这种情况下,它们具有相同的名称)。这里的第一个是名称(5),第三个和第四个是数字uid和gid(均为man passwd),第二个是密码。对于大多数条目,该名称为passwd,指示实际密码在另一个文件root中。

请注意,“实际密码”并没有真正存储在任何地方。 0中存储的是实际密码的单向哈希。单向散列是一个过程的结果,该过程将始终产生相同的结果(允许您验证密码),但是不可逆。换句话说,如果有人接触到x,则无法从哈希推断出密码。但是,如果他们可以修改/etc/shadow,显然他们可以禁用或更改将用作密码的内容。但是他们将永远无法找到您的密码。这就是为什么即使shadow也无法做到这一点(尽管root总是可以将它们更改为其他内容而无需原始文件)。系统帐户:

root:x:0:0:


shadow表示当前没有可用于该帐户的密码。

root用户可以更改但是,请使用shadow命令设置新密码,该密码将用前面提到的哈希替换root(这些密码始终以shadow开头,其中*是一些随机值,用作哈希的“盐”,但您不会这样做)不需要了解)。

无论如何,当我从新图像设置卡时,我要做的第一件事是进入passwd并移除*,因此root的条目现在开始:现在没有第二场。这意味着没有密码,您只需要在登录提示符下键入$n$,然后以n身份登录即可。然后,您可以使用/etc/passwd设置一个。

因此,这里有两个选择,但是它们都需要您从pi中取出卡并从另一个系统访问第二个分区(可以读取/写入) ext4分区)。


还原x。如果您有参考图像,这很容易,则可以通过替换它来恢复原状。否则,这是更复杂的选择,因为您必须知道自己在做什么(并且root的记录不太好...)。
编辑root并如上所述删除该passwd,然后将卡放回去,以sudoers登录,创建密码。当然,您仍然需要修复sudoers,但是尝试和错误将变得更加容易,因为如果您确实是/etc/passwd,那么您将始终可以访问它。

如果没有一个可以访问ext4文件系统的系统(在这里Debian的“ live CD”是一个不错的选择),然后您就陷入了困境。您必须重新刷卡并重新开始。

评论


我已经在VM Ware中安装了debian,并插入了卡,但是它仅查看显示为好像我在使用Windows系统的文件。我的意思是我无法查看/修改sudoers文件。我应该使用一些命令在debian中查看它们吗?

–丹妮
16年5月10日在13:49

我不是VM Ware用户,因此我无法提供具体的信息,但是大概您在VM中具有root用户访问权限,对吗?如果是这样,并且可以从VM访问SD卡,则应该可以挂载第二个分区并查看/ etc。如果没有sudoers,则可能是您不小心删除了它,在这种情况下,您将不得不从新的debian映像中将其替换(不必创建新卡,只需映像文件,请参见此处)。 ..

–金锁♦
16年5月10日在13:54

...您还应该能够访问卡上的etc / passwd并通过Debian VM根帐户进行更改。

–金锁♦
16年5月10日在13:55

(您应该能够挂载第二个分区并查看/ etc)我应该使用哪些命令来挂载第二个分区?

–丹妮
16年5月10日在13:59

从VMware VM?我不知道。我使用virtualbox,但是除了网络之外,我不必在主机系统上设置对硬件或挂载的访问权限(如果必须传输数据,则只需通过网络即可完成)。我认为这是可能且简单的,但是我的主机系统也是linux。我还假定可以通过某种方式将VMware与Windows / Mac /任何主机一起使用,以使VM可以访问连接到主机硬件的SD设备...即使主机本身无法读取分区,它仍然可以访问实际的卡,因此VM也应该能够(然后VM的OS可以读取它)。

–金锁♦
16年5月10日在14:07



#2 楼

设置root密码:


启动并正常登录。
运行:sudo passwd root

根据提示键入新的root密码
/>
来源:https://www.raspberrypi.org/forums/viewtopic.php?f=91&t=5056&start=25

评论


问题是我无法使用sudo命令,因为在修改sudoers文件时犯了一个错误。通过在我的计算机上安装linux debian OS,插入sd卡并将sudoers文件更改回其原始状态,解决了该问题。

–丹妮
17年5月5日7:34



#3 楼

Raspbian没有root密码。在这方面它与Ubuntu有所不同。您可以创建root密码,但是AFAIK需要sudo

最好的选择是通过在Linux机器上安装SD卡来编辑文件。

如果
1,可以在Pi上完成。您有SD卡读卡器
2。您可以在另一个SD上使用良好的操作系统来启动Pi。

评论


但是为什么raspbian要求我输入密码?为什么不接受空密码?

–丹妮
16年5月10日在12:57

根帐户可能具有“无效”或“不可能”的密码-这是一种以这种方式锁定根帐户的常见技巧。

–片状摇动
16年5月13日在9:58

#4 楼

如果您从http://puppylinux.org/main/Download%20Latest%20Release.htm#quirky下载适用于Raspberry Pi的Puppy Linux,并将其安装在拇指驱动器上,则您应该能够从中启动计算机,因为Puppy始终以root用户身份运行,没有密码,您可以在所需的计算机上进行任何更改。进行修改,然后在没有Puppy启动媒体的情况下重新启动计算机。现在,计算机将在没有Puppy的情况下启动到更改后的系统中。可能是一种方法。也许Noobs系统是通过在启动时按住Shift键来实现的。 microSD卡)和原始安装媒体可以通过插入同一Raspberry Pi的读卡器进行读取和更改。

评论


我发现拒绝投票令人讨厌,因此我将尝试填写匿名拒绝投票者。带有“我不知道”的答案可能更适合作为注释。不幸的是,这需要50点的声誉。请继续努力以提供帮助。值得付出努力。 :D

– OyaMist
18年6月29日在14:04