0

我遇到的问题是我想暂时进入 sudo 用户,运行几个命令,然后回到普通用户并在该模式下运行命令。

你可以在这里找到我要使用的脚本:https ://github.com/Greduan/dotfiles/blob/master/scripts/symlinks.py

基本上,当我在/bin我的 dotfiles 文件夹下安装脚本时,我需要 sudo 访问权限才能创建指向该文件夹的符号链接。您可以在代码的最后一个 for 语句下找到这部分脚本。

但是,由于我确实依赖于一些使用当前用户作为指导的命令来执行操作,因此我不能将整个脚本运行为sudo. 上次我尝试时,我收到了很多关于文件夹不存在的错误。

感谢您提供的所有帮助。

4

2 回答 2

4

如果您不介意安装外部依赖项,该sh模块使这非常简单:

import sh

sh.cp('foo.txt', 'bar.txt')

with sh.sudo:
    sh.cp('foo2.txt', 'bar2.txt')
于 2013-05-05T02:24:31.030 回答
0

最后我尝试了@Blender 的解决方案,但它没有用,或者我无法弄清楚。

所以相反,我做了以下事情:

subprocess.Popen('sudo rm ' + final_dest, shell=True)

和:

subprocess.Popen('sudo ln -s ' + final_src + ' ' + final_dest, shell=True)

这正如我预期的那样正常工作,并且没有额外的依赖项。感谢您的回答@Blender,但它对我不起作用。;|

于 2013-05-05T19:01:43.853 回答