修复NETINFO错误的命令行
级别:高级
先决条件:终端/命令行,用户和组
介绍今天,在进行例行维护时,我注意到我不再能够使用sudo。 而且尝试进行身份验证无效。 我的计算机一直抱怨我没有提供有效的管理员用户名。
我想:“这很奇怪,因为我一直都有一个管理员帐户。
快速浏览Netinfo Manager证实了我的怀疑:我的一个小组被神秘地改名为“ admin”。
现在,在Mac OS X中,“管理员”组定义了具有管理员特权的用户。 而且,当有两个管理员组时,系统会感到困惑,并决定应该*没有*管理员。
这不好,特别是因为您需要管理员权限才能修改NetInfo数据库!
幸运的是,有希望。 通过引导进入单用户模式(在听到启动提示音后立即按住Cmd-S),即使您的普通登录帐户没有管理员权限,您也可以执行具有root权限的命令。
您可能不知道,但是有一个很棒的工具可以从Mac OS X的命令行中使用NetInfo数据库。它称为
nicl 。nicl是“ NetInfo命令行”的缩写。 不幸的是,关于它的文档并不多,但是我们将在这里介绍基础知识。
警告:如果您不知道自己在做什么,可能会严重破坏工作。 仅修改您的NetInfo数据库以解决问题,而不是引起问题。 基本让我们从一些简单的东西开始。 打开终端并输入以下命令:
nicl . -list /users
这将输出系统上所有用户帐户简称的列表。
注意“ nicl”后的点。
这意味着我们要查看本地NetInfo数据库。
“ -list”参数意味着我们要列出用户“目录”中的所有节点。
注意,这里的“目录”一词实际上并不表示文件系统中的文件夹。 我们使用该术语是因为它有点像目录,因为NetInfo数据库是以类似于您的计算机文件系统的分层方式组织的。
如果要获取有关特定用户帐户的信息,可以运行以下命令:
nicl . -read /users/daemon
此命令在“用户” [pseudo-]目录中列出“守护程序”节点的所有变量。
高级的东西
现在,让我们进入有趣的东西。 我们如何更改NetInfo数据库中的信息? 基本上有四个命令可以满足您的大部分需求:
- -create创建节点(sudo nicl -create / users / joe)
- -append向节点添加值(sudo nicl。-append / users / joe passwd“ *”)
- -重命名为好东西(sudo nicl。-rename / users joe mark)
- -delete删除内容(sudo nicl-/用户标记)
请注意,要修改NetInfo数据库,您需要root权限。 这是单用户引导很方便的地方。
修复NetInfo考虑到本文开头描述的情况,我需要对错误的组条目进行一些处理。 在查看了重复的“ admin”组(使用nicl .-read / groups / admin)之后,我意识到新的组将必须存在,并且我必须重新创建原始组(即www)。
因此,我启动了单用户模式并执行了以下命令:
sh /etc/rc # finish startup sequence
.
.
.
nicl . -list /groups # Since there's two admin groups, I don't want to delete the wrong one.
.
.
.
60 mailman
61 appserverusr
62 admin <--- Here's the duplicate. Note its ID number 62.
63 appserveradm
.
.
.
nicl . -delete 62 # You can also refer to nodes by their ID numbers to resolve duplicates.
nicl . -create /groups/www # Recreate the original group
nicl . -append /groups/www users www
nicl . -append /groups/www name www
nicl . -append /groups/www passwd "*"
shutdown -r now # To restart the computer.
重新登录后,一切恢复正常!
摘要
nicl提供了一个非常方便的界面,用于查看和修改您的NetInfo数据库信息。 您可以-list和-read目录和节点,-create,-rename和-delete目录,节点和键,以及-将键和值附加到节点。
即使无法使用计算机,也可以在单用户模式下使用nicl修复损坏的NetInfo数据库。
欲获得更多信息看看苹果的
有关nicl的更多信息,请参见nicl的手册页 。有关NetInfo,其功能和工作方式的更多信息,请查看Apple的
netinfo的手册页 。From: https://bytes.com/topic/networking/insights/667915-fixing-netinfo-errors-command-line