Macos rxtx的PackageMaker安装脚本

Macos rxtx的PackageMaker安装脚本,macos,packagemaker,Macos,Packagemaker,我正在使用PackageMaker为我的应用程序创建安装程序。在安装过程中,我需要运行bash脚本来正确安装rxtx,这是一个用于串行端口通信的JNI库。此库需要将目录/var/lock与用户根目录和组uucp放在一起。安装脚本还需要将当前用户添加到组uucp,以便lib能够写入/var/lock 现在,当我运行应用程序安装程序时,预安装脚本以root用户身份运行。因此,whoami返回root而不是实际运行安装程序的用户。结果是rxtx无法在/var/lock中创建锁文件,因为实际用户未作为成

我正在使用PackageMaker为我的应用程序创建安装程序。在安装过程中,我需要运行bash脚本来正确安装rxtx,这是一个用于串行端口通信的JNI库。此库需要将目录/var/lock与用户根目录和组uucp放在一起。安装脚本还需要将当前用户添加到组uucp,以便lib能够写入/var/lock

现在,当我运行应用程序安装程序时,预安装脚本以root用户身份运行。因此,whoami返回root而不是实际运行安装程序的用户。结果是rxtx无法在/var/lock中创建锁文件,因为实际用户未作为成员添加到uucp

当安装程序运行脚本时,如何获取用户。或者最好将/var/lock的权限设置为其他组?欢迎提出任何建议

#!/bin/sh curruser=`whoami` logger "Setting permissions for /var/lock for user $curruser!" if [ ! -d /var/lock ] then logger "Creating /var/lock!" sudo mkdir /var/lock fi sudo chgrp uucp /var/lock sudo chmod 775 /var/lock # MacOSX 10.5 and later use dscl if [ `sudo dscl . -read /Groups/uucp GroupMembership | grep $curruser | wc -l` = "0" ] then logger "Add user $curruser to /Groups/uucp!" sudo dscl . -append /Groups/uucp GroupMembership $curruser # to revert use: # sudo dscl . -delete /Groups/uucp GroupMembership $curruser else logger "User already member of group uucp!" fi 而不是

curruser=`whoami` 我现在正在使用

curruser=`users` 这给了我一个当前登录用户的列表,该列表部分解决了这个问题。剩下的问题是:

如果在安装时确实有两个或更多用户登录到Mac,我的脚本将无法将用户添加到组uucp

如果Mac上的另一个用户想要运行我的应用程序,它将再次失败,因为该用户未添加到组uucp

也许有人在这些问题上得到了暗示