Ich habe ein Open Office Spreadsheet-Dokument, das in einer Bash-Variablen gespeichert ist. Ich möchte etwas wie das Folgende tun, um Open Office über STDIN
zu füttern :
echo "$openOfficeDoc" | ooffice
Aber es funktioniert nicht.
Hinweis: Der Inhalt der Bash-Variablen darf nicht auf die Festplatte geschrieben werden.
Ich möchte betonen, dass ich versuche, die tatsächlichen Daten der Datei an Open Office zu übergeben.
Ich versuche, Passwörter in einer Open Office Spreadsheet-Datei zu speichern. Die Passwörter werden mit GPG verschlüsselt. Ich möchte aus Sicherheitsgründen nicht, dass die Passwörter auf die Festplatte geschrieben werden.
Der Bash-Variablenwert ist ein binärer Blob eines Open Office Spreadsheet-Dokuments. Es ist nicht ASCII.
Der Bash-Code, den ich zum Erstellen des Blobs verwendet habe, lautet:
data=$(cat "Encrypted.gpg" | gpg -u "Dor" -d)
Während Encrypted.gpg
ist eine verschlüsselte Datei einer Open Office Spreadsheet.
Ist es möglich, Open Office über STDIN zu füttern?
Akzeptierte Antwort:
Ich glaube nicht, dass OpenOffice überzeugt werden kann, von seiner Standardeingabe zu lesen. Aber das spielt keine Rolle. Schreiben Sie die Daten einfach in eine temporäre Datei.
Sie möchten nicht, dass die Passwörter auf die Festplatte geschrieben werden. Das ist gut. Schreiben Sie sie in eine Datei, die nicht auf der Festplatte gespeichert ist.
Viele Systeme verwenden ein In-Memory-Dateisystem (tmpfs) für /tmp
. Solaris macht das schon seit Ewigkeiten; Linux-Distributionen kommen nur langsam in den Mix (Fedora 18 hat es übernommen, Debian und Ubuntu haben sich immer noch nicht bewegt), daher muss der Systemadministrator es normalerweise manuell einrichten. Moderne Linux-Distributionen mounten jedoch irgendwo ein tmpfs-Dateisystem; neuere Versionen der Standardbibliothek erfordern dies. Der Standardspeicherort für tmpfs ist /run
, mit /run/shm
weltweit beschreibbar sein (gleiche Berechtigungen wie /tmp
), aber einige Distributionen haben es möglicherweise noch nicht; siehe /dev/shm
und vielleicht an anderen Orten.