[英]From a python script, change user, set environment and run a couple of commands
[英]Go into sudo user, run couple of commands, go back to normal user in Python script
我遇到的问题是我想暂时进入sudo用户,运行几个命令,然后回到普通用户并以该模式运行命令。
您可以在这里找到要使用的脚本: https : //github.com/Greduan/dotfiles/blob/master/scripts/symlinks.py
基本上,当我在dotfiles的/bin
文件夹下安装脚本时,我需要sudo访问权限才能建立到该文件夹的符号链接。 您可以在代码的最后一个for语句下找到脚本的这一部分。
但是,由于我确实依赖一些使用当前用户作为指导来进行操作的命令,因此我不能只将整个脚本作为sudo
运行。 上次尝试时,出现关于文件夹不存在的很多错误。
感谢您提供的所有帮助。
如果您不介意安装外部依赖项,则sh
模块使此操作非常简单:
import sh
sh.cp('foo.txt', 'bar.txt')
with sh.sudo:
sh.cp('foo2.txt', 'bar2.txt')
最后,我尝试了@Blender的解决方案,但是它没有用,或者我无法弄清楚。
因此,我做了以下工作:
subprocess.Popen('sudo rm ' + final_dest, shell=True)
和:
subprocess.Popen('sudo ln -s ' + final_src + ' ' + final_dest, shell=True)
如我所料,它可以正常工作,并且没有额外的依赖关系。 感谢您的回复@Blender,但它对我不起作用。 ; |
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.