我有一個可執行的 bash 腳本 (.bash_history_cleaner),它可以清理我的 bash 歷史記錄
#!/bin/bash
cat /dev/null > ~/.bash_history && history -c && exit
我想在系統關閉或重新啟動時執行此腳本並遵循這個答案使用了systemd服務名稱為 asbash_history_cleaner.service
並在 systemctl 中啟用它。服務已啟動並運行,
[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
它的預期行為應該是在關閉或重新啟動時清除我的 bash 歷史記錄。但它不起作用,我多次關閉並重新啟動系統,但腳本沒有執行。我們如何使用 systemd 在關機前執行 bash 腳本?
答案1
為什麼不利用 Linux 系統及其/tmp
目錄將您的檔案儲存.bash_history
在更不穩定的地方呢?
要更改文件的位置.bash_history
,您需要設定HISTFILE
變數。若要在每次重新啟動時刪除該文件,請將文件放置在該/tmp/
目錄中。
您可以將以下內容新增到您的~/.bashrc
檔案中,以便這些設定持續存在:
HISTFILE=/tmp/.bash_history
您可以透過檢查建立的歷史文件的檔案權限來確認其他使用者無法讀取您的歷史記錄:
ls -lsa /tmp/.bash_history
這將導致您的用戶歷史記錄在重新啟動時被刪除,但不會影響其他人。/etc/bash.bashrc
如果您確實需要,您可以設定此系統級設定檔。你甚至可以放入/tmp
內存以確保其已清除。