[英]How to make python open new Terminal as normal user and not as root user
我試圖讓python運行終端命令,這將改變我的桌面牆紙。 在普通終端上運行此命令將更改我的牆紙。 但是,當我嘗試使python在終端中運行此命令時,它不起作用,並給我一個錯誤。
當我以root用戶身份打開終端時,可以復制此錯誤。 我使用su登錄並輸入了密碼。 然后鍵入命令會給我一個錯誤,並且它不會執行。 當我嘗試使用模塊os或子進程使用python執行命令時,情況相同。
是因為我更改以pcmanfm開頭的牆紙的命令(這是窗口管理器)的路徑存在問題,當我是root用戶時,路徑已更改?
在樹莓派上,我如何讓python以“普通”用戶的身份在“ pi”下打開終端並在其中運行命令?
這是更改我的桌面牆紙的終端命令:
pcmanfm --set-wallpaper /usr/share/rpd-wallpaper/bridge.jpg
這是我運行python代碼打開終端時發生的情況:
root@raspberrypi:/home/pi/Desktop#
而不是正常工作時:
pi@raspberrypi:~ $
這是我的python代碼,用於使用更改我的桌面牆紙的命令打開一個新終端,但是如上所述,我最終以ROOT用戶身份出現錯誤,但沒有任何反應:
import os,random
import subprocess as sub
sub.call('lxterminal -e bash -c "pcmanfm --set-wallpaper /usr/share/rpd-wallpaper/bridge.jpg; sleep 3;exec bash"', shell=True)
從普通終端執行以下命令非常有效:
lxterminal -e bash -c "pcmanfm --set-wallpaper /usr/share/rpd-wallpaper/bridge.jpg; sleep 3;exec bash"
這是運行python代碼后的結果,這是我總是得到的錯誤:
** Message: 12:11:08.734: x-terminal-emulator has very limited support, consider choose another terminal
root@raspberrypi:/home/pi/Desktop#
那么我怎樣才能讓python以用戶“ pi”而不是以root身份打開終端? 還是這不是問題? 謝謝!
問題是將python腳本稱為sudo。 通常以以下方式打開python腳本:Python3 script.py將以普通用戶身份打開終端。 更改我的桌面牆紙,而sudo python3 script.py以root用戶身份打開終端,然后更改牆紙的命令不再起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.