繁体   English   中英

进入sudo用户,运行几个命令,使用Python脚本回到普通用户

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM