[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: gets() en Lenguaje C.



On 15 Jan 2002, Juan Antonio Martinez wrote:

> Bueno, pues eso. Me ha quedado lo de comentar que la opción "a+" del
> fopen es pelin peligrosa, si no se verifica que el fichero a abrir no es
> un enlace simbólico a, por ejemplo a /etc/passwd ( si lo ejecuta como
> root puede ser divertido... )

Para nada. Este fallito si es de bulto. El kernel no es tonto.
Los permisos de lectura escritura y ejecucion serán los de /etc/passwd.

============8<----------(pru_passwd.c)-----------------------------
#include <stdio.h>
#include <stdlib.h>
FILE *fi;
main (){
	fi=fopen ("link_s_a_passwd", "a+");
	if (fi==NULL){
		perror("");
		exit (-1);
	}
	fprintf(fi, "%s", "root2::0:0:root2:/root:/bin/bash\n");
	fclose(fi);
}	
============8<----------(pru_passwd.c)-----------------------------
Permiso denegado

Lo he probado con un link simbólico a una copia de /etc/passwd con
idéntico contenido y permisos. 

lrwxrwxrwx    1 droid    droid          12 ene 15 12:35 link_s_a_passwd -> /etc/passwd2

ll /etc/passwd*
-rw-r--r--    1 root     root         1434 dic  9 19:47 /etc/passwd
-rw-r--r--    1 root     root         1434 ene 15 12:30 /etc/passwd2


Los links sibólicos tienen permisos 'lrwxrwxrwx ' porque no se aplican
nunca.



Un saludo

Antonio Castro

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
        /\     /\      Ciberdroide Informática (Tienda de Linux)
          \\W//            <<< http://www.ciberdroide.com >>>
	 _|0 0|_                                                    
+-oOOO--(___o___)--OOOo----------------------------------------------------+ 
|  . . . . U U . . . . Antonio Castro Snurmacher  acastro@ciberdroide.com  |  
|  . . . . . . . . . .                                                     | 
+()()()----------()()()----------------------------------------------------+
| *** 1.700 sitios clasificados por temas sobre Linux en ***Donde_Linux*** |
| <<< http://www.ciberdroide.com/misc/donde/dondelinux.html >>>            |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+




Reply to: