/etc/passwd 中的 root shell 错误

/etc/passwd 中的 root shell 错误

我想将 root 用户的标准 shell 更改为 bash,但路径错误。我输入了 /bin/bash 而不是 /opt/bin/bash。现在我的 /etc/passwd 看起来像这样:

root:x:0:0:root:/root:/bin/bash

问题是我无法再通过 ssh 登录。另外,我无法从其他用户处获取 root 权限,因为:

>su root
su: must be suid to work properly 

有什么建议么?

答案1

尽管这些设备类型产品基于 Linux,但通常最好不要像 Linux 盒子一样尝试自定义它们。他们通常缺少大部分工具,并且通常以各种方式进行剥离,这可能会造成危险。

我曾使用过 Netgear 的 ReadyNAS 盒子和 Thecus 盒子,这两种类型的产品一直都是这样。您可能需要考虑恢复出厂设置以使其恢复正常,而不是自行破解。

您必须重新配置该盒子,但这通常只是设置 IP 备份并可能创建一些用户帐户。

我将引导您访问 Synology 的实际页面,其中介绍了如何实现此目的:

答案2

无需通过 su 成为 root。使用 sudo 完成您的任务。例如在你的情况下,你可以使用

sudo chsh -s /opt/bin/bash root

这会更改特定用户的 shell。当要求时提供密码。

笔记:用户必须属于 sudoers 组才能使用 sudo。

答案3

我在 Synology DS212j 上遇到了同样的问题,使用第三部分包“配置文件编辑器”解决了。您可以从以下位置下载该软件包这里。记得在“Config file editor”配置文件中添加/etc/passwd,(它是文件列表中的最后一个)

答案4

如果您仍然拥有 root(“admin”)密码,您应该能够从 Web 界面添加另一个用户,然后您可以向该用户授予管理员权限并尝试从另一个帐户修复问题。

如果失败,您也许可以使用 slm 的链接重置 NAS 设置(但仍保留您的数据)(如何重置 Synology 系统

相关内容