Tengo un script bash ejecutable (.bash_history_cleaner) que limpia mi historial de bash
#!/bin/bash
cat /dev/null > ~/.bash_history && history -c && exit
Quiero ejecutar este script al apagar o reiniciar el sistema y lo seguíesta respuesta que usa systemdcon el nombre del servicio como bash_history_cleaner.service
y lo habilitó en systemctl. El servicio está en funcionamiento,
[Unit]
Description=Bash History Cleaner
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/home/eka/Scripts/.bash_history_cleaner
[Install]
WantedBy=multi-user.target
Su comportamiento previsto debería ser limpiar mi historial de bash al apagar o reiniciar. Pero no funciona, apagué y reinicié el sistema muchas veces pero el script no se ejecuta. ¿Cómo ejecutamos un script bash antes de apagar usando systemd?
Respuesta1
¿Por qué no aprovechar el sistema Linux y su /tmp
directorio para almacenarlo .bash_history
en un lugar más volátil?
Para cambiar la ubicación de su .bash_history
archivo, debe configurar la HISTFILE
variable. Para eliminar el archivo cada reinicio, coloque el archivo en el /tmp/
directorio.
Puede agregar algo como lo siguiente a su ~/.bashrc
archivo para que estas configuraciones persistan:
HISTFILE=/tmp/.bash_history
Puede confirmar que otros usuarios no pueden leer su historial consultando los permisos del archivo de historial creado:
ls -lsa /tmp/.bash_history
Esto hará que el historial de su usuario se elimine al reiniciar, pero no afectará a los demás. Puede configurar estos archivos de configuración a nivel del sistema, como /etc/bash.bashrc
si realmente lo desea. Tu puedes inclusoponer /tmp
en la RAMpara asegurarse de que se aclare.