如何以其他用户身份读取文件

时间:2020-04-14 20:35:57

标签: python python-3.x

我有一个只能由root用户准备的文件。在由user1运行的某个脚本中,我尝试按以下方式读取文件:

from configparser import ConfigParser
properties="/root/role.properties"
cfg = ConfigParser()

with open(properties, 'r') as rolefp:
     cfg.readfp(rolefp)

这引发了异常:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
PermissionError: [Errno 13] Permission denied: '/root/role.properties'

以root身份运行时,相同的脚本。我想以根用户身份读取此文件。 (须藤)。除了bash / shell之外,还有什么方法可以做。

2 个答案:

答案 0 :(得分:2)

在这里,您将需要执行python脚本的用户可读的文件。

如果安全,则可以向该文件添加权限0644。

答案 1 :(得分:1)

不!从代码中更改活动用户帐户而不要求输入密码是一个安全漏洞,因此您不能在常规应用程序中这样做。

您要么需要在root帐户下运行应用程序,要么需要在代码内部运行sudo / pkexec / gksu,并带有命令来读取此文件的内容并将其传递回脚本。

无论哪种方式,您都会看到一个密码对话框。