На этот вопрос уже есть ответ:
После недавнего прочтения статьи " 8 Смертельные команды, которые нельзя запускать в Linux », я планировал каким-то образом блокировать / предотвращать / изменять определенные команды. Я не волнуюсь, что кто-то другой запустит деструктивные команды на моем компьютере. Я беспокоюсь, что могу быть виновником аварии.
Меня беспокоят команды, перечисленные ниже.
wget http://example.com/something -O – | sh –
sh -
, я бы запустил это только после проверки
содержимого архива. rm -rf /
Я хочу, чтобы эти ошибки не повторялись в будущем. Есть ли файл команды / конфигурации, который может гарантировать, что я не совершу этих ошибок? Я не хочу иметь возможность запускать приведенные выше команды даже с разрешениями sudo / root. Ничего страшного, если решение можно изменить.
Ресурсы, которые помогут мне узнать больше об Ubuntu (за исключением общих ссылок на Ubuntu Wiki / Help / etc.), Были бы очень признательны !
Потеря данных - не моя главная проблема. Я хочу сделать терминал немного безопаснее для себя («с защитой для новичков», если хотите). Это было бы полезно для меня, так как мне нужно многому научиться. Я снова пошел в школу, и я не могу тратить слишком много времени на решение проблем / ошибок (как бы интересно это ни было).
Изменить :
Можно ли запрашивать определенные команды для запроса подтверждения? Если бы я хотел, чтобы для определенных команд требовался специальный пароль, можно ли это сделать?
Как я сказал в комментариях, зная то, что Вы вводите, лучшая безопасность.
Вот пример, который использовался в связанном вопросе
`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 на предмете.