[英]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/srm
將srm
添加到我的/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.