[Rcpp-devel] How to elevate privilege from within Rcpp?

Dirk Eddelbuettel edd at debian.org
Sun Mar 15 21:14:57 CET 2015


On 15 March 2015 at 15:48, Bhaskar V. Karambelkar wrote:
| I need to call a 3rd party library function with root privileges.
| I'm not sure how to accomplish this from within Rcpp.

I dont think you can ...
 
| If I was writing an executable, I could call seteuid to elevate privileges
| before calling the external function, and set the suid bit on the executable.
| But given that this needs to be done from within a Rcpp Library, I'm not sure
| how to do this. The last thing I want to do is run R as root or set suid on the
| R binary.

... unless you run R with suid bits, which you shouldn't as you rightly point out.

Rcpp is standard C/C++ code. So the wisdom of 'man seteuid' still applies:

   seteuid() sets the effective user ID of the calling process.  Unprivileged
   user processes may only set the effective user ID to the real user ID, the
   effective user ID or the saved set-user-ID.
 
| Any help / pointers would be greatly appreciated.

You may have to call a small self-contained executable which may then have a
suid bit set.

Dirk

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org


More information about the Rcpp-devel mailing list