elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  funciones getuid() y geteuid()
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: funciones getuid() y geteuid()  (Leído 2,607 veces)
nightcode

Desconectado Desconectado

Mensajes: 216


Hackea el sistema, Hackea el Mundo,


Ver Perfil
funciones getuid() y geteuid()
« en: 30 Diciembre 2013, 23:52 pm »

 Estas funciones como su propio nombre indica, obtienen el UID del usuario, en sistemas Gnu con linux. Más tarde explicare para que se suele usar.

  Echando mano del `man' vemos las estructura de la función:

Código: [Seleccionar]
#include <unistd.h>
#include <sys/types.h>

uid_t getuid(void);
uid_t geteuid(void);

  Tenemos que incluir dichas cabeceras, y como vemos la función retorna un tipo de dato desconocido (por ahora :p), y no hace falta pasarle parámetros. A menudo se suelen poner nombres que nos son desconocidos, para identificar el tipo de dato de una función concreta, por ejemplo el tipo de dato "uid_t" no es más que un entero, pero al tener ese nombre ya nos confunde :p. De ahí que hayamos puesto la cabecera "types.h".

  Ok, ¿ para que podríamos usar esto ?, primero hay que saber que es el uid (si has trabajado alguna vez en sistemas linux lo deberías saber :p). Es el identificador de usuario, un número entero que nos identifica (ejecutar `id -u <USER>' para saber tu id). Donde esta la gracia de esto, pues que el usuario root (superusuario) siempre tendrá como UID el valor 0. Con lo cual si para ejecutar unas tareas en nuestro código necesitamos que el usuario que lo haya lanzado tenga los permisos de root, podemos saber perfectamente si los tiene o no, y en caso contrario mandarle un mensaje indicándoselo.

Código: [Seleccionar]
uid_t uid;         // Declaramos el tipo de dato que contendrá el UID (es un int).
uid = getuid();    // La función retorna el ID del usuario que llamó al proceso.
if(uid != 0){      // Si no es 0 no es root.
  fprintf(stderr,"ERROR: Debes lanzar el programa como \"root\".\n");
  exit(1);
}

  La función geteuid() es parecida a la anterior solo que muestra el id del usuario "efectivo". Con la función anterior tenemos de sobra, esta se usa más para detectar escaladas de privilegios (creo recordar).

  Saludos Att: Nightcode


En línea

“Las organizaciones gastan millones de dólares en firewalls y dispositivos de seguridad, pero tiran el dinero porque ninguna de estas medidas cubre el eslabón más débil de la cadena de seguridad: la gente que usa y administra los ordenadores"
Luis Oy

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: funciones getuid() y geteuid()
« Respuesta #1 en: 3 Enero 2014, 18:12 pm »



En línea

Luis Oy

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: funciones getuid() y geteuid()
« Respuesta #2 en: 3 Enero 2014, 18:13 pm »

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
PHP y funciones tcp/ip « 1 2 »
PHP
nacho2003 11 7,433 Último mensaje 21 Septiembre 2006, 00:07 am
por deya
Funciones en php
PHP
Lambda 2 2,520 Último mensaje 14 Octubre 2006, 17:00 pm
por Thaorius
funciones y FOR
PHP
pepelon 4 2,241 Último mensaje 9 Diciembre 2006, 02:49 am
por pepelon
[C] Problema con Struct en funciones que llaman a otras funciones
Programación C/C++
‭lipman 9 23,572 Último mensaje 19 Mayo 2011, 23:39 pm
por Littlehorse
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines