簡體   English   中英

如何使python以普通用戶而不是以root用戶身份打開新終端

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM