Как и было сказано, эта функция-оболочка предотвратит одну конкретную ошибку для этого пользователя.:
function rm {
if [ "$#" -eq 2 ] && [ "$1" = "-rf" ] && [ "$2" = "$HOME" ]
then
echo Avoiding a dangerous command...
return
else
command rm "$@"
fi
}
... поскольку bash заменит rm -rf ~
на rm -rf $HOME
, если $HOME установлен (домашний каталог пользователя, в противном случае ).
Однако это не предотвратит очень много ошибок. Вы можете расширить тест, чтобы перебирать параметры и проверять каждый из них на предмет того, является ли он подмножеством $HOME
или чем-то еще, с чем вы пытаетесь быть осторожным.
Это не защитит пользователя от выполнения rm -rf./*
, \rm -rf ~
, sudo rm -rf ~
или целого ряда других вариантов.
В качестве решения проблемы я добавил
qr(^/tmp/jna-),
с по $nrconf{blacklist_mappings}
в /etc/needrestart/needrestart.conf
.