我想将 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 系统)