當串流目前正在加密時,我可以刪除使用 --keyring 指定的 GPG 金鑰環嗎?

當串流目前正在加密時,我可以刪除使用 --keyring 指定的 GPG 金鑰環嗎?

我有一個項目,我正在加密流,如下所示:

some_command | gpg --keyring tempkeyring.gpg --recipient "person" --output filename.gpg --encrypt

因此,當流正在發生且加密已經開始時,刪除目前使用的金鑰環是否會損害該過程?密鑰環是臨時的,每次腳本運行時都會重新建立。我猜測核心仍然允許系統存取該文件,一旦 gpg 完成它,它將釋放空間。 gpg 會崩潰還是會很好地完成加密?

作業系統是 Linux RHEL 和 CentOS 核心 2.6+(如果有差別的話)。

答案1

我進行了調查,雖然這回答了 Linux 核心的問題,但它絕不包含其他作業系統或檔案系統。

gpg不在乎。我懷疑它會像系統中的任何其他刪除一樣對待這一點。在 *nix 環境中,當您刪除檔案時,您實際上是在「取消連結」該檔案。當您刪除某個檔案的所有連結時,系統將刪除該檔案並釋放空間。 Linux(和 Unix,我確信......)內核所做的是取消文件鏈接,然後檢查是否有任何程式正在使用這些文件,如果有,它們會等到使用它的程式關閉,然後釋放空間通過真正刪除檔案。由於該文件已經取消鏈接,因此沒有其他人能夠訪問該文件,但是當前打開的應用程式只要不嘗試按名稱訪問該文件並且僅使用當前打開的句柄,就不會出現問題。

相關內容