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:
Lenguaje GENERICO
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.
Lenguaje C++
#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;
}