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. 只要是将上面的隐藏命令改为显示就可以了, 这里不在赘述.
首先, 在一个企业环境中, 不同的用户组可以被允许的程序可以是不同的, 但是一般来说, 所有登录到一台机器的用户都有对/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. 只要是将上面的隐藏命令改为显示就可以了, 这里不在赘述.
相关文章推荐
- Mac OS X: 网络管理Login Script来隐藏程序
- Mac OS X: login之前/之后启动程序的方法
- Mac OS X: 禁止/防止网络用户复制app程序到桌面
- Apple Mac OS X每日一技巧011:选中文件重命名/选中打开文件/关闭隐藏程序快捷键
- Mac OS X: login之前/之后启动程序的方法
- Mac OS X: 禁止/防止网络用户复制app程序到桌面
- Apple Mac OS X每日一技巧028:苹果程序图标中隐藏着的各种秘密[转载]
- Mac 应用开发--Cocoa运用程序显示或隐藏MainNemu
- 删除 Mac OS X 中“打开方式”里重复或无用的程序列表
- 苹果Mac OS X显示隐藏文件的方法
- Mac OS X: 系统部署后程序安装的用户提示
- 如何在Mac OS X中开启或关闭显示隐藏文件命令
- Apple Mac OS X每日一技巧002:如何修改打开文档的默认程序
- 删除 Mac OS X 中“打开方式”里重复或无用的程序列表
- Mac OS X 下软件包管理利器 – Homebrew安装与使用
- Mac OS X / IOS 内存管理机制简要说明
- mac os x 查看网络端口情况
- 在Mac OS X下架设和使用SVN版本管理环境
- Mac OS X操作系统下如何显示和隐藏文件
- MAC OSX下查看某个端口被哪个程序占用及杀进程方法