Как сделать ключи GPG доступными для PHP shell_exec

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

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

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

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

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

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


person Stephen RC    schedule 26.08.2010    source источник


Ответы (2)


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

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

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

person timdev    schedule 26.08.2010
comment
это должно быть --homedir, а не --home-dir, по крайней мере, в моей версии gpg 2.0.8 - person Graham Chiu; 18.03.2013

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

su apache -s /bin/ksh

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

chmod a+w /var/www

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

person Ole    schedule 07.04.2015