设为首页 收藏本站
查看: 717|回复: 0

[经验分享] Mac OS X 10.5 Leopard: Direcory Utility, The end of Netinfo

[复制链接]

尚未签到

发表于 2016-5-16 12:16:47 | 显示全部楼层 |阅读模式
这是一篇很好的简单叙述Leopard的核心的一个重大变化,它彻底放弃使用NetInfo数据库的方法来管理用户用户组和资源,而是采用更为好管理、直观明了的XML方式,在给出一个具体例子后,也给出了相应命令行的改变。
其实,在OS X Tiger 10.4中,原来有两个应用程序一个叫NetInfo,一个是Directory Access一个主要用于管理本地用户的,另一个用来设置绑定网络Directory服务的,这次的Directory Utility是把这两个的功能合并了。  
还有其他的一些相关文章和具体命令使用的文章,相继贴过来,以备查用。

用户要注意的是,虽然从本文介绍的来说Leopard绑定AD要比Tiger容易了很多,但是其实依然还有好多问题目前还有待解决,用户很可能需要作一些workaround的工作。  

注:其中的图片和两行代码显示是我加入的。




by John C. Welch, MacCentral

  
While the general Mac user community is ooh-ing and ahh-ing over
Mac OS X 10.5
features like Time Machine, or opining about the new Dock, Stacks, et
al, those of us who support Mac users are deep into learning about one
of the biggest below-the-hood changes to happen in any version of Mac
OS X: The end of Netinfo.

<!-- Tile/JSP: templates.article._default.productbox.jsp -->
Related Software Articles




  When I say “end,” I mean it in the
most “end-ish” sense. In Mac OS X 10.5, Netinfo is gone. Not
“deprecated,” not “hidden away for only the most advanced users.” It’s
gone. Deleted. It does not exist. No more Netinfo database, no more
Netinfo Utilities such as nicl, no more Netinfo Manager. The entire structure for
managing local users, groups, and other such things has been completely
replaced by local Directory Services, and the Netinfo Database is now a
series of XML files living in /var/db/dslocal/.

  
Netinfo is—well,
was
—a directory service used for user and computer management. Originally
created for NeXTStep, Netinfo was able to DSC0000.png manage not only individual
machines, but entire networks. Its biggest problem was that the rest of
the world turned to LDAP for doing the same thing.
  Why is the end of Netinfo such an important change? Because
when it came to managing local users and groups—that is users you
created on your Mac, or network accounts that were mapped to local
accounts (a.k.a. mobile accounts)—Netinfo handled all that. When you
created a new user in System Preferences, that was all just a nicer
interface into Netinfo. When you enabled sharing on your Mac, managing
access to shares was handled by Netinfo. Now, it’s all done by
Directory Services.
  This may seem like a sudden change to some,
but the truth is, Apple’s been actively easing Netinfo out of the
picture since Mac OS X 10.2. Starting with that release, and continuing
into Mac OS X 10.4, Netinfo was reduced from the primary mechanism for
managing not just local users and groups, but entire network
directories, ala Microsoft’s Active Directory
or
Novell’s eDirectory, to being only used for local user management. With Mac OS X 10.5, that easing out is complete.

  So
what does this mean? Well to the average user—whatever that means
anymore—not much. The things you used to manage users, file sharing,
and so forth are all still there—they just talk to different plumbing.
There are some new features in those areas in Mac OS X 10.5, such as
the “Advanced Options” in Accounts in System Preferences that allow you
to configure a user’s home directory, login shell, add/remove login
aliases, and so forth; you used to have to go to Netinfo Manager for
these. There’s also the new ability to share any folder on your hard
drive, but that could have been done with Netinfo too. The real changes
here are in other areas
  The most obvious change for most is the
death of the Netinfo database. With Mac OS X 10.5, all the Netinfo
database information are in a series of plist files in /var/db/dslocal/
under nodes/Default/. Within there, you see a set of directories:
  



bash-3.2# ls -l Default/
total 0
drwx------  10 root  wheel   340 Oct 11 19:30 aliases
drwx------   2 root  wheel    68 Nov  3 10:15 computers
drwx------  10 root  wheel   340 Nov 13 14:56 config
drwx------  72 root  wheel  2448 Nov 13 08:49 groups
drwx------   4 root  wheel   136 Oct 11 19:30 machines
drwx------   3 root  wheel   102 Oct 11 19:30 networks
drwx------  44 root  wheel  1496 Nov 13 14:11 users


bash-3.2# pwd
/private/var/db/dslocal/nodes/Default
Note: the above two lines is added by Tony Liu, Nov 18, 2008

  Within
each of these is a set of plist files where the data for that directory
is kept, so in users/, there’s one plist per user, in groups/, one
plist per group, and so on. Looking at the entry for the “staff’ group
in staff.plist, (staff is the default group for all local users you
create in Mac OS X), we see the following:
  



  • bash-3.2#catstaff.plist


  • <?xmlversion="1.0"encoding="UTF-8"?>

  • <!DOCTYPEplistPUBLIC"-//Apple//DTDPLIST1.0//EN"

  • "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

  • <plistversion="1.0">
  • <dict>

  • <key>generateduid</key>
  • <array>

  • <string>ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000014</string>
  • </array>

  • <key>gid</key>
  • <array>

  • <string>20</string>
  • </array>

  • <key>name</key>
  • <array>

  • <string>staff</string>
  • </array>

  • <key>passwd</key>
  • <array>

  • <string>*</string>
  • </array>

  • <key>realname</key>
  • <array>

  • <string>Users</string>
  • </array>

  • <key>smb_sid</key>
  • <array>

  • <string>S-1-5-32-545</string>
  • </array>

  • <key>users</key>
  • <array>

  • <string>root</string>

  • <string>tempadmin</string>

  • <string>jwelch</string>
  • </array>

  • </dict>
  • </plist>





  It’s pretty easy to decipher. You have a UUID, or
Universally Unique Identifier, a unique number that identifies the
group outside of conventional Unix group IDs. You have the GID (or
Group ID), the Unix group identifier number, the name of the group, the
password for the group, (in this case, there isn't one), the realname
(or the more human friendly name), a sid number used for windows file
sharing, and then a list of users in this group, including my own,
jwelch. If you go looking through all the other plists, they all look
like this, more or less.
  But so what? Why does anyone care about
this stuff? Well, for one, these are all text xml files. You can view
or edit them in anything that can handle text files, from Apple’s own
Text Edit and Property List Editor, to BBEdit, to Emacs or vi. You
don’t need a special database DSC0001.png application to view or work with these
files. This makes them more easily maintainable and fixable. It also
makes it easier for network administrators to manage local-only
accounts on their network. The XML structure of these files makes it
easier to integrate the data they contain into various kinds of user
management tools, since almost everything out there, commercial and
home-built can handle XML data.
  Network administrators trying to
manage Mac laptops on directories also benefit from the elimination of
Netinfo. Prior to Mac OS X 10.5, binding a laptop to a directory was a
painful process. Because of the way directory services worked in Mac OS
X 10.4 and earlier, if your laptop was bound, or attached to a
directory service, and you had to boot up or log in when you couldn’t
see the network that directory service was on, you were in a world of
pain, and would probably never actually log in, or get anything done.
There were a few workarounds, but it was all very wonky, due to how
Netinfo and its associated processes—in particular, lookupd—worked.
With Mac OS X 10.5, all that is fixed, and now you can have a laptop
bound to a directory, and it just works.
  For those of you
wondering what command line utilities you use, now that all the ni*
utilities and lookupd are gone, it’s pretty simple. For general needs,
you use dscl. If you want to see what group a user or another group are a member of, or check user/group UUIDs, you use
dsmemberutil. To edit, create, manipulate, or delete groups, you use
dseditgroup. To work with various Directory Service caches, including LDAP and DNS, you use
dscacheutil. Finally, to enable root, you use
dsenableroot.

  The
removal of Netinfo from Mac OS X is a major change from both the
operational and historical perspectives. But in end, I think it’s one
that was long in coming, and it will make Mac OS X much nicer to deal
with from the administrator point of view—something that will aid Apple
as it continues to establish a greater presence in the business world.
  
[
John C. Welch is a Unix/Open Systems Administrator for Kansas City Life Insurance and a long-time Mac IT pundit.
]

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-217793-1-1.html 上篇帖子: OS X Mountain Lion: 抹掉并重新安装 OS X 下篇帖子: iPhone OS Technologies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表