2017-12-27 510 views
0

我已經使用XCode 9.2編寫了一個macOS Cocoa應用程序。以root權限啓動/分配macOS應用程序

該應用程序的目的是作爲一組shell命令的包裝,以便用戶可以根據需要輕鬆運行命令。 shell腳本允許用戶控制另一方爲其編寫軟件的特定設備驅動程序。

我設法讓應用程序以root用戶身份調用shell命令。

但有一些子命令失敗。實際運行的命令是,我認爲這是第二屆「stop -a」失敗:

do shell script \" 
cd '/Library/Application Support/ABC' ; 
python '/Library/Application Support/ABC/abc.py' stop -d; 
python '/Library/Application Support/ABC/abc.py' stop -a; 
python '/Library/Application Support/ABC/abc.py' stop -g; 
python '/Library/Application Support/ABC/abc.py' stop -t;\" 
with administrator privileges 

當我運行在終端中輸入相同的命令,他們的工作,無論是作爲獨立的命令或shell腳本。

作爲最後的手段,我跑使用

sudo ~/Library/Developer/Xcode/DerivedData/appname/Build/Products/Debug/appname.app/Contents/MacOS/appname 

命令行應用程序而這個完美的作品。

因此,當我使用NSAppleScript框架運行時,它正確地提示我輸入了根密碼,但仍然有些問題會導致命令失敗。但是,當整個應用程序運行在sudo一切正常。

所以解決方案似乎是設置應用程序需要Root權限。是否有可以爲內置項目設置的設置,該設置會自動設置,以便在啓動時請求根密碼?

回答

0

似乎在工作,我沒有得到錯誤,但仍然喜歡一些關於如何設置應用程序以管理員身份運行的指針。

相關問題