【发布时间】:2012-10-14 06:42:12
【问题描述】:
每次执行脚本时,我都在尝试编写一个小脚本来挂载 VirtualBox 共享文件夹。我想用 Python 来做,因为我正在尝试学习它来编写脚本。
问题是我需要权限才能启动 mount 命令。我可以将脚本作为 sudo 运行,但我更喜欢它自己制作 sudo。
我已经知道将密码写入 .py 文件是不安全的,但我们谈论的是根本不重要的虚拟机:我只想单击 .py 脚本并使其工作。
这是我的尝试:
#!/usr/bin/env python
import subprocess
sudoPassword = 'mypass'
command = 'mount -t vboxsf myfolder /home/myuser/myfolder'
subprocess.Popen('sudo -S' , shell=True,stdout=subprocess.PIPE)
subprocess.Popen(sudoPassword , shell=True,stdout=subprocess.PIPE)
subprocess.Popen(command , shell=True,stdout=subprocess.PIPE)
我的python版本是2.6
【问题讨论】:
-
不使用
/etc/fstab有什么原因吗? -
@mensi 是的,我正在练习使用 python 来实现这些目的
-
你需要通过标准输入传递密码,见stackoverflow.com/a/165662/894872
-
如果你不知道自己在做什么,避免
shell=True。如果没有它你就无法让事情顺利进行,请了解它的作用以及它是如何工作的(然后通常你可以)。
标签: python shell subprocess