jonaswinkler / paperless-ng

A supercharged version of paperless: scan, index and archive all your physical documents
https://paperless-ng.readthedocs.io/en/latest/
GNU General Public License v3.0
5.37k stars 355 forks source link

Permission denied during email consumption. #271

Closed powerwade closed 3 years ago

powerwade commented 3 years ago

Hello, I was not able to import a document from my mailbox due to permission denied as the file(s) are owned by root after fetching the attachement


paperless_1             | 11:10:40 [Q] INFO Process-1:2 processing [Payslip_2020_December_-_End-of-month_salary_Employment_relationship_0_1.pdf]
paperless_1             | 11:10:41 [Q] ERROR Failed [Payslip_2020_December_-_End-of-month_salary_Employment_relationship_0_1.pdf] - [Errno 13] Permission denied: '/tmp/paperless/paperless-mail-fhzkcbt7' : Traceback (most recent call last):
paperless_1             |   File "/usr/local/lib/python3.7/site-packages/django_q/cluster.py", line 436, in worker
paperless_1             |     res = f(*task["args"], **task["kwargs"])
paperless_1             |   File "/usr/src/paperless/src/documents/tasks.py", line 73, in consume_file
paperless_1             |     override_tag_ids=override_tag_ids)
paperless_1             |   File "/usr/src/paperless/src/documents/consumer.py", line 96, in try_consume_file
paperless_1             |     self.pre_check_duplicate()
paperless_1             |   File "/usr/src/paperless/src/documents/consumer.py", line 50, in pre_check_duplicate
paperless_1             |     with open(self.path, "rb") as f:
paperless_1             | PermissionError: [Errno 13] Permission denied: '/tmp/paperless/paperless-mail-fhzkcbt7'

root@22abb2490b1a:/tmp/paperless# ls -latr | tail
drwx------  2 paperless paperless  4096 Jan  4 09:14 paperless-t1u0r4ib
drwx------  2 paperless paperless  4096 Jan  4 09:14 paperless-tt60pid8
drwx------  2 paperless paperless  4096 Jan  4 09:14 paperless-q4rwzbqp
drwx------  2 paperless paperless  4096 Jan  4 09:14 paperless-83y0v0oc
drwx------  2 paperless paperless  4096 Jan  4 09:14 paperless-k4g6emkq
drwx------  2 paperless paperless  4096 Jan  4 09:41 paperless-pnpv5pla
drwxrwxrwt  1 root      root       4096 Jan  4 09:43 ..
-rw-------  1 root      root      19272 Jan  4 10:07 paperless-mail-fp_1odtv
-rw-------  1 root      root      19272 Jan  4 10:10 paperless-mail-fhzkcbt7
drwxr-xr-x 59 paperless paperless  4096 Jan  4 10:10 .
jonaswinkler commented 3 years ago

Please provide more details about your setup.

If the files from mails show up as being owned by root, this means that the processs that creates these files (python manage.py qcluster) is most likely being run as root, and that should not be the case.

powerwade commented 3 years ago

It was working properly lately, AFAIK I didn't do any change recently, so it is weird to me. The PDF attachement is collected under /tmp/paperless as you see in my previous log above.

I use the following docker setup.


  paperless-broker:
    image: redis:6.0
    restart: always

  paperless:
    image: jonaswinkler/paperless-ng:0.9.11
    restart: always
    depends_on:
      - paperless-broker
    ports:
      - 8666:8000
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8000"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - ./paperless/data:/usr/src/paperless/data
      - ./paperless/Files:/usr/src/paperless/media
      - ./paperless/Out:/usr/src/paperless/export
      - ./paperless/In:/usr/src/paperless/consume
  environment:
      - PAPERLESS_REDIS=redis://paperless-broker:6379
      - PAPERLESS_TIME_ZONE=Europe/Budapest
      - PAPERLESS_FILENAME_FORMAT={created_year}/{correspondent}/{title}
      - PAPERLESS_OCR_LANGUAGE=hun
      - PAPERLESS_OCR_LANGUAGES=hun
      - PAPERLESS_OCR_MODE=skip_noarchive
      - PAPERLESS_CONSUMER_DELETE_DUPLICATES=true
      - PAPERLESS_CONSUMER_RECURSIVE=true
      - PAPERLESS_POST_CONSUME_SCRIPT=/usr/src/paperless/data/notify.sh
      - USERMAP_GID=1000
      - USERMAP_UID=1000
powerwade commented 3 years ago

Ignore me... I was running mailfetch 'manually' through docker as root :(

exec paperless python3 manage.py mail_fetcher

Closing this out.

jonaswinkler commented 3 years ago

Glad you figured it out!