Существует известная проблема взаимодействия между использованием некоторых программных решений VPN и resolvconf
.
resolvconf
превращает /etc/resolv.conf
в символическую ссылку и использует другое расположение для разрешения DNS под /run/resolvconf/resolv.conf
.
В вашем случае VPN удаляет и заменяет /etc/resolv.conf
без учета текущей настройки. Такую символическую ссылку необходимо восстанавливать каждый раз после использования VPN, или, как вариант, удалить пакет resolvconf
в качестве временной меры.
Я бы также сообщил об ошибке производителю программного обеспечения VPN.
Возможно
function sudo()
{
command sudo -v
if [[ $(type -t "$1") == "alias" ]]; then
set -- bash -ic "$(alias "$1"); $(printf "%q " "$@")"
fi
# what am I about to execute
printf "%q " sudo "$@"; echo
# and do it
command sudo "$@"
}
Хотя Камил alias sudo='sudo -v; sudo '
работает так же хорошо, как и ответ Гленна, а именно расширение первого слова после sudo, если это псевдоним; «слепое» расширение псевдонимов можно рассматривать как проблему безопасности.
В свете возможной конфигурации для visudo
из
/etc/sudoers:
Defaults editor=/usr/bin/nvim, !env_editor
который игнорирует EDITOR
переменную окружения (в равной степени представляет угрозу безопасности )и всегда открывает /etc/sudoers
с /usr/bin/nvim
можно было бы использовать следующее bash также (предполагает, что вы имеете привычку печатать vi
в качестве редактора):
~/.bashrc:
sudo ()
{
command sudo -nv 2> /dev/null;
COMMAND="$1";
shift;
[ "$COMMAND" = "vi" ] && COMMAND="/usr/bin/nvim";
command sudo "$COMMAND" "$@"
}
что также позволит
sudo vi /etc/fstab
, но всегда используйте /usr/bin/nvim
, не расширяя псевдоним.
Также обратите внимание на использование sudo -nv
вместо sudo -v
. Это делается для того, чтобы последний не запрашивал пароль, когда реальная команда не требует его.