Скрипты Ubuntu Nautilus не будут запускать srm для безопасной очистки файла

Я пытаюсь добавить параметр контекстного меню в Nautilus, чтобы при щелчке правой кнопкой мыши по файлу я мог запустить srm, чтобы безопасно перезаписать его нулями вместо перемещения в /Trash или < эм>рм это. У меня есть следующий исполняемый файл в ~/.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 для более быстрой, хотя и более небезопасной очистки.

Но это не работает. Нет вывода, нет всплывающего предупреждения.

Когда я echo "$filetosrm" >> somefile.txt получаю результат, я знаю, что переменная установлена. Я также могу без проблем использовать srm в терминале.

Что я делаю неправильно?

Большое спасибо!

P.S. Пробовал запускать srm с помощью gksu, pkexec, | xargs и т. д. безрезультатно.


person realWhiteRabbit    schedule 02.07.2020    source источник
comment
он работает без sudo? затем экспортируйте filetosrm=...   -  person alecxs    schedule 02.07.2020
comment
Нет @alecxs, к сожалению, нет.   -  person realWhiteRabbit    schedule 03.07.2020
comment
askubuntu.com/q/57915 stackoverflow.com /q/8633461   -  person alecxs    schedule 03.07.2020


Ответы (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. Теперь я могу щелкнуть файл правой кнопкой мыши, а затем перейти в Сценарии -> SRM и стереть файл с нулями прямо в графическом интерфейсе, вместо того, чтобы rm'ировать его или перемещать в корзину.

person realWhiteRabbit    schedule 04.07.2020