Назад | Перейти на главную страницу

PDFTK: невозможно открыть файл для вывода

Я использую PDFTK для водяных знаков PDF-файлов с помощью следующей команды:

pdftk /tmp/55180af7c8c88.pdf stamp /tmp/stamp55180af7c95b84.58412952.pdf output /tmp/55180af7c95c81.06110501.pdf

Однако приведенное выше приводит к:

Error: Failed to open output file:
   /tmp/55180af7c95c81.06110501.pdf
   No output created.
Error: unable to open file for output: /tmp/55180af7c95c81.06110501.pdf

Вышеупомянутая ошибка является странной, потому что PDFTK должен создавать этот выходной файл!

Если я положу sudo перед командой ошибка не выдается. Но я пишу в папку tmp, и это все, что я думал?

Я запускаю PDFTK из PHP exec команда. Чтобы быть на 100% уверенным, что это не проблема с разрешениями, я сделал /tmp владелец папки и группа будут www-data, который является пользователем apache, но возникает та же ошибка.

Теперь я понятия не имею, что происходит, я ценю любую помощь!

Вы не должны возиться с разрешениями для /tmp. Это важная часть системы. Я подозреваю, что причина в твоем pdftk команда не работает, потому что /tmp неправильно настроен. Чтобы восстановить разрешения на tmp выполните следующие команды от имени root:

chown root:root /tmp
chmod 1777 /tmp

В результате останутся разрешения и владелец / группа /tmp выглядит так:

ls -ld /tmp
drwxrwxrwt 6 root root 12288 Mar 29 18:05 /tmp

На основании дальнейшего расследования я подозреваю, что теперь у нас есть /tmp разобрались, причина того, что pdftk Ошибка заключается в том, что выходной файл уже существует, но не может быть записан приложением. (Ожидает обновления в комментариях.)

У вас включен selinux? Посмотри на этот предыдущий вопрос и ответ, пожалуйста.

Я редактирую это после вашего любезного комментария о том, что SELinux / AppArmor не актуален. На твоем месте, и это длинный выстрел, Я бы посмотрел на файловую систему, которую вы используете для / tmp. Если это не tmpfs и он почти заполнен, у вас могут возникнуть проблемы, подобные описанной вами. Как вы, наверное, знаете, как только файловая система приближается к заполнению, она позволяет только root писать в нее.

Опять же, надеюсь, это поможет!