Предотвращение запуска смертоносных / фатальных команд [дубликат]

На этот вопрос уже есть ответ:

После недавнего прочтения статьи " 8 Смертельные команды, которые нельзя запускать в Linux », я планировал каким-то образом блокировать / предотвращать / изменять определенные команды. Я не волнуюсь, что кто-то другой запустит деструктивные команды на моем компьютере. Я беспокоюсь, что могу быть виновником аварии.

Меня беспокоят команды, перечисленные ниже.

wget http://example.com/something -O – | sh –
  • Я запускал эту строку, когда копировал и вставлял команды из руководства . Если бы я заметил sh - , я бы запустил это только после проверки содержимого архива.

rm -rf /
  • Я случайно часто нажимал клавишу «Enter» ...

Я хочу, чтобы эти ошибки не повторялись в будущем. Есть ли файл команды / конфигурации, который может гарантировать, что я не совершу этих ошибок? Я не хочу иметь возможность запускать приведенные выше команды даже с разрешениями sudo / root. Ничего страшного, если решение можно изменить.

Ресурсы, которые помогут мне узнать больше об Ubuntu (за исключением общих ссылок на Ubuntu Wiki / Help / etc.), Были бы очень признательны !

Потеря данных - не моя главная проблема. Я хочу сделать терминал немного безопаснее для себя («с защитой для новичков», если хотите). Это было бы полезно для меня, так как мне нужно многому научиться. Я снова пошел в школу, и я не могу тратить слишком много времени на решение проблем / ошибок (как бы интересно это ни было).

Изменить :

Можно ли запрашивать определенные команды для запроса подтверждения? Если бы я хотел, чтобы для определенных команд требовался специальный пароль, можно ли это сделать?

6
задан 26 October 2017 в 16:40

1 ответ

Как я сказал в комментариях, зная то, что Вы вводите, лучшая безопасность.

Вот пример, который использовался в связанном вопросе

`base64 --decode <<< "cHJpbnRmICclcycgICdIZWxsbyBXb3JsZCcK"`

(и для полноты, можно использовать -d флаг вместо --decode. Кто-то, кто пытался редактировать мой сказанный ответ -d недопустимо, однако это очень допустимо, указано в руководстве),

Вы знаете то, что это делает? Это - замаскированный printf '%s' 'Hello World'. Безопасный, правильно? Что, если это было rm -rf / ? Помещение в черный список не сохранит Вас, когда что-то будет замаскировано. Можно ли видеть, что эта команда устраивает законный форум злонамеренным пользователем? Поскольку это действительно происходит. И это не должно быть точно, что команда - если Вы - новый пользователь и понятия не имеете, что Вы делаете, злонамеренный пользователь, могла сказать об удалении Python или некоторого другого ключевого пакета, и это устранило бы любую проблему, которая принесла Вам к их блогу или форуму.

Но уверенный, Вы могли поместить в черный список что-то через глобальную функцию (потому что функции имеют приоритет по командам или псевдонимам) в /etc/bash.bashrc как это:

function rm{

if [ "$1" = "-rf" ] && [ "$2" = "/" ]
then
    echo "This command is bad juju"
else
    rm "$@"
fi


}

Это - просто пример. И очень избыточный один - rm -rf / на Ubuntu по умолчанию требует подтверждения.

Это является также не пуленепробиваемым. Что, если я как использование взломщика другая оболочка? Ваш bashrc волшебство не будет иметь силы в dash оболочка, которая идет с Ubuntu также по умолчанию

Кроме того, Вы собираетесь записать функцию для помещения в черный список каждой единственной злонамеренной команды?


Дополнительное примечание: копирование, что, кажется, "безопасная" команда, может также быть опасным. Посмотрите, Как я могу защитить меня от этого вида злоупотребления буфера обмена? и ответ Stephane Chazelas на предмете.

14
ответ дан 23 November 2019 в 07:22

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

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