Как сделать ключи GPG доступными для PHP shell_exec - PullRequest
3 голосов
/ 26 августа 2010

Я работаю над сценарием, который должен запускать сценарий perl через командную строку (используя shell_exec()).Чтобы настроить скрипт, мне нужно было сгенерировать ключ GPG на моем конце и импортировать их открытый ключ в мое кольцо ключей GPG.

Скрипт perl прекрасно работает, когда я запускаю его как пользователь ROOT, но при запускеPHP выдает это сообщение об ошибке:

«Произошла ошибка при попытке подписать запрос»

Я предполагаю, что это означает, что ключи GPG, которые я настроил в моемПользователь root недоступен для пользователя. PHP выполняет свои команды оболочки под (т.е. apache).

Как мне решить эту проблему?

Я не знаю, нужно ли мне входить в системукак apache и импортируйте ключи, или если есть команда для запуска от имени пользователя root, чтобы позволить им поделиться с пользователем apache ... Любые идеи были бы хороши:)

Ответы [ 2 ]

3 голосов
/ 08 апреля 2015

вы можете запустить оболочку от имени пользователя apache следующим образом:

su apache -s /bin/ksh

, затем вы можете инициализировать GPG.Обратите внимание, что домашним каталогом по умолчанию для apache является / var / www, вам может потребоваться:

chmod a+w /var/www

, чтобы разрешить GPG создавать подкаталог .gnupg

2 голосов
/ 26 августа 2010

Правильно.Очевидно, вы не хотите, чтобы какой-нибудь простой смертный пользователь, такой как «apache», мог подписывать вещи как root!

Так что вы захотите настроить GPG для пользователя apache.Обычно это болезненно, поскольку пользователь apache, как правило, не может получить оболочку.

Я бы попытался настроить каталог /home/<apache-user>, если он не существует (вероятно, нет).Затем попробуйте настроить GPG для пользователя apache.Вы, вероятно, можете заставить его работать как root, передав --homedir=/home/<apache-user> в двоичный файл gpg.

...