我正在運行一個通過終端運行shell腳本的applscript。如何「以管理員權限執行shell腳本」作爲普通用戶而不是root?
我希望能夠使用「使用管理員權限執行shell腳本」,但終端以root身份運行我的腳本,而不是以普通用戶身份(這是Admin)。
我想以root身份運行(除了顯而易見的原因)的原因是我使用〜符號,因此任何用戶都可以在本地登錄並運行腳本(我直接向用戶桌面寫入日誌文件)。
我想以root身份運行的另一個原因是因爲我在我的shell腳本中使用ViseX安裝程序,而該腳本無法以root身份運行。
這是我使用(感謝regulus6633爲applescirpt)的AppleScript的:
set theFile to "myscriptname.sh"
-- launch the application with admin privileges and get the pid of it
set thePID to (do shell script "/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal > /dev/null 2>&1 & echo $!" with administrator privileges) as integer
-- get the bundle identifier of that pid so we can do something with the application
delay 0.2
tell application "System Events"
set theProcess to first process whose unix id is thePID
set bi to bundle identifier of theProcess
end tell
-- runs the Terminal with the shellscript
set theFileAlias to (POSIX file theFile) as alias
tell application id bi
activate
open theFileAlias
end tell
爲什麼你必須在終端內運行腳本?你可以使用`do shell script`來執行腳本本身... – Yuji 2011-01-25 10:28:24