我遇到了这样的问题:由于许可限制,我拥有的第三方脚本只能由特定的 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/