Как отключить WiFi и Ethernet при входе в систему?

Неважно, каким было состояние во время последней сессии. Я хочу, чтобы Wi-Fi и Ethernet были отключены, чтобы каждый раз активно подключаться к внешней сети. Я хочу запретить каждое автоматическое подключение к сети.

Решения должны работать с рабочим столом GNOME и / или рабочим столом Pantheon

Использование Ubuntu 18.04

2 ответа

Решение

Снятие отметки "автоматическое подключение" добавит "autoconnect=false" под блоком "[соединение]" указанного соединения в /etc/NetworkManager/system-connections, Поэтому нужно просто запустить небольшой скрипт, чтобы добавить эту строку ко всем известным соединениям, если ее еще нет:

#!/bin/bash
for f in /etc/NetworkManager/system-connections/*
do
  if [[ -f "${f}" && "$(grep 'autoconnect=false' "${f}")" == "" ]]
  then
    sed -e '/^\[connection\]$/aautoconnect=false' -e '/^\[connection\]$/q' -i "${f}"
  fi
done

В частности, вы хотите, чтобы он запускался до подключения к сети, а также после выхода из режима ожидания / гибернации. Системный сервис disable-autoconnect.service Сделаю:

[Unit]
Description="Service to disable all autoconnections"
Before=network.target
After=sleep.target

[Service]
ExecStart=/path/to/above/script.sh
Type=oneshot

[Install]
WantedBy=sleep.target default.target

Вы можете добавить @ перезагрузку cron Задача запустить скрипт, который отключит все интерфейсы:

  1. sudo crontab -e
  2. добавьте эту строку:

    @reboot /path/to/script

Сценарий:

#!/bin/bash

for interface in `ip link | awk 'FNR%2 == 1 {print substr($2, 1, length($2)-1)}'`; do
    ip link set $interface down
done
Другие вопросы по тегам