Šifrování gpg selhalo: file open error

hlasů
1

Byl jsem jít ořechy s tímto ..

Jsem GnuPG nainstalován na mém CentOS server a pokusu o zašifrování nahrané soubory (nahrané přes stránky PHP). Na serveru pomocí příkazového řádku, funguje to perfektně. Ale přes php skript, se nezdaří s touto chybou:

gpg: /path-to-my-file/my-file: encryption failed: file open error

Uživatel apache (což myslím, že je použita ke spuštění příkazu exec) má čtení / zápis do adresáře souboru.

Soubor je nahrán v pořádku (Vidím to později, když jsem odstranil vypuštění nešifrovaný soubor z mého kódu) a mohou být odstraněny správně prostřednictvím webu php.

Příkaz Vedu je následující

/path-to-gpg/gpg --homedir=/path-to-my-home-gnupg/.gnupg -e -r therecipient@email the-unencrypted-file

Nějaký nápad, jak bych mohl řešit to? dík

Položena 19/07/2011 v 04:57
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
1

Pár věcí ke kontrole:

  • Spustit system("ls " . escapeshellarg($file))a zkontrolovat výsledek - je to soubor nebyl nalezen? Přístup odepřen? Který vám pomůže při ladění.
  • Běžet system("whoami"), aby se ujistil PHP běží jako kdo si myslí, že je.
  • Spustit echo "<pre>ls " . escapeshellarg($file) . "</pre>"zkopírujte + vložte příkaz, a spusťte jej z pláště, aby se ujistil, že cesta k souboru je to, co jste očekávali, že je.

Také se domnívám, CentOS spustí SELinux standardně ... Máte-li nainstalován, zkontrolujte protokoly (v /var/log/), aby zjistil, zda SELinux brání Apache z provádění GPG.

Odpovězeno 19/07/2011 v 05:04
zdroj uživatelem

hlasů
0

Zkuste spustit příkaz s aktuálními Apache uživatelskými oprávněními v režimu s komentářem:

su apache -c /path-to-gpg/gpg -vv ...
Odpovězeno 19/07/2011 v 05:06
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more