Como faço para remover entradas de rede obsoletas do miniaplicativo de conexão de rede

17

Vejo que posso excluir as redes que minha máquina "lembra" do nm-applet clicando no ícone sem fio no painel e selecionando "editar conexões" -> "sem fio". No entanto, às vezes clico na conexão sem fio errada por acidente na lista suspensa. Se a conexão estiver segura, é claro que a máquina nunca se conecta com êxito, mas de alguma forma ainda parece memorizar o ESSID. Sempre que estou ao alcance dessa conexão sem fio, ela agora tenta se conectar.

Pior, se não estiver conectado a nenhuma outra rede, ele solicita várias vezes que eu me conecte a esta rede. Se não for atendido, posso encontrar dezenas de cópias da janela solicitando que eu efetue login nesta rede incorreta. Deve haver um arquivo em algum lugar que registre esse ID de conexão, mas não consigo encontrá-lo. As únicas conexões que aparecem nas "conexões de edição" mencionadas acima são aquelas às quais eu realmente me conectei. Como localizo o arquivo e excluo a linha correspondente à rede "memorizada" ofensiva?

EDIT Procuro uma solução para remover essas redes de qualquer lista em que elas forem adicionadas quando eu as seleciono pela primeira vez. Parece que esse comportamento é um bug no gerenciador de rede (?)

cboettig
fonte

Respostas:

23

você tentou excluir os arquivos no diretório /etc/NetworkManager/system-connections/?

Você deve ter 1 arquivo para cada rede que tentou conectar, abra um terminal e use os comandos:

sudo ls -l /etc/NetworkManager/system-connections/

Para listar todos os arquivos, depois de encontrar a rede que deseja excluir, remova-os com o comando:

sudo rm /etc/NetworkManager/system-connections/NETWORK_NAME
ricciocri
fonte
Incrível, obrigado! Gostaria de saber por que essa lista é diferente da fornecida na GUI do Applet de rede?
cboettig
Isso funcionou.
Jerric Lyns John
2
Após a reinicialização, esses nomes reaparecem novamente!
Anwar
6

Você pode excluir conexões usando nmcli con delete (CONNECTION_NAME)

Para excluir toda a conexão nunca usada (nenhuma raiz é necessária)

nmcli --fields UUID,TIMESTAMP-REAL con show | grep never |  awk '{print $1}' | while read line; do nmcli con delete uuid  $line;    done
Postadelmaga
fonte
Ótima resposta. Para remover todas as conexões, faça o seguinte: nmcli --fields UUID, TIMESTAMP-REAL con show | awk '{print $ 1}' | enquanto lê linha; nmcli con excluir uuid $ line; feito
Nadav B
1

Se o seu maior problema são as solicitações irritantes que solicitam que você faça login em uma rede, sempre que não estiver usando o Wireless, basta desativar o Wireless clicando na Enable Wirelessentrada do menu Indicador de rede.

Hashken
fonte
Sim, essa é a minha solução atual em uma área de conectividade ruim. No entanto, geralmente não sou solicitado, a menos que tenha tentado conectar-me a essa rede antes. Se eu me conectei com êxito, posso excluí-lo da lista e não ser avisado sobre isso. Minha pergunta é sobre onde encontrar o registro para redes que não aparecem lá, mas são claramente memorizadas pela máquina. O arquivo de registro deve existir em algum lugar
Cboettig
0

Adicionando mais flexibilidade à resposta anterior de @Postadelmaga, dediquei mais esforços à impressão do nome do SSID que está sendo removido. Isso acrescentou uma dificuldade: agora temos que evitar a possibilidade de um nome SSID contendo a palavra "nunca" coincidir acidentalmente com o carimbo de data / hora que contém "nunca".

Eu também criei outra função que remove uma conexão pelo nome.

Fontes em: https://github.com/frgomes/debian-bin/blob/master/bash_20nm.sh

#!/bin/bash

function nmcli_list {
  nmcli --pretty --fields NAME,UUID,TIMESTAMP-REAL con show
}

function nmcli_remove {
  if [ ! -z "$1" ] ;then
    nmcli --fields NAME con show | \
      grep "$@" | \
        while read name ;do 
          echo Removing SSID "$name"
          nmcli con delete "$name"
        done
  fi
}

##################################################################################
# The intent here is avoid that a connection named "never drive after you drink" #
# matches a timestamp "never". So, we have to make sure that we match colon      #
# followed by "never" followed by spaces and/or tabs and finally an end of line. #
#                                                                                #
# WARNING: However, I didn't get a chance to test this scenario.                 #
#          So, I provide this code the way it is, in the hope that I've covered  #
#          well the behavior from some other simulations I did.                  #
##################################################################################

function nmcli_remove_never_used {
  nmcli --terse --fields NAME,TIMESTAMP-REAL con show | \
    egrep -e ':never[ \t]*$' | \
      sed -r 's/:never[ \t]*$//' | \
        while read name ;do
          echo Removing SSID "$name"
          nmcli con delete "$name"
        done
}

Em seguida, você pode excluir uma conexão específica, como mostrado abaixo:

$ nmcli_remove ScalaX
$ nmcli_remove "My WiFi @ Home"
$ nmcli_remove "never drive after you drink"
Richard Gomes
fonte
0

Exclua todas as conexões:

nmcli --pretty --fields UUID,TYPE con show | grep wifi | awk "{print $1}" | while read line; do nmcli con delete uuid  $line; done
user3377121
fonte