En algunos casos necesitamos que nuestra aplicación sea ejecutada como usuario root en GNU/Linux. Por lo cual, debemos de comprobar cuál usuario ejecutó la aplicación.

En este caso lo haré en C++ y usando la función getuid(), la cual retorna el Id. del usuario ( User ID, UID ) que es un número único  y hace referencia al usuario en el archivo /etc/passwd.

Si abrimos el archivo anterior podemos encontrar en la primera línea lo siguiente:

root:x:0:0:root:/root:/bin/bash

El cuarto valor sería el identificador.

Bueno, no siendo más voy con el código. En este caso, diseñé la función IsRoot() que retorna 0 si se ejecutó como root y 1 si no.

#include <unistd.h>
#include <iostream>
 
using namespace std;
 
/*
 * IsRoot()
 */
int IsRoot()
{
	int sUser = getuid();
 
	if (sUser != 0)
		return 1;
	else
		return 0;
}
 
int main()
{
	if (IsRoot() == 0)
	{
		cout << "-- Root Calc --" << endl;
		cout << " 2 x 2 = " << 2*2 << endl;
	}
	else
		cout << "Debe ejecutar como root" << endl;
}