Mám dokument Open Office Spreadsheet uložený uvnitř proměnné bash. Chci udělat něco jako následující, abych napájel Open Office přes STDIN
:
echo "$openOfficeDoc" | ooffice
Ale to nefunguje.
Poznámka: Obsah proměnné bash nesmí být zapsán na disk.
Zdůrazňuji, že se snažím předat Open Office skutečná data souboru.
Snažím se uložit hesla do souboru Open Office Spreadsheet. Hesla jsou šifrována pomocí GPG. Z bezpečnostních důvodů nechci, aby se hesla zapisovala na disk.
Hodnota proměnné bash je binární blob dokumentu Open Office Spreadsheet. Není ASCII.
Bash kód, který jsem použil k vytvoření blobu, je:
data=$(cat "Encrypted.gpg" | gpg -u "Dor" -d)
Zatímco Encrypted.gpg
je zašifrovaný soubor tabulky Open Office.
Je možné napájet Open Office přes STDIN?
Přijatá odpověď:
Nemyslím si, že OpenOffice lze přesvědčit, aby četl ze svého standardního vstupu. Ale to je jedno. Stačí zapsat data do dočasného souboru.
Nechcete, aby se hesla zapisovala na disk. To je v pořádku. Zapište je do souboru, který není uložen na disku.
Mnoho systémů používá souborový systém v paměti (tmpfs) pro /tmp
. Solaris to dělá už věky; Linuxové distribuce se do mixu dostávaly pomalu (Fedora 18 to přijala, Debian a Ubuntu se stále nepohnuly), takže obvykle vyžaduje, aby to správce systému nastavil ručně. Moderní linuxové distribuce však někde připojují souborový systém tmpfs; nejnovější verze standardní knihovny to vyžadují. Standardní umístění pro tmpfs je /run
, s /run/shm
je světově zapisovatelný (stejná oprávnění jako /tmp
), ale některé distribuce jej ještě nemusí mít; podívejte se na /dev/shm
a možná i na dalších místech.