我正在使用PackageMaker爲我的應用程序創建安裝程序。在安裝過程中,我需要運行一個bash腳本來正確安裝rxtx,一個用於串口通信的JNI庫。這個庫需要有用戶「root」和組「uucp」的目錄/ var/lock。安裝腳本還需要將當前用戶添加到組「uucp」,以便lib能夠寫入/ var/lock。rMx的PackageMaker安裝腳本
現在,當我運行我的應用程序安裝程序時,預安裝腳本以root身份運行。因此,「whoami」返回的是根,而不是實際運行安裝程序的用戶。結果是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