我有一个只能由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之外,还有什么方法可以做。
答案 0 :(得分:2)
在这里,您将需要执行python脚本的用户可读的文件。
如果安全,则可以向该文件添加权限0644。
答案 1 :(得分:1)
不!从代码中更改活动用户帐户而不要求输入密码是一个安全漏洞,因此您不能在常规应用程序中这样做。
您要么需要在root帐户下运行应用程序,要么需要在代码内部运行sudo / pkexec / gksu,并带有命令来读取此文件的内容并将其传递回脚本。
无论哪种方式,您都会看到一个密码对话框。