<div dir="ltr">Please ignore step 4, lxc.id_map only allow ONE uid/gid, so lxc_switch_uid_gid will fail</div><br><div class="gmail_quote"><div dir="ltr">On Fri, Dec 15, 2017 at 10:17 AM Philip <<a href="mailto:ultrafit67@gmail.com">ultrafit67@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hi,</div><div> </div><div>I want to use unprivileged container + setcap to set limited capabilities, but can not success, here is my test (lxc-1.0.8 and lxc-2.0.8):</div><div><br></div><div>testapp:</div><div><span style="white-space:pre-wrap"> </span>int ret = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);</div><div><span style="white-space:pre-wrap">        </span>fprintf(stderr, "socket ret %d, %s\n", ret, strerror(errno));</div><div><br></div><div>1. add net_raw capability</div><div>setcap cap_net_admin,cap_net_raw=eip ./testapp</div><div><br></div><div>2. switch to uid 2000, execute testapp</div><div>$ ./testapp </div><div>socket ret 3, Success</div><div><br></div><div>3. use unprivileged container to run testapp</div><div>lxc config:</div><div>lxc.network.type = none</div><div>lxc.id_map = u 0 2000 1</div><div>lxc.id_map = g 0 2000 1</div><div><br></div><div>sudo lxc-execute -n testapp -f config -P /files/testapp</div><div>....</div><div>socket ret -1, Operation not permitted</div><div><br></div><div>4. using lxc-2.0.8, add init_uid/init_gid</div><div>lxc.init_uid = 2000</div><div>lxc.init_gid = 2000</div><div><br></div><div>lxc-execute: utils.c: lxc_switch_uid_gid: 2069 Invalid argument - Failed to switch to gid 2000.</div><div><br></div><div>Can anyone help, what is going wrong?</div></div></blockquote></div>