我正在編寫一個快速的shell腳本,用於執行某些顯示設置,但這無關緊要。 shell腳本將放在任何可以訪問的目錄中;我選擇了/usr/local/bin/<dir>/<script>
。dpkg postinst - 如何以普通用戶身份運行它
我使用postinst腳本來創建相關的快捷方式,並將此腳本註冊爲啓動應用程序。一旦配置完成,我想要執行/usr/local/bin/<dir>/<script>
。這似乎執行(因爲它會生成詳細的數據),但沒有按預期的方式進行視覺更改(顯示設置不起作用)。我期待爲root用戶完成更改。安裝退出後,我可以運行/usr/local/bin/<dir>/<script>
以獲得所需的效果,但sudo /usr/local/bin/<dir>/<script>
不會產生相同的效果,因爲它會更改根的顯示設置。
它可以簡單地解決,如果postinst中的命令可以運行WITHOUT根權限。我怎樣才能做到這一點?
這不適用於多種事情......比如讓我們說gsettings ...理想情況下,這應該適用於用戶whizzzkid:sudo su「whizzzkid」-c gsettings set org.gnome.desktop.background picture-uri「file ://「。但是它拒絕授權給dconf。 –
whizzzkid
我按照問題回答了您的問題;你說過腳本做了什麼是無關緊要的,如果這些命令可以在沒有root權限的情況下運行,那麼所有這些都將被解決。不過要注意的是:「如果你對環境的保存沒有特別的要求」。 gsettings工具確實取決於某些環境變量是完整的。請參閱http://stackoverflow.com/questions/10374520/gsettings-with-cron上的一些答案以獲取有關如何繼續的線索。 –