создать с помощью командной строки беспроводной профиль не работает - PullRequest
0 голосов
/ 13 сентября 2018

Я пытался создать прямо по пути ниже сети TEST-EAP-TLS

/etc/NetworkManager/system-connections/TEST-EAP-TLS

Файл

[connection]
id=TEST-EAP-TLS
type=wifi
permissions=user:$current_user:;

[wifi]
mac-address=$mac
mode=infrastructure
ssid=TEST-EAP-TLS

[wifi-security]
key-mgmt=wpa-eap

[802-1x]
ca_cert=$cert_path_out/$cert_name.pem
client_cert=$cert_path_out/$cert_name.crt
eap=tls;
identity=${USERNAME}
private_key=$cert_path_out/$cert_name.p12
private_key_passwd=${PASSWD}

Но для настройки необходимо нажать на сеть для подключения.

Нужно ли включить / зарегистрировать что-то еще для работы?

ОБНОВЛЕНО

Мне удалось решить мою проблему с помощью скрипта Python внутри скрипта bash. Смотри ниже.

Насколько я понимаю, мне нужно было обработать некоторые записи dbus в сетевом менеджере, и по этой причине мне пришлось искать эту альтернативу.

#- * -coding: utf - 8 - * -
import dbus
import uuid
def path_to_value(path):
    return dbus.ByteArray("file://" + path + "\0")

s_con = dbus.Dictionary({
    'type': '802-11-wireless',
    'uuid': str(uuid.uuid4()),
    'permissions': ['user:$current_user'],
    'id': 'TEST-EAP-TLS'
})

s_wifi = dbus.Dictionary({
    'ssid': dbus.ByteArray("TEST-EAP-TLS"),
    'mode': 'infrastructure'
})

s_wsec = dbus.Dictionary({
    'key-mgmt': 'wpa-eap'
})

s_8021x = dbus.Dictionary({
    'eap': ['tls'],
    'identity': '$USERNAME',
    'client-cert': path_to_value("$cert_path_out/$cert_name.crt"),
    'ca-cert': path_to_value("$cert_path_out/$cert_name.pem"),
    'private-key': path_to_value("$cert_path_out/$cert_name.p12"),
    'private-key-password': '$PASSWD'
})

s_ip4 = dbus.Dictionary({
    'method': 'auto'
})
s_ip6 = dbus.Dictionary({
    'method': 'ignore'
})

con = dbus.Dictionary({
    'connection': s_con,
    '802-11-wireless': s_wifi,
    '802-11-wireless-security': s_wsec,
    '802-1x': s_8021x,
    'ipv4': s_ip4,
    'ipv6': s_ip6
})

bus = dbus.SystemBus()

proxy = bus.get_object("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager/Settings")
settings = dbus.Interface(proxy, "org.freedesktop.NetworkManager.Settings")

settings.AddConnection(con)
...