提问人:Leonardo Rafael Mora 提问时间:8/21/2023 最后编辑:Leonardo Rafael Mora 更新时间:8/22/2023 访问量:83
只有 python 文件可以读取特定文件
Only python file can read a specific file
问:
对于高中项目,我必须使用私钥来加密文件。我更改了我的 pk 的权限,只有 root 用户才能读取此文件。我将所有者(更改为 root)并将 uid 权利放在这个 python 文件中,但是当我执行这个 python 文件时,我无法访问我的 pk,对我来说我必须更改 python 的权限,但我不想要,(安全问题)。 您有没有想过只能通过 python 文件访问文件?
python 文件包含在 django 项目 (view.py) 中,我也想使用该过程的 pid,但它并没有改变我的问题。
我在 view.py 上使用了带有 0777 的 chown root 和 chmod,但它说我无法读取此文件(具有所有者 root 的读取权限)。
我的回溯错误:
Traceback (most recent call last):
File "/home/mora/anaconda3/lib/python3.8/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
File "/home/mora/anaconda3/lib/python3.8/site-packages/django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/mora/Bureau/secProject/computer_project_54740/secuServer/accounts/views.py", line 65, in home_view
with open("certificats/pkeyRSA.key", "r") as fd:
Exception Type: PermissionError at /home/
Exception Value: [Errno 13] Permission denied: 'certificats/pkeyRSA.key'```
I added the uid right to python file with:
```sudo chown root view.py
sudo chmod 0777 view.py```
for the pkeyRSA.key:
```sudo chown root pkeyRSA.key
sudo chmod u+r pkeyRSA.key```
答:
我在 view.py 上使用和 with,但它说我无法读取此文件(具有所有者根目录的读取)。
chown root
chmod
0777
的所有者或访问权限与打开(另一个)文件无关。您只需使用用户(默认情况下是启动程序的用户,但您可以更改程序的用户)运行 Python 程序。因此,Python 文件不是与不同的用户一起运行每个文件的独立实体,事实上,只要解释器可以读取文件,文件的所有者根本不重要。views.py
这意味着运行 Django 服务器的程序最终将尝试打开该文件,因此操作系统将检查运行该程序的用户是否有权打开该文件。python
文件本身具有特定所有者或权限这一事实并不重要。如果运行 Python 程序的用户尝试打开 Python 文件来启动程序,但程序不会更改程序运行的所有权(“进程”),以防文件具有不同的所有者,这将是一个严重的权限升级 [wiki] 问题。*.py
因此,您必须使用正确的用户运行 Python 文件,例如:
sudo python manage.py runserver # very bad idea
因此,这个想法是使用于运行 Web 服务器的用户可以访问该文件,例如。www-data
评论
pk