<div dir="ltr">Thanks Dirk,<div>I was afraid of that, but glad that you confirmed it. In the mean time I've figured out a way that may not require root :)</div><div><br></div><div>thanks again</div><div>Bhaskar</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Mar 15, 2015 at 4:14 PM, Dirk Eddelbuettel <span dir="ltr"><<a href="mailto:edd@debian.org" target="_blank">edd@debian.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
On 15 March 2015 at 15:48, Bhaskar V. Karambelkar wrote:<br>
| I need to call a 3rd party library function with root privileges.<br>
| I'm not sure how to accomplish this from within Rcpp.<br>
<br>
</span>I dont think you can ...<br>
<span class=""><br>
| If I was writing an executable, I could call seteuid to elevate privileges<br>
| before calling the external function, and set the suid bit on the executable.<br>
| But given that this needs to be done from within a Rcpp Library, I'm not sure<br>
| how to do this. The last thing I want to do is run R as root or set suid on the<br>
| R binary.<br>
<br>
</span>... unless you run R with suid bits, which you shouldn't as you rightly point out.<br>
<br>
Rcpp is standard C/C++ code. So the wisdom of 'man seteuid' still applies:<br>
<br>
   seteuid() sets the effective user ID of the calling process.  Unprivileged<br>
   user processes may only set the effective user ID to the real user ID, the<br>
   effective user ID or the saved set-user-ID.<br>
<span class=""><br>
| Any help / pointers would be greatly appreciated.<br>
<br>
</span>You may have to call a small self-contained executable which may then have a<br>
suid bit set.<br>
<span class="HOEnZb"><font color="#888888"><br>
Dirk<br>
<br>
--<br>
<a href="http://dirk.eddelbuettel.com" target="_blank">http://dirk.eddelbuettel.com</a> | @eddelbuettel | <a href="mailto:edd@debian.org">edd@debian.org</a><br>
</font></span></blockquote></div><br></div>