Вместо того, чтобы воротить нос от nm и искать легкий способ настроить vpn в консоли, решил потыкать cnetworkmanager. Он запнулся после первого тыка:
s@s ~ $ cnetworkmanager -u
Traceback (most recent call last):
  File "/usr/bin/cnetworkmanager", line 240, in <module>
    list_connections(USER_SERVICE)
  File "/usr/bin/cnetworkmanager", line 225, in list_connections
    acos = map(lambda a: a["Connection"].object_path, acs)
  File "/usr/bin/cnetworkmanager", line 225, in <lambda>
    acos = map(lambda a: a["Connection"].object_path, acs)
  File "/usr/lib64/python2.7/site-packages/networkmanager/activeconnection.py", line 44, in __getitem__
    sn = self.__getitem__("ServiceName")
  File "/usr/lib64/python2.7/site-packages/networkmanager/activeconnection.py", line 42, in __getitem__
    v = super(ActiveConnection, self).__getitem__(key)
  File "/usr/lib64/python2.7/site-packages/dbusclient/__init__.py", line 174, in __getitem__
    value = super(DBusClient, self).__getitem__(key)
  File "/usr/lib64/python2.7/site-packages/dbusclient/__init__.py", line 77, in __getitem__
    return pmi.Get(iface, key, byte_arrays=True)
  File "/usr/lib64/python2.7/site-packages/dbus/proxies.py", line 145, in __call__
    **keywords)
  File "/usr/lib64/python2.7/site-packages/dbus/connection.py", line 651, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.AccessDenied: Property "ServiceName" of interface "org.freedesktop.NetworkManager.Connection.Active" isn't exported (or may not exist)
Собтсвенно, идея сделать консольный клиент к nm ведь годная, но реализация, похоже, хромает. Куда слать багрепорт?



