Comment supprimer les entrées réseau obsolètes de l'applet de connexion réseau

17

Je vois que je peux supprimer les réseaux que ma machine "se souvient" de nm-applet en cliquant sur l'icône sans fil dans le panneau et en sélectionnant "modifier les connexions" -> "sans fil". Cependant, parfois, je clique sur la mauvaise connexion sans fil par accident dans la liste déroulante. Si la connexion est sécurisée, la machine ne se connecte bien sûr jamais avec succès, mais d'une manière ou d'une autre, elle semble toujours mémoriser l'ESSID. Chaque fois que je suis à portée de ce sans fil, il essaie maintenant de se connecter.

Pire, s'il n'est connecté à aucun autre réseau, il m'invite à plusieurs reprises à me connecter à ce réseau. Sans surveillance, je peux trouver des dizaines de copies de la fenêtre m'invitant à me connecter à ce réseau erroné. Il doit y avoir un fichier quelque part qui enregistre cet ID de connexion, mais je ne le trouve pas. Les seules connexions apparaissant dans les "éditer les connexions" que je mentionne ci-dessus sont celles auxquelles je me suis connecté. Comment trouver le fichier et supprimer la ligne correspondant au réseau "mémorisé" incriminé?

MODIFIER Je cherche une solution pour supprimer ces réseaux de la liste à laquelle ils sont ajoutés lorsque je les sélectionne pour la première fois. Il semble que ce comportement soit un bogue dans le gestionnaire de réseau (?)

cboettig
la source

Réponses:

23

avez-vous essayé de supprimer les fichiers du répertoire /etc/NetworkManager/system-connections/?

Vous devez avoir 1 fichier pour chaque réseau que vous avez essayé de connecter, ouvrir un terminal et utiliser les commandes:

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

Pour répertorier tous les fichiers, après avoir trouvé le réseau que vous souhaitez supprimer, supprimez-les avec la commande:

sudo rm /etc/NetworkManager/system-connections/NETWORK_NAME
ricciocri
la source
Génial merci! Je me demande pourquoi cette liste est différente de celle fournie dans l'interface graphique de l'applet réseau?
cboettig
Cet homme a fonctionné.
Jerric Lyns John
2
Après avoir redémarré, ces noms réapparaissent!
Anwar
6

Vous pouvez supprimer des connexions en utilisant nmcli con delete (CONNECTION_NAME)

Pour supprimer toutes les connexions jamais utilisées (aucune racine requise)

nmcli --fields UUID,TIMESTAMP-REAL con show | grep never |  awk '{print $1}' | while read line; do nmcli con delete uuid  $line;    done
Postadelmaga
la source
Très bonne réponse. Pour supprimer toutes les connexions, procédez comme suit: nmcli --fields UUID, TIMESTAMP-REAL con show | awk '{print $ 1}' | pendant la lecture de la ligne; do nmcli con delete uuid $ line; fait
Nadav B
1

Si votre problème majeur est ces invites ennuyeuses vous demandant de vous connecter à un réseau, alors chaque fois que vous n'utilisez pas le sans fil, vous pouvez simplement désactiver le sans fil en cliquant sur l' Enable Wirelessentrée dans votre menu indicateur de réseau.

Hashken
la source
Oui, c'est ma solution actuelle dans une zone de mauvaise connectivité. Cependant, je ne suis généralement pas invité à moins que j'aie déjà essayé de me connecter à ce réseau. Si je me suis connecté avec succès, je peux le supprimer de la liste et ne pas être invité à ce sujet. Ma question est de savoir où trouver l'enregistrement pour les réseaux qui n'apparaissent pas là-bas mais qui sont clairement mémorisés par la machine. Le fichier d'enregistrement doit exister quelque part
cboettig
0

En ajoutant plus de flexibilité à la réponse précédente de @Postadelmaga, j'ai consacré plus d'efforts à imprimer le nom du SSID supprimé. Cela a ajouté une difficulté: nous devons maintenant éviter la possibilité qu'un nom SSID contenant le mot "jamais" corresponde accidentellement à l'horodatage contenant "jamais".

J'ai également créé une autre fonction qui supprime une connexion par son nom.

Sources à: 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
}

Ensuite, vous pouvez supprimer une connexion spécifique comme indiqué ci-dessous:

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

Supprimer toutes les connexions:

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