Ein Passwort ist in meiner psql-Eingabeaufforderung sichtbar (durch Drücken des Pfeils nach oben, um die zuvor eingegebenen Befehle anzuzeigen). Also möchte ich diesen Eintrag aus dem Psql-Client löschen.
Andere Ressourcen ( 1 , 2 ) behaupten, dass der Psql-Clientverlauf in einer ~/.psql_history
-Datei gespeichert wird. Diese Datei ist jedoch einfach nicht vorhanden. (es ist auch nicht in .bash_history
)
Also es muss eine andere Datei geben, in der die Historie von psql Prompt aufbewahrt wird und welche Ideen wo?
Hinweis: Ich arbeite an Ubuntu 12.04
Wenn Sie verwenden:
Sudo -u postgres psql my_db
wenn Sie psql als (Linux) Benutzer postgres
ausführen, befindet sich die .psql_history
-Datei im Ausgangsverzeichnis des postgres-Benutzers (z. B. /home/postgres/.psql_history
), nicht im Ausgangsverzeichnis des Benutzers, mit dem Sie sich ursprünglich angemeldet haben.
In einigen Installationen lautet der Ort des Home-Verzeichnisses postgres
/var/lib/postgresql
. Sie können dies überprüfen, indem Sie Folgendes ausführen:
grep postgres /etc/passwd | cut -d ':' -f 6
Der Dateiname wird durch eine interne Variable mit dem Namen HISTFILE
..__ angegeben. Technisch muss es nicht ~/.psql_history.
sein.
Überprüfen Sie die ~/.psqlrc
-Datei auf eine andere Einstellung. Zum Beispiel könnte es sein:
\ set HISTFILE ~/.psql_history-: DBNAME
wie im manual für eine Datenbankdatei pro Datenbank erwähnt.
Ich habe hier einen Server (Amazon Linux AMI, Centos like), der keinen Postgres-Home-Ordner hat. Es erinnert sich immer noch an die Geschichte von psql. Mit dem Befehl locate
habe ich die Protokolldatei in /var/lib/pgsql93/.psql_history
gefunden. Auf einem anderen Rechner ist es in /var/lib/pgsql/
. Nach dem Bearbeiten dieser Datei und dem Entfernen aller relevanten Zeilen war der Verlauf weg.
Wenn der Befehl locate keine Ergebnisse zurückgibt, erstellen Sie die Datenbank mit dem Befehl updatedb
für den Befehl locate. Sie können diese Befehle nicht als Benutzer postgres btw ausführen.
Sie müssen /etc/passwd.Put. Den Ort Ihres pgsql-Ordners in der postgres-Zeile ändern und versuchen: cut -d ':' -f 6