我正在运行一个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,我查过了,它们是一样的! –