![Solaris 11 nsswitch.conf 搞砸了,需要从备用内核进行编辑](https://linux22.com/image/798492/Solaris%2011%20nsswitch.conf%20%E6%90%9E%E7%A0%B8%E4%BA%86%EF%BC%8C%E9%9C%80%E8%A6%81%E4%BB%8E%E5%A4%87%E7%94%A8%E5%86%85%E6%A0%B8%E8%BF%9B%E8%A1%8C%E7%BC%96%E8%BE%91.png)
好的,我正在编辑 name-service/switch 服务,弄乱了我的 nsswitch.conf,我用“passwd = filesasdf”覆盖了“passwd = files”,所以现在我在启动该内核时无法对服务器进行身份验证。但是,我可以启动到默认的 Solaris 11/11 内核,然后再次进行身份验证,问题在于已经进行了大量调整(并非全部由我完成,也不一定记录在案),我希望能够对该内核进行身份验证并继续进行调整/调优/学习等等。
问题是我不知道如何访问该备用内核上的服务(因为 Solaris 11 甚至不再使用 nsswitch.conf 文件)。我猜想它只是一个 ZFS 快照或保存较新内核的东西,因此它可能涉及安装该快照并编辑名称服务现在查找的任何文件(它是否必须在某个时候查看文件?)。
无论如何,我对 Solaris 也还很陌生,所以这算是一种冒险。
答案1
如果“引导到另一个内核”的意思是引导到备用引导环境 (BE),那么就引导到该内核,使用“beadm list”来确定哪个引导环境是您需要修复的引导环境,然后挂载它。
beadm mount beName mountpoint
例如,如果您损坏的引导环境是“solaris-2”,并且您有一个正常工作的“solaris-1”引导环境,则引导到 solaris-1,然后运行:
beadm mount solaris-2 /mnt
然后,您可以将正在工作的 BE 的 nsswitch cp 到损坏的 BE 的 conf 中。
cp /etc/nsswitch.conf /mnt/etc/nsswitch.conf
然后,重新启动,从 Grub 中选择“solaris-2”BE,就可以了。
答案2
I can however just boot to the default Solaris 11/11 kernel and auth again just fine
... 因此启动该内核并消除你对 造成的损害/etc/nsswitch.conf
。
问题解决了。这将花费你五美元,查理·布朗。
如果您的系统受到攻击以致无法登录,请以单用户模式启动并修复该文件。