如何调用作为特定用户在Python脚本中出现的命令

时间:2014-02-02 22:11:28

标签: python linux python-2.6

我遇到这个问题,由于许可限制,我所拥有的第三方脚本只能由特定的LINUX用户调用。我正在使用Python脚本来调用这个第三方脚本&传递我的参数。由于我的脚本作为“NOBODY”用户运行,我无法执行此第三方脚本。因此,当我调用命令&时,我想在python脚本中将用户从nobody更改为此许可用户。一旦它执行到无人,就切换回来。

以下是我在python脚本中调用第三方脚本的方法,

__command__ = '/skint/scripts/check "%(dirname)s" "%(filename)s"'

args = {
       'dirname': dirname,
       'filename': filename
       }

command = self.__command__ % args

有人可以帮我解决如何更改用户的问题吗?我在Linux机器上使用Python 2.6

1 个答案:

答案 0 :(得分:0)

您必须su(切换用户):man page about su

这里的问题是当脚本尝试切换时会显示提示。 为避免这种情况,您必须设置文件的粘滞位并设置替代用户:

Oracle explains here setuid() and setgid()

现在,这不是很简单,但我不能帮助你,我从未使用它,我只在The LPI中研究过它。

请注意,在Linux上它的工作方式与在BSD上的工作方式不同,因此请注意您的用途。