祝大家陽光燦爛!:D,
我有一個問題要問你們。我有以下python“腳本”:
import os
os.system('ubuntu.exe')
這會打開在我的 WSL 上運行的 Ubuntu。現在,當 Ubuntu 終端出現時:
我想執行以下命令:sudo /etc/init.d/dbus start和sudo /etc/init.d/xrdp start使用我的 python 腳本(只需自動執行它們)。但是,當我運行上述命令之一時,終端會請求我的密碼:
因此腳本也應該能夠輸入密碼。有什么辦法,怎么做?
親切的問候,D.
uj5u.com熱心網友回復:
雖然評論中鏈接的問題/答案很好讀(sudoers特別是),但 WSL 有更好的方法。而不是使用ubuntu.exe,使用較新的wsl.exe替代品。該wsl命令提供了對啟動的更多控制,包括能夠更改用戶:
import os
os.system('wsl ~ -u root -e sh -c "nohup service xrdp start"')
os.system('wsl -u root service dbus start')
的nohup原因是什么,似乎是一個計時問題是必要的。當通過 WSL 命令啟動時,shell(擁有行程)將在xrdp有機會 fork之前終止。 nohup只需確保完整的xrdpinit 腳本在此之前有機會運行。這本身真的不是 WSL 問題。如果您使用exec sh -c "sudo service xrdp start".
其他一些注意事項。首先,這不需要密碼,因為 WSL 沒有“登錄”的概念。該/init行程(WSL 的 PID1 和初始化)負責為每個會話設定擁有用戶。這不被視為安全風險,因為即使是根 WSL 用戶的運行權限也不超過Windows用戶的權限。
還要注意的是,在我的經驗,這是沒有必要的,開始dbus的xrdp訪問,即使我已經看到了說,這是指令。當然,最終這將取決于您想要在xrdp會話中運行的內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/329319.html
標籤:Python 乌本图 linux的windows子系统
上一篇:無法使用GnuPG在PHP中加密
下一篇:用回圈添加多個物件forjava
