Un mot de passe est visible dans mon invite psql (en appuyant sur la flèche vers le haut pour afficher les commandes entrées précédemment). Je voudrais donc supprimer cette entrée du client psql.
D'autres ressources ( 1 , 2 ) affirment que l'historique du client psql est conservé est un fichier ~/.psql_history
, mais ce fichier n'y est tout simplement pas. (ce n'est pas dans .bash_history
non plus)
Donc il doit y avoir un autre fichier où l’historique de psql Prompt est conservé, des idées où?
Note: je travaille sur Ubuntu 12.04
Quand vous utilisez:
Sudo -u postgres psql my_db
vous exécutez psql en tant qu'utilisateur (Linux) postgres
; le fichier .psql_history
se trouve donc dans le répertoire de base de l'utilisateur postgres (par exemple, /home/postgres/.psql_history
) et non dans le répertoire de base de l'utilisateur avec lequel vous vous êtes connecté.
Dans certaines installations, l'emplacement du répertoire de base de l'utilisateur postgres
est /var/lib/postgresql
. Vous pouvez vérifier cela en exécutant:
grep postgres /etc/passwd | cut -d ':' -f 6
Le nom de fichier est donné par une variable interne nommée HISTFILE
. Techniquement, il n'est pas nécessaire que ce soit ~/.psql_history.
Recherchez dans le fichier ~/.psqlrc
un autre paramètre. Par exemple, cela pourrait être:
\ set HISTFILE ~/.psql_history-: DBNAME
comme indiqué dans manual pour un fichier d'historique par base de données.
J'ai un serveur ici (AMI Amazon Linux, Centos like) qui n'a pas de dossier personnel Postgres. Pourtant, il se souvient de l'histoire de psql. En utilisant la commande locate
, j'ai trouvé le fichier d'historique situé dans /var/lib/pgsql93/.psql_history
. Sur une autre machine, c'est en /var/lib/pgsql/
. Après l'édition de ce fichier, en supprimant toutes les lignes pertinentes, l'historique était parti.
Lorsque la commande de localisation ne renvoie pas de résultats, utilisez la commande updatedb
pour créer la base de données de la commande de localisation. Vous ne pouvez pas exécuter ces commandes en tant qu'utilisateur postgres btw.
Vous devez modifier /etc/passwd. Indiquez l'emplacement de votre dossier pgsql sur la ligne postgres et essayez: Grep postgres/etc/passwd | cut -d ':' -f 6