Как заставить оболочку запрашивать подтверждение команды rm -rf (даже sudo)?

Я хочу, чтобы командная оболочка запрашивала у меня подтверждение перед выполнением некоторых команд, таких как dd, rm -rf и т. Д.

3
задан 25 April 2016 в 18:56

3 ответа

Я думаю safe-rm, сделает работу

apt install safe-rm

, Безопасная комната является инструментом безопасности, предназначенным для предотвращения случайного удаления важных файлов.

$ rm -rf /usr
Skipping /usr
1
ответ дан 26 April 2016 в 04:56
  • 1
    Я don' t, кажется, имеют Workspace Naming доступный в моем менеджере по Настройкам Compiz. I' m на 16,04, если это имеет значение. – GameKyuubi 21 September 2017 в 03:48

Можно создать сценарий удара, которые спрашивают подтверждение и затем запускают desidered программу. Создайте названный файл, спрашивают содержащий:

#!/bin/bash 
echo "Are you sure to run $1 command?"
read RES
if [ "$RES" = "Y" ] || [ "$RES" = "y" ] ; then
    echo "Running the command..."
    $@
else
    echo "Command aborted"
fi

Копия спрашивает сценарий в/usr/bin/и установила его как исполняемый файл (или добавляют сценарий соедините переменную ПУТИ tho каналом):

sudo mv path_to_ask_script/ask /usr/bin/ask
cd /usr/bin/
sudo chmod 777 ask

Затем необходимо создать псевдоним в ~/.bashrc файл:

alias dd='ask dd'

Теперь путем ввода dd, спросить сценарий должен быть выполнен, попросить подтверждение и в конечном счете называть команду dd.

Для расширения на другую команду просто добавляют псевдоним как:

alias command_name='ask command_name' как пример: alias rm='ask rm'

Для комнаты управляют, чтобы можно было просто создать псевдоним как: alias rm='rm -i'

Сценарий, который попробовали и полностью рабочий на 16,04 с терминалом гнома

1
ответ дан 26 April 2016 в 04:56
  • 1
    Я установил дополнения для получения работы Именования Рабочей области, но этого wasn' t вполне, что I' m поиск. Я пытался установить indicator-workspaces, но это doesn' t, кажется, больше размещаются: ( – GameKyuubi 21 September 2017 в 04:09

Можно сделать следующее, если Вы действительно хотите использовать те команды только в качестве sudo:

Переходят в /bin (пример, большинство команд здесь), так:

cd /bin
# example how to make dd to posibly only for root/sudo (744)
sudo chmod go-x dd
# or even go further restrict the access to the file fully to root (700)
sudo chmod go-rx dd
# to reverse that setting you did do (755)
sudo chmod go+rx dd 

Это удаляет исполняемые флаги из тех команд для группы и другого. Можно сделать это почти со всеми командами, и это до говорит, что у Вас нет разрешения если не с помощью sudo.

Правовая оговорка: не Делайте, я подразумеваю, что это, НЕ ДЕЛАЕТ полномочия изменения на sudo или su, Вы могли бы заблокировать Вас из существенного материала, и wwould нелегко фиксировать.

0
ответ дан 26 April 2016 в 04:56

Другие вопросы по тегам:

Похожие вопросы: