Mac OS X 10.5 Fast System Deployment Practice
Mac OS X 10.5快速系统部署实践-制作核心系统镜像(2) v1
有的公司可能需要管理本地打印机,一般来说,本地连接的USB打印机是默认准许普通用户安装、打印和卸载的,但是对于网络打印机是不准许的,只有管理员才能安装和卸载。
对于打印机这个在办公室中必备的设备来说,因为它的型号或者配置有可能改变--更新或者添加Duplex等设备而改变等,所以在制作核心镜像的时候一般不 把它加入进去。但是打印机一般具有比较稳定的特性,所以可以把它加入到特殊部门的系统镜像中,以方便部署。还有一种情况,也就是准许员工把笔记本电脑拿回 家使用的情况,而家中有可能有打印机,有可能是一个Windows共享的打印机,所以需要给用户管理本地打印机的权限。所以这里还是简单说说关于打印机的 问题。
在10.5之后,Mac OS X把原来分离的两个管理打印机的软件合并到了System Preferences里面的Print & Fax里面。当选择添加一个新打印机时,可以看到下面的窗口。一般地,在Default里面,OS X可以自动查找当前网络上的Bonjour共享打印机设备,如下图,同样它还支持好多其它的共享协议的打印机,比如IP的LPD和IPP, Windows的SMB, AppleTalk等等。这里要注意的是,因为使用Bonjour的广播协议打印,有可能对网络造成负面影响,所以建议在设置打印机的时候关闭这些不用的 协议,使用如IP会好很多。
这 里仅仅简单叙述添加IP打印机的一般步骤。如下图,选种上面的IP项,在下面输入打印机的IP地址,Mac OS X应该可以自动识别该打印机,并将对应的打印机的型号显示在Print using项里面,那里同时是打印机的驱动程序的名称。如果没有自动显示出来,有可能是没有安装该打印驱动驱动程序,也可能Mac OS X无法正确识别(一般是老型号),要自己选择。然后是简单的打印机配置的选择,之后就完成了。
Mac OS X的打印机制是基于CUPS 的, 这是一个非常成功的系统,很多类Unix的系统都有支持,详细情况可以参考官方网站。对于管理打印机设备,它当然可以用命令行命令,而且并不太复杂。管理 员可以使用任何一个web浏览器来进入cups系统的web管理界面,在地址中输入http://localhost:631/就可以,这个界面可以管理 打印机和打印类。
PPD文件 是PostScript Printer Description的简称 , 是描述该类型打印机所支持的特性和能力的描述文件。其实它相当于Windows下面的打印机驱动程序。对于Mac OS X来说,打印机PPD文件都存储在/Library/Printers/PPDs/Contents/Resources目录中,可以是压缩的文件形式 即.gz文件,比如:"HP LaserJet M9040 M9050 MFP.gz",就是HP LaserJet 9040和9050多功能一体打印机的驱动。还有可能存储在/usr/share/cups/model/和/usr/libexec/cups /driver/目录里面。可以使用命令lpinfo -m来察看目前系统中的打印机驱动列表。
使用命令行安装打印机和配置打印机,可以使用lpadmin,基本的命令行参数请参考CUPS的在线帮助,下面我们给出一个命令行的例子:
lpadmin -p POffice101 -E -o printer-is-shared=false -L "Office Printer 101" -P "/Library/Printers/PPDs/Contents/Resources/HP Business Inkjet 2250.gz" -v lpd://10.0.0.1 |
该命令行添加了一个叫做POffice101,其IPP地址为10.0.0.1, 驱动使用"/Library/Printers/PPDs/Contents/Resources/HP Business Inkjet 2250.gz"的打印机。添加后打印机配置见下图:
同样地,使用lpadmin可以设置默认或者删除打印机,比如:
lpadmin -d POffice101 lpadmin -x POffice101 |
如果需要将一个打印机加入到一个打印机池,或者说是class中,可以用
# Add printer POffice101 to Class POffice_PrinterGroup lpadmin -p POffice101 -c POffice_PrinterGroup # Remove printer POffice101 from Class POffice_PrinterGroup lpadmin -p POPffice101 -r POffice_PrinterGroup |
对于打印机权限有两层含义,一是管理员通过命令行设置本地用户/用户组可以打印输出的打印机, 另外一个是管理员设置普通用户可以添加/删除打印机的操作。
前者使用lpadmin命令来管理,下面的参数就是可以设置的操作,如果一个用户或者用户组在allow的里面那么就可以打印,如果是deny的里面就无法打印,这些设置相当于打印机设备的ACLs控制。
-u allow:user,user,@group -u deny:user,user,@group -u allow:all -u deny:none |
后者需要使用Parental Controls来准许用户管理打印机,下面会说到Parental Controls, 这里省略。而对于网络移动用户就可以编辑authorization文件来完成, 使用下面的命令可以准许任何一个本地用户在System Preferences里面管理(添加/删除等)本地打印机设备:
$ cp -pr /etc/authorization /etc/authorization-original $ cp -pr /etc/authorization /tmp/authorization.plist $ defaults write /tmp/authorization rights -dict-add system.preferences "<dict><key>allow-root</key><true/><key>class</key><string>user</string><key>comment</key><string>MODIFIED BY SYSTEMS ADMINISTRATOR TO ALLOW ANYONE TO ADD PRINTERS. Note: This does open up other system preferences. - Checked by the Admin framework when making changes to certain System Preferences.</string><key>group</key><string>everyone</string><key>shared</key><true/></dict>" $ mv /tmp/authorization.plist /etc/authorization |
当然还有别的方法,这里不再多作介绍。
用户的Home目录是依据一个被称作用户模版的来生成的,这个模版目录包括了一个新用户所包含的所有的目录结构和初始状态的设置。本地用户模版储存在系统目录下面的Library/User Template/里面,这里面包括不同语言环境所定义的不同目录结构的模版,<注意,只有root用户才可以访问, 所以使用Terminal访问比较方便>, 一般用到的都是English或者是本地语言,例如中文的Chinese. 针对每个语言有一个该语言加上lproj的后缀目录,比如英文的是: English.lproj.
通过Terminal可以看到,每一个语言的用户模版都是由真实用户的目录组成。
定制一个适合自己环境的用户模版比较简单。可以先制作一个新的用户普通用户,并进行各种配置,比如说Docks, 系统配置,应用程序设置,浏览器的书签等等,最好把需要通过OD管理的用户设置留出来不动。
之后,退出当前的用户,并登陆到管理员帐户.
现在删除一些不能保留的文件。首先是~/Library/Keychains, ~/Library/Caches, ~/Library/Cookies目录,在Apple菜单中清除"Recent Items", 删除~/.bash_history文件. 注意删除其它目录中不需要的文件/子目录.
sudo rm -r /System/Library/User/ Template/English.lproj/* sudo cp -R /Users/TEMPLATE/* /System/Library/User/ Template/English.lproj/ sudo chown -R root:wheel /System/Library/User/ Template/English.lproj/* |
对于没有经验的操作人员,应该首先把Mac OS X原来的用户模版作一个备份,然后再更新,并使用这个新用户测试,是否满足自己的环境要求。
Tony Liu
2009 Calgary