![为什么 SMC 在启动时失败?](https://linux22.com/image/507646/%E4%B8%BA%E4%BB%80%E4%B9%88%20SMC%20%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%97%B6%E5%A4%B1%E8%B4%A5%EF%BC%9F.png)
试图从我们的一台服务器中删除一个用户,但我似乎每次都受阻……
SMC 拒绝加载用户列表(UserContent 的 listAll 方法中出现 NoClassDefFoundError 失败)。
vipw 只是返回“vipw:/etc/passwd 文件忙”。
目前我是系统上的唯一用户(它是我们的备用 SRSS 盒),这两个甚至在重新启动后都会失败。不幸的是,我目前也没有控制台访问权限(或者我会尝试单用户模式)。当然,即使 init 模式 S 有效并让我完成这一项任务,也无法解决根本问题。
有想法吗?
答案1
检查fuser /etc/passwd
哪个进程正在使用它并将其终止。显然要确保终止该进程是安全的。
答案2
已找到解决方案(实际上,是解决方法)(至少对于 SMC 而言,仍然对 vipw 问题感到困惑):http://forums.sun.com/thread.jspa?messageID=10266935
rogerfujii 说:
Sigh. They broke the classpath somewhere. This is not the correct fix, but will get you by if
you need it to work (don't really understand what is supposed to get loaded where, so I stuck
it at the end of the process):
Edit /usr/sadm/lib/smc/bin/smc
Add this line:
L10NJARS="${L10NJARS} ${JARPATH}/../../VCommon.jar ${JARPATH}/../../usermgr/*.jar"
just before the "for jar in ${L10NJARS}; do" line.
(this is the smallest "fix", as it takes advantage of the shell expansion to deal with all the usermgr stuff).
Save. You want to keep the original around and put it back when/if sun ever gets around to fixing this,
just in case the fix doesn't include this file.