<div dir="ltr">Tested that root as well as non root users can use the proxy:<div><br></div><div>Run proxy as non-root user:</div><div><br></div><div>$ killall -9 mbim-proxy; sudo -u user_a /path/to/mbim-proxy -v</div><div><br></div><div>Ensure that these work:</div><div>$ mbimcli -p -d /path/to/device --noop</div><div>$ sudo -u user_a mbimcli -p -d /path/to/device --noop<br></div><div><br></div><div>and that this fails:</div><div>$ sudo -u user_b mbimcli -p -d /path/to/device --noop</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 23, 2014 at 3:43 PM, Prathmesh Prabhu <span dir="ltr"><<a href="mailto:pprabhu@chromium.org" target="_blank">pprabhu@chromium.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The following relaxations are made in the access control:<br>
* Remove the restriction that root must launch the proxy<br>
* Allow root or the same user who launched the proxy to communicate with it.<br>
<br>
---<br>
 src/libmbim-glib/mbim-proxy.c | 11 +----------<br>
 1 file changed, 1 insertion(+), 10 deletions(-)<br>
<br>
diff --git a/src/libmbim-glib/mbim-proxy.c b/src/libmbim-glib/mbim-proxy.c<br>
index 7677cc6..a3ba9af 100644<br>
--- a/src/libmbim-glib/mbim-proxy.c<br>
+++ b/src/libmbim-glib/mbim-proxy.c<br>
@@ -1060,7 +1060,7 @@ incoming_cb (GSocketService *service,<br>
         return;<br>
     }<br>
<br>
-    if (uid != 0) {<br>
+    if (uid != 0 && uid != getuid()) {<br>
         g_warning ("Client not allowed: Not enough privileges");<br>
         return;<br>
     }<br>
@@ -1214,15 +1214,6 @@ mbim_proxy_new (GError **error)<br>
 {<br>
     MbimProxy *self;<br>
<br>
-    /* Only root can run the mbim-proxy */<br>
-    if (getuid () != 0) {<br>
-        g_set_error (error,<br>
-                     MBIM_CORE_ERROR,<br>
-                     MBIM_CORE_ERROR_FAILED,<br>
-                     "Not enough privileges");<br>
-        return NULL;<br>
-    }<br>
-<br>
     self = g_object_new (MBIM_TYPE_PROXY, NULL);<br>
     if (!setup_socket_service (self, error))<br>
         g_clear_object (&self);<br>
--<br>
2.1.0.rc2.206.gedb03e5<br>
</blockquote></div><br></div>