python - 如何以特定用户身份调用 Python 脚本中存在的命令

标签 python linux python-2.6

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

下面是我在 python 脚本中调用第三方脚本的方式,

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

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

command = self.__command__ % args

有人可以帮助我如何更改用户吗?我在 Linux 机器上使用 Python 2.6

最佳答案

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

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

Oracle explains here setuid() and setgid()

现在,这并不是很简单,但我无法为您提供更多帮助,我从未使用过它,我只在 The LPI 中研究过它。 .

请注意,它在 Linux 上的工作方式与 BSD 上不同,因此请注意您到底使用什么。

关于python - 如何以特定用户身份调用 Python 脚本中存在的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21516936/

相关文章:

python - Numpy/PyTorch - 如何用不同维度的索引分配值?

python - 在本地(非 Azure)docker 实例中使用来自 Azure feed 的 python 包

linux - 搜索两个目录之间的所有差异

python-2.6 - 如何从 os.walk 中排除文件扩展名

batch-file - 如何在Windows中设置默认的Python版本?

Python 关于 f.tell()

python - Django 表单 - 设置标签

linux - 无法双击二进制文件使其在终端中运行

Python 后台脚本

python - 我怎么可能在外层()函数中调用嵌套的 len() 函数