【问题标题】:Drop/Undo sudo privileges on .py file which runs inside a program which runs from sudo previleges删除/撤消 .py 文件的 sudo 权限,该文件在从 sudo 特权运行的程序中运行
【发布时间】:2015-09-24 11:50:16
【问题描述】:

我需要以 sudo 权限运行程序,并且我在程序中运行 .py 文件。因此,当我的程序从 sudo 运行时,它会自动使用 sudo 调用/运行 .py 文件。我正在运行类似“./myFile.py arg1 arg2”的文件

我的要求是我的程序需要从 sudo 运行,但是当我在程序中运行/调用 .py 文件时,它应该以正常权限运行(没有 sudo)。

如果有人有想法,请告诉我。

谢谢。

【问题讨论】:

    标签: python shell ubuntu file-permissions sudo


    【解决方案1】:

    不是直接运行python文件,而是作为另一个用户运行它

    su -c "./myFile.py arg1 arg2" another_user
    

    【讨论】:

    • 感谢您的评论。我按照您的建议运行文件并且它有效。但是,当我在 .sh 文件中编写此行并使用 sudo 运行 .sh 文件时,它不起作用,并显示“(进程:3572):dconf-WARNING **:未能提交对 dconf 的更改:无法连接:连接拒绝”在终端上。
    • 嗯。可能是环境问题。尝试传递-m 选项:su -m -c "./myFile.py arg1 arg2" another_user
    • 我尝试过使用 -m 方式,但在终端上显示“无法创建文件 '/home/myusername/.cache/dconf/user':权限被拒绝。dconf 将无法正常工作。”如果您在最后尝试同样的方法并让我知道结果,那就太好了。顺便说一句,感谢您的回复。
    • 我的意思是,我没有你的 python 文件,但echo -e "su -c \"echo 'test'\"" myusername > tmp.sh && chmod +x tmp.sh && sudo ./tmp.sh 输出test,所以我可以验证su -c 是否可以在bash 脚本中工作,如果这是你所关心的。但是,快速浏览一下 aptitude 就会发现,在名称中包含“dconf”的可用软件包中,没有一个被安装。如果我遇到任何 dconf 错误,我会感到非常惊讶。
    • 请查看askubuntu.com/questions/643028/…。这是我想做的实际任务,.py 文件也在那里。
    猜你喜欢
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 2015-02-12
    • 2021-10-24
    • 2017-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多