您的位置:首页 > 理论基础 > 计算机网络

Mac OS X: 网络管理Login Script来隐藏程序

2008-12-23 13:28 357 查看
注: 本文是基于TJ Royall的文章login script to hide applications from certain OD users改变的.

首先, 在一个企业环境中, 不同的用户组可以被允许的程序可以是不同的, 但是一般来说, 所有登录到一台机器的用户都有对/Applications目录的read权限,所以, 只要是被安装在/Applications(包括Utility,Server等子目录)里面的应用程序, 登录的用户就可以看见. 这样, 在有的企业环境中, 一些用户就会产生:"为什么我不能运行这个程序呢?是不是管理员的失误呢?", "听说这个聊天程序挺好, 也在硬盘上, 问问管理员是否可以让我玩玩."等等这样的出于好奇等原因的问题, 这样既对一线用户的工作效率产生负面影响, 同时管理员也会面对这样的众多询问, 从要要花时间检查用户的设置情况等, 浪费大量时间.

另外, 即便不是中大型的网络管理企业用户, 在一个未实施网络管理的松散管理中, 管理人员或者应用实施人员, 也可以通过下面的思路来做一些工作, 减少没必要的管理时间浪费.

基本思路是这样, 通过用户的组设置的不同, 可以给定禁止用户使用应用程序的列表, 在用户每次登录系统的时候, 运行一个script程序来隐藏禁止使用的程序, 而当用户退出系统的时候样释放列表中的程序, 这样就可以通过维护列表来管理用户可以看见的应用程序了.

这样涉及到两个scripts程序, 一个是login script, 一个是logout script.

Royall原来的文章中没有涉及logout script,他使用的方法在一个比较大型的系统中产生登录很慢的抱怨, 而且使用的方法只是一个框架而已.

这里使用网络www服务, 来管理用户组的应用程序列表, 因为www服务可以说从Windows到Linux, Unix, BSD等等当今主流系统都有免费而功能强大的www服务器, 我们这里只使用其中的最简单的功能.在服务器上存放不同组的被禁止的应用程序的列表, 并根据组名分别存放到不同文件. 只要是通过普通的browser可以看到这些文件, script就可正常存取, 在下面的script里面只要是修改服务器的地址就可以了.

#1. Create a logfile
LOG="/tmp/hideapps.log"

#2. Path to the SetFile Binary from Developer Tools.
SETFILE="/usr/local/bin/SetFile"

#3. Path to the folder with applications we want to hide.
APP_PATH="/Applications" # your path here

#4. We need to get the MCX workgroup so we can hide the right apps.
WORKGROUP=`defaults read /Library/Managed/ Preferences/$1/com.apple.MCX workgroup`

#5. Set file name for hidden file list.
hiddenfilelist="/tmp/hiddenfilelist.txt"

#6. Set hidden apps for each workgroup. Sample application names are included.
#. Be sure to include the .app after the application name.
httpgroupfile="http://10.0.0.1"

groupfile=`curl -m 60 -fRs -o $hiddenfilelist $httpgroupfile/$WORKGROUP`

echo "Workgroup is $WORKGROUP. Will now hide applications, list in file $hiddenfilelist which is got from $httpgroupfile/$WORKGROUP." >> $LOG

grep httpgroupfile | awk {print $1} | xargs $SETFILE -a V

echo "Applications successfully hidden. Exiting." >> $LOG

exit 0 
至于logout的script. 只要是将上面的隐藏命令改为显示就可以了, 这里不在赘述.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息