簡體   English   中英

Ubuntu — Nautilus 腳本不會運行“srm”來安全擦除文件

[英]Ubuntu — Nautilus scripts won't run “srm” to securely wipe file

我正在嘗試向 Nautilus 添加上下文菜單選項,以便當我右鍵單擊文件時,我可以選擇運行srm以用零安全地覆蓋它,而不是將其移動到 /Trash 或rm 我在 ~/.local/share/nautilus/scripts 中有以下可執行文件

#!/bin/bash

#Make local Nautilus filepath variable global
export srmthis=$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS

#Copy the above variable to a log
echo "$srmthis" >> logfile.txt

#Now, please srm secure-delete the file indicated in the filepath
sudo -E /usr/bin/srm -flz "$srmthis"

$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS是 Nautilus 在其中選擇文件時設置的變量。 我的想法是,我會將它抓取到我自己的變量$srmthis 中,然后將其作為目標文件傳遞給srm ,並帶有選項“-flz” ,以實現更快但更不安全的擦除。

但它不起作用。 沒有 output,沒有彈出警告。

當我echo "$filetosrm" >> somefile.txt我確實得到了 output 所以我知道變量已設置。 我也可以在終端中單獨使用srm沒問題。

我究竟做錯了什么?

非常感謝!

PS 嘗試使用 gksu、pkexec、| 運行 srm xargs 等無濟於事。

想通了。 這是有效的新代碼:

#!/bin/bash

#Make local Nautilus filepath variable global
srmthis=$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS

#Copy the above variable to a log
echo "$srmthis" >> srmtemp.txt

#Get the first line from temp file to get rid of annoying newline
line=$(head -n1 srmtemp.txt)

#Wipe the file with srm: -fllz fast mode, -r recursively for any subdirectories
/usr/bin/srm -fllzr "$line"

#Clean up
/usr/bin/srm -l srmtemp.txt

此外,我最終沒有使用sudo /usr/bin/srmsrm添加到我的/etc/sudoers為我的用戶名whiterabbit ALL = (root) NOPASSWD: /usr/bin/srm允許它運行而無需擁有腳本中的命令sudo

這會將srm添加為 Nautilus 腳本。 我現在可以右鍵單擊一個文件,然后在 go 到Scripts -> SRM並在 GUI 中用零擦除文件,而不是 rm'ing 或將其移動到垃圾箱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM