Где хранится список точек доступа?

Да - согласно документации - перетасовка файла на месте должна быть безопасной:

-o output-file
- output = output-file
Записать вывод в файл вывода вместо стандартного вывода. shuf считывает весь ввод перед открытием файла вывода , поэтому вы можете безопасно перетасовать файл на месте, используя такие команды, как shuf -o F и кот F | shuf -o F .

2
05.09.2017, 11:16
1 ответ

Быстро взглянув на исходный код nmcli( $ apt-get source network-manager), можно увидеть структуру, содержащую информацию о точке доступа ( src/devices/wifi/ nm-wifi-ap.c) хранится в энергозависимой памяти (я не уверен, распределена ли структура по распределению или статически, но я бы выбрал первое).

Структура такая (на самом деле их две):

typedef struct {
char *supplicant_path;   /* D-Bus object path of this AP from wpa_supplicant */

/* Scanned or cached values */
GByteArray *       ssid;
char *             address;
NM80211Mode        mode;
guint8             strength;
guint32            freq;        /* Frequency in MHz; ie 2412 (== 2.412 GHz) */
guint32            max_bitrate; /* Maximum bitrate of the AP in Kbit/s (ie 54000 Kb/s == 54Mbit/s) */

NM80211ApFlags         flags;      /* General flags */
NM80211ApSecurityFlags wpa_flags;  /* WPA-related flags */
NM80211ApSecurityFlags rsn_flags;  /* RSN (WPA2) -related flags */

/* Non-scanned attributes */
bool                fake:1;       /* Whether or not the AP is from a scan */
bool                hotspot:1;    /* Whether the AP is a local device's hotspot network */
gint32              last_seen;  /* Timestamp when the AP was seen lastly (obtained via nm_utils_get_monotonic_timestamp_s()) */
} NMWifiAPPrivate;

struct _NMWifiAP {
    NMExportedObject parent;
    NMWifiAPPrivate _priv;
};

Я не копал код глубоко, поэтому могу ошибаться, но я полагаю, что эта структура выделяется и выполняется, когда мы вызываем nmcli device wifi list , а затем уничтожается при завершении команды. Возможно, есть более сложные функции, которые подразумевают «сохранение состояния» в каком-то файле или дампе памяти, но я не могу сказать прямо сейчас.

Не могу сказать про iwlist (код не смотрел).

Я бы разместил это как комментарий, так как на самом деле это не ответ, но он явно слишком длинный.

ОБНОВЛЕНИЕ

Глядя на страницу nmcli github , там говорится:

Демон NetworkManager работает как привилегированная служба (поскольку он должен аппаратное обеспечение доступа и управления), но обеспечивает интерфейс D-Bus на системная шина, позволяющая осуществлять детальное управление сетью. NetworkManager не хранит соединения или настройки, это только механизм, с помощью которого эти соединения выбираются и активируются.

Для хранения предопределенных сетевых подключений, двух отдельных служб, "служба системных настроек" и "служба пользовательских настроек" магазин информацию о подключении и предоставить ее NetworkManager, в том числе через D-шина.Каждая служба настроек может определить, как и где она постоянно сохраняет информацию о соединении; например, ГНОМ апплет хранит свою конфигурацию в GConf, а системные настройки сервис хранит свою конфигурацию в форматах, специфичных для дистрибутива, или в дистрибутиве. независимый формат, зависящий от предпочтений пользователя/администратора.

2
27.01.2020, 22:09

Теги

Похожие вопросы