【问题标题】:Ubuntu -- Nautilus scripts won't run "srm" to securely wipe fileUbuntu -- Nautilus 脚本不会运行“srm”来安全擦除文件
【发布时间】:2020-10-22 14:37:51
【问题描述】:

我正在尝试向 Nautilus 添加上下文菜单选项,以便当我右键单击文件时,我可以选择运行 srm 以安全地用零覆盖它,而不是将其移动到 /垃圾或rm'ing它。我在 ~/.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" em> 用于更快但更不安全的擦除。

但它不起作用。没有输出,没有弹出警告。

当我echo "$filetosrm" >> somefile.txt 时,我确实得到了一个输出,所以我知道变量已设置。我也可以在终端自己使用 srm 没问题。

我做错了什么?

非常感谢!

附:尝试使用 gksu、pkexec、| 运行 srm xargs 等都无济于事。

【问题讨论】:

标签: linux bash nautilus


【解决方案1】:

想通了。这是有效的新代码:

#!/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 脚本。我现在可以右键单击一个文件,然后转到 Scripts -> SRM 并直接在 GUI 中用零擦除该文件,而不是 rm'ing 或将其移动到垃圾箱。

【讨论】:

    猜你喜欢
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多