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

Re: Umask



	Espero que esto nos aclare un poco que hace esta función.

	Te mando lo que pone en el libro:

"PROGRAMACIÓN EN LINUX CON EJEMPLOS"
de Kurt Wall
Prentice Hall
ISBN: 987-9460-09-X

[...] tanto a nivel de sistema como de usuario, los permisos que se asignen 
serán modificados por la umask asignada al proceso, que contiene una máscara 
de bits compuesta por los bits de permiso a ser desactivados para los 
archivos y directorios nuevos que sean creados. La umask afecta solamente a 
los bits de permiso de un archivo; uno no puede variar por medio de umask los 
bits que especifican el tipo y la modalidad de ejecución de un archivo.

	Se puede modifcar la umask de un proceso, pero solo para hacerla más 
restricitva, y no menos restrictiva. Esto se efectua mediante una llamada a 
umask, prototipada en <sys/stat.h> tal como se muestra a continuación:

	mode_t umask (mode_t newmask);

	Esta función establece como nueva umask del proceso la máscara newmask 
(máscara nueva), retornando la umask anterior independientemente de que la 
llamada a la función umask se complete exitosamente o no.

Ejemplo. El ste. programa de demostración llama a umask para establecer una 
nueva umask más restrictiva.

#include <sys/stat.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	mode_t nueva_mascara=666, mascara_anterior;	/* los digitos son octales */

	mascara_anterior = umask(nueva_mascara);
	printf("La umask anterior era %#o\n" mascara_anterior");
	printf("La nueva umask es %#o\n" nueva_mascara");
	system("touch foo");
	exit (EXIT_SUCCESS);
}



El Vie 01 Nov 2002 10:33, Victor Ruiz Huerga escribió:
> Aupa, alguien sabe que hay que poner en el umask para que me cree los
> ficheros con los permisos:
>
> 775
>
> he probado a poner umask 002 y umask 0002 y me crea 664
> he probado tb umask u=rwx,g=rwx,o=rx
>
> y me sigue poniendo 664
>
> ¿no se puede poner por defecto 775?



Reply to: