Aw: Re: Only root can utilize nm-applet and nmcli as part of NetworkManager - how can other users use it w/o root?

2015-01-09 Thread Thomas Schneider

Hi,



heres an update on your questions



Lets start with the version of nmcli:


user@pc1-asus:~ nmcli -v
nmcli-Werkzeug, Version 0.9.10.0



Now permissions:


user@pc1-asus:~ nmcli general permissions
BEFUGNIS WERT 
org.freedesktop.NetworkManager.enable-disable-network nein 
org.freedesktop.NetworkManager.enable-disable-wifi nein 
org.freedesktop.NetworkManager.enable-disable-wwan nein 
org.freedesktop.NetworkManager.enable-disable-wimax nein 
org.freedesktop.NetworkManager.sleep-wake nein 
org.freedesktop.NetworkManager.network-control nein 
org.freedesktop.NetworkManager.wifi.share.protected nein 
org.freedesktop.NetworkManager.wifi.share.open nein 
org.freedesktop.NetworkManager.settings.modify.system nein 
org.freedesktop.NetworkManager.settings.modify.own Legitimierung
org.freedesktop.NetworkManager.settings.modify.hostname Legitimierung



Output when running nm-applet w/o root permission:


user@pc1-asus:~ nm-applet

(nm-applet:1167): libnm-glib-CRITICAL **: nm_secret_agent_register: assertion priv-registered == FALSE failed

(nm-applet:1167): nm-applet-WARNING **: VPN Connection activation failed: (org.freedesktop.NetworkManager.PermissionDenied) Not authorized to control networking.



Error message in /var/log/syslog:
Jan 9 20:41:34 pc1-asus NetworkManager[5393]: warn Failed to activate Netzwerk-Thomas-VPN: Not authorized to control networking.



The current config file for the required VPN connection is:


user@pc1-asus:~ sudo cat /etc/NetworkManager/system-connections/VPN
[connection]
id=VPN
uuid=a6ae2fac-4776-4f74-962c-a63113xx
type=vpn
permissions=user:user:;
autoconnect=false

[vpn]
service-type=org.freedesktop.NetworkManager.openvpn
connection-type=tls
auth=SHA256
remote=mydyndns
cipher=AES-256-CBC
comp-lzo=yes
tunnel-mtu=1500
cert-pass-flags=1
cert=/etc/openvpn/config/server.crt
ca=/etc/openvpn/config/server.pem
key=/etc/openvpn/config/server.key
ta=/etc/openvpn/config/ta.key

[ipv6]
method=auto
ip6-privacy=0

[ipv4]
method=auto



This config file works perfectly when calling sudo nmcli.





I have identified that any user without root permission can utilize NetworkManager and ncmli respectively. In other words, the user needs to be member and run any command with sudo.

This is also true for using any device connected via USB, e.g. scanner or USB memory stick.






THX




Gesendet:Donnerstag, 08. Januar 2015 um 17:39 Uhr
Von:Dan Williams d...@redhat.com
An:poma pomidorabelis...@gmail.com
Cc:Thomas Schneider c.mo...@web.de, networkmanager-list@gnome.org
Betreff:Re: Only root can utilize nm-applet and nmcli as part of NetworkManager - how can other users use it w/o root?

On Wed, 2015-01-07 at 23:42 +0100, poma wrote:
 On 07.01.2015 18:29, Dan Williams wrote:
  On Mon, 2015-01-05 at 19:14 +0100, Thomas Schneider wrote:
  Hello!
 
  I have installed latest version of NetworkManager and nmcli
  respectively + OpenVPN plugin or NetworkManager.
 
  user@pc1-asus:~ apt-cache policy network-manager
  network-manager:
  Installiert: 0.9.10.0-5
  Installationskandidat: 0.9.10.0-5
  Versionstabelle:
  *** 0.9.10.0-5 0
  500 http://ftp.debian.org/debian/ jessie/main i386 Packages
  100 /var/lib/dpkg/status
  user@pc1-asus:~ apt-cache policy network-manager-gnome
  network-manager-gnome:
  Installiert: 0.9.10.0-2
  Installationskandidat: 0.9.10.0-2
  Versionstabelle:
  *** 0.9.10.0-2 0
  500 http://ftp.debian.org/debian/ jessie/main i386 Packages
  100 /var/lib/dpkg/status
  user@pc1-asus:~ apt-cache policy network-manager-openvpn
  network-manager-openvpn:
  Installiert: 0.9.10.0-1
  Installationskandidat: 0.9.10.0-1
  Versionstabelle:
  *** 0.9.10.0-1 0
  500 http://ftp.debian.org/debian/ jessie/main i386 Packages
  100 /var/lib/dpkg/status
  user@pc1-asus:~ apt-cache policy network-manager-openvpn-gnome
  network-manager-openvpn-gnome:
  Installiert: 0.9.10.0-1
  Installationskandidat: 0.9.10.0-1
  Versionstabelle:
  *** 0.9.10.0-1 0
  500 http://ftp.debian.org/debian/ jessie/main i386 Packages
  100 /var/lib/dpkg/status
 
  All maintained connections are working. This includes OpenVPN
  connection type, too.
  However, in order to use either nm-applet or command-line client
  nmcli, I need to be root.
  The issue Im facing is that with older release I could use either
  nm-applet or nmcli without root authorization.
  This becomes a critical issue in a multi-user desktop PC where most
  user neither have root authorization nor can utilize sudo.
 
  Question:
  How can I ensure that both, nm-applet and nmcli, can be used without
  root authorization?
 
  Its certainly intended that they can all be used without root. When
  you try to run nmcli as a normal user, what error do you get? What is
  the output of nmcli gen perm as a normal user?
 

  nmcli -v
 nmcli tool, version 0.9.10.0-14.git20140704.fc21

  nmcli general permissions
 PERMISSION VALUE
 org.freedesktop.NetworkManager.enable-disable-network yes
 org.freedesktop.NetworkManager.enable-disable-wifi yes
 

Re: Aw: Re: Only root can utilize nm-applet and nmcli as part of NetworkManager - how can other users use it w/o root?

2015-01-09 Thread Dan Williams
On Fri, 2015-01-09 at 20:49 +0100, Thomas Schneider wrote:
 Hi,
  
 here's an update on your questions
  
 Let's start with the version of nmcli:
 user@pc1-asus:~$ nmcli -v
 nmcli-Werkzeug, Version 0.9.10.0
  
 Now permissions:
 user@pc1-asus:~$ nmcli general permissions
 BEFUGNIS WERT
  
 org.freedesktop.NetworkManager.enable-disable-networknein

Ok, this indicates that PolicyKit is denying the permissions to these
users.  The most likely reason is that NM has been built with
--with-session-tracking=[ck|systemd] and something is not properly
setting up the login sessions with ConsoleKit or systemd.

PolicyKit has a concept of active (eg, using the computer right now) and
inactive (idle or non-human users) sessions.  NetworkManager uses these
for fast-user-switching and some permissions control.  It's likely that
all users on your machine are considered inactive according to
PolicyKit and thus being denied.

What do you get for the following commands?

ck-list-sessions
loginctl
loginctl show-session X (repeat for all sessions from 'loginctl')

if you're using ConsoleKit, your session manager needs to tell
ConsoleKit that it's starting a new session.  I'm not quite sure how
that happens with systemd, but it does somehow.

Alternatively, if you don't care about user permissions and want to
allow any user to control networking you can build NM with
--with-session-tracking=none and --with-polkit=no to disable this
functionality.

Dan
 
 org.freedesktop.NetworkManager.enable-disable-wifi   nein
  
 org.freedesktop.NetworkManager.enable-disable-wwan   nein
  
 org.freedesktop.NetworkManager.enable-disable-wimax  nein
  
 org.freedesktop.NetworkManager.sleep-wakenein
  
 org.freedesktop.NetworkManager.network-control   nein
  
 org.freedesktop.NetworkManager.wifi.share.protected  nein
  
 org.freedesktop.NetworkManager.wifi.share.open   nein
  
 org.freedesktop.NetworkManager.settings.modify.systemnein
  
 org.freedesktop.NetworkManager.settings.modify.own   Legitimierung
 org.freedesktop.NetworkManager.settings.modify.hostname  Legitimierung
  
 Output when running nm-applet w/o root permission:
 user@pc1-asus:~$ nm-applet
 (nm-applet:1167): libnm-glib-CRITICAL **: nm_secret_agent_register:
 assertion 'priv-registered == FALSE' failed
 (nm-applet:1167): nm-applet-WARNING **: VPN Connection activation
 failed: (org.freedesktop.NetworkManager.PermissionDenied) Not
 authorized to control networking.
  
 Error message in /var/log/syslog:
 Jan  9 20:41:34 pc1-asus NetworkManager[5393]: warn Failed to
 activate 'Netzwerk-Thomas-VPN': Not authorized to control networking.
  
 The current config file for the required VPN connection is:
 user@pc1-asus:~$ sudo cat /etc/NetworkManager/system-connections/VPN
 [connection]
 id=VPN
 uuid=a6ae2fac-4776-4f74-962c-a63113xx
 type=vpn
 permissions=user:user:;
 autoconnect=false
 [vpn]
 service-type=org.freedesktop.NetworkManager.openvpn
 connection-type=tls
 auth=SHA256
 remote=mydyndns
 cipher=AES-256-CBC
 comp-lzo=yes
 tunnel-mtu=1500
 cert-pass-flags=1
 cert=/etc/openvpn/config/server.crt
 ca=/etc/openvpn/config/server.pem
 key=/etc/openvpn/config/server.key
 ta=/etc/openvpn/config/ta.key
 [ipv6]
 method=auto
 ip6-privacy=0
 [ipv4]
 method=auto
  
 This config file works perfectly when calling sudo nmcli.
  
 I have identified that any user without root permission can utilize
 NetworkManager and ncmli respectively. In other words, the user needs
 to be member and run any command with sudo.
 This is also true for using any device connected via USB, e.g. scanner
 or USB memory stick.
  
  
 THX
   
 Gesendet: Donnerstag, 08. Januar 2015 um 17:39 Uhr
 Von: Dan Williams d...@redhat.com
 An: poma pomidorabelis...@gmail.com
 Cc: Thomas Schneider c.mo...@web.de, networkmanager-list@gnome.org
 Betreff: Re: Only root can utilize nm-applet and nmcli as part of
 NetworkManager - how can other users use it w/o root?
 On Wed, 2015-01-07 at 23:42 +0100, poma wrote:
  On 07.01.2015 18:29, Dan Williams wrote:
   On Mon, 2015-01-05 at 19:14 +0100, Thomas Schneider wrote:
   Hello!
  
   I have installed latest version of NetworkManager and nmcli
   respectively + OpenVPN plugin or NetworkManager.
  
   user@pc1-asus:~$ apt-cache policy network-manager
   network-manager:
   Installiert: 0.9.10.0-5
   Installationskandidat: 0.9.10.0-5
   Versionstabelle:
   *** 0.9.10.0-5 0
   500 http://ftp.debian.org/debian/ jessie/main i386 Packages
   100 /var/lib/dpkg/status
   user@pc1-asus:~$ apt-cache policy network-manager-gnome
   network-manager-gnome:
   Installiert: 0.9.10.0-2
   Installationskandidat: 0.9.10.0-2
   Versionstabelle:
   *** 0.9.10.0-2 0
   500 http://ftp.debian.org/debian/ jessie/main i386 Packages
   100 /var/lib/dpkg/status
   user@pc1-asus:~$ apt-cache policy network-manager-openvpn
   network-manager-openvpn:
   Installiert: 0.9.10.0-1
   Installationskandidat: