繁体   English   中英

在 Linux 目录中自动创建的文件的默认权限

[英]Default permissions for files that are automatically created in a Linux directory

我在 python 中使用 django 框架开发的应用程序有问题,它使用 FPDF 库导出文件,然后应用程序使用该文件将其附加到自动 email。

本应用导出PDF并保存到media目录时,该文件不继承其父目录的权限,只有读/写权限,这不允许Django找到该文件,因此可以附加到邮件。

我在网上搜索,发现有人有同样的问题,他们建议使用ACL配置来管理默认权限,我用不同的方法尝试了很多次,但都没有用。 我不知道我做错了什么(我一直有同样的错误)。 在进行 ACL 配置后,文件继续以相同的权限导出,并且在应用命令chmod 777 -R *时,这些文件没有更改它们的权限,我不得不禁用它的 ACL 配置以允许我应用该命令。

这是出现的错误:

Internal Server Error: /treasury/sendMailsSupplierView/SBOJOZF
Traceback (most recent call last):
  File "/var/www/johannasenvironment/venvjoh/lib/python3.6/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/var/www/johannasenvironment/venvjoh/lib/python3.6/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/var/www/johannasenvironment/JohannasEnviroment/treasuryEmails/views.py", line 33, in sendMailsSupplierView
    sendEmailSupplier('narvaezsebas8@gmail.com', report) #sendEmailSupplier(emailSupplier, report)
  File "/var/www/johannasenvironment/JohannasEnviroment/treasuryEmails/mails/mailsFunctions.py", line 50, in sendEmailSupplier
    email_traslado.attach_file(report)
  File "/var/www/johannasenvironment/venvjoh/lib/python3.6/site-packages/django/core/mail/message.py", line 330, in attach_file
    with path.open('rb') as file:
  File "/usr/lib/python3.6/pathlib.py", line 1183, in open
    opener=self._opener)
  File "/usr/lib/python3.6/pathlib.py", line 1037, in _opener
    return self._accessor.open(self, flags, mode)
  File "/usr/lib/python3.6/pathlib.py", line 387, in wrapped
    return strfunc(str(pathobj), *args)
FileNotFoundError: [Errno 2] No such file or directory: 'media/PaySuppiler--27022022142925.pdf'

这是最新的未应用文件的样子sudo chmod 777 *

administrador@WEB-APPLICATION:/var/www/johannasenvironment/JohannasEnviroment/media$ ls -l
total 396
-rw-r--r-- 1 www-data www-data 133492 feb 27 09:17 PaySuppiler--27022022141734.pdf
-rw-r--r-- 1 www-data www-data 133492 feb 27 09:28 PaySuppiler--27022022142833.pdf
-rw-r--r-- 1 www-data www-data 133492 feb 27 09:29 PaySuppiler--27022022142925.pdf
administrador@WEB-APPLICATION:/var/www/johannasenvironment/JohannasEnviroment/media$

这些是media目录的权限:

drwxrwxrwx  2 administrador administrador  16384 feb 27 09:29 media

您能否检查正在访问的路径是否正确。 根据媒体文件夹中文件的权限,每个用户都具有读取权限,并且您正在尝试读取文件(二进制形式)。

此错误 (FileNotFoundError: [Errno 2] No such file or directory: 'media/PaySuppiler--27022022142925.pdf') 表明路径不正确。 尝试使用基于文件的相对路径,例如 os.path.join(os.path.realpath( file ), "../media/PaySuppiler--27022022142925.pdf")

为什么我会收到 FileNotFoundError?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM