从python中运行需要root访问权限的命令

从python中运行需要root访问权限的命令,第1张

概述我最近一直在玩子进程.正如我做的越来越多;我发现自己需要root访问权限.我想知道是否有一种简单的方法来输入需要子进程模块的命令的root密码.所以当我提示输入密码我的脚本并提供它并运行命令.我知道这是一个不好的做法,代码将运行的地方是沙箱并与系统的其余部分分开;我也不想以root身份运行. 如果可能的话,我会非常感谢小例子.我知道你可以用期望做到这一点,但我正在寻找更多以python为中心的东西 我最近一直在玩子进程.正如我做的越来越多;我发现自己需要root访问权限.我想知道是否有一种简单的方法来输入需要子进程模块的命令的root密码.所以当我提示输入密码我的脚本并提供它并运行命令.我知道这是一个不好的做法,代码将运行的地方是沙箱并与系统的其余部分分开;我也不想以root身份运行.

如果可能的话,我会非常感谢小例子.我知道你可以用期望做到这一点,但我正在寻找更多以python为中心的东西.我知道pexpect exsists但是对于这个简单的任务来说有点过分.

谢谢.

解决方法 对于运行 Python程序的用户来说,最好使用 sudo.您可以指定可以从sudo运行的特定命令和参数,而无需密码.这是一个例子:

有很多方法,但我更喜欢将命令集分配给组的方法.因此,假设我们要创建一个组,以允许人们以root身份运行’tcpdump’.所以我们称之为tcpdumpers组.

首先,您将创建一个名为tcpdumpers的组.然后修改/etc/sudoers

# Command alias for tcpdumpCmnd_Alias      TCPDUMP = /usr/sbin/tcpdump# This is the group that is allowed to run tcpdump as root with no password prompt%tcpdumpers     ALL=(ALL) nopASSWD: TCPDUMP

现在添加到tcpdumpers组的任何用户都可以像这样运行tcpdump:

% sudo tcpdump

从那里,您可以轻松地将此命令作为子进程运行.

这样就无需将root密码硬编码到程序代码中,并且可以精确控制谁可以在系统上运行root权限.

总结

以上是内存溢出为你收集整理的从python中运行需要root访问权限的命令全部内容,希望文章能够帮你解决从python中运行需要root访问权限的命令所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1207464.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存