我正在運行一個Python腳本user1,並且在此腳本中,我需要將文件移動到我無權訪問的文件夾中。該文件夾歸用戶2。通過Python腳本(pexpect,popen ...)更改用戶(su)
我想要做的是:
- 從USER1變化的user2使用su - user2
- 輸入密碼
- 移動文件
到目前爲止,我與POPEN嘗試:
p = subprocess.Popen(["su", "-", "user2"])
p.communicate("user2_password")
p.communicate("mv path/to/file other/path/to/file")
它不工作,我需要在shell手動輸入密碼。
而且我也試圖與Pexpect的:
child = pexpect.spawn('su - user2')
child.expect ('Password:')
child.sendline('user2_password')
child.sendline('mv path/to/file other/path/to/file')
腳本運行,但沒有任何反應,並運行該腳本後,我仍然USER1。
任何想法,爲什麼?對於它的價值,這似乎是特定於su
,因爲如果我寫了一個腳本sudo
它的工作原理(我可以養活密碼)。
謝謝你的幫助!你不要指望發送密碼後,任何
'su'和'sudo'是不同的。也許你的'root'密碼不同於* User2 * – Ludisposed
的sudo pass,我查過了,它們是一樣的! –