[CPyUG] Python中调用需要root权限的命令

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[CPyUG] Python中调用需要root权限的命令

liuerfire Wang
python中的subprocess.Popen()好像不能执行需要root密码的命令吧?如果可以应该怎么做呢?

python2中装了python-dbus包后,可以通过dbus执行一些需要root权限的命令,那还有没有其他的方法(不用dbus)呢?

python3中好像没有python-dbus这个包吧?那python3中如何执行需要root密码的命令呢?

还有关于policykit的api,都是c/c++的较多,有没有python的呢?

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] Python中调用需要root权限的命令

依云
On Tue, Dec 20, 2011 at 11:25:16PM -0800, liuerfire MonkeyD wrote:
> python中的subprocess.Popen()好像不能执行需要root密码的命令吧?如果可以应该怎么做呢?
>
> python2中装了python-dbus包后,可以通过dbus执行一些需要root权限的命令,那还有没有其他的方法(不用dbus)呢?
>
> python3中好像没有python-dbus这个包吧?那python3中如何执行需要root密码的命令呢?
>
> 还有关于policykit的api,都是c/c++的较多,有没有python的呢?

只能去找拥有 root 权限的程序,无论是 su、sudo、gksudo 或者是 dbus 什么
的。或者你一开始就以 root 权限运行。

--
Best regards,
lilydjwg

Linux Vim Python 我的博客:
http://lilydjwg.is-programmer.com/
--
A: Because it obfuscates the reading.
Q: Why is top posting so bad?

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] Python中调用需要root权限的命令

zhao shichen
os.setgid(gid)                                                                                                   
os.setuid(uid)


--
呆痴木讷,君子四德

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] Python中调用需要root权限的命令

pansz-2
In reply to this post by liuerfire Wang
2011/12/21 liuerfire MonkeyD <[hidden email]>:
> python中的subprocess.Popen()好像不能执行需要root密码的命令吧?如果可以应该怎么做呢?
先确保你的执行程序(主入口)具有 root suid 的权限。
然后在程序中
os.seteuid(0)
然后就可以了。

> python3中好像没有python-dbus这个包吧?那python3中如何执行需要root密码的命令呢?

据说 python3 永远不会有 python3-dbus。因为 gtk 跟 qt 两个项目组都已经做了各自的 dbus
包装,这个通用的不依赖具体图形库的 python-dbus 没人维护了,你只能用 python-gtk3 或者 python-qt4 里面的
dbus 绑定实现。

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html