2010-05-06 18 views
5

estoy leyendo algo de código fuente y me encontré con esta declaración al comienzo de la rutina principal:¿Por qué usarías umask?

umask(077); 

Cuál podría ser la razón para ello?

La página del manual (man 2 máscara de usuario) declara:

máscara de usuario - Modo de creación de archivo de juego de máscaras

Esta compensación permite a cada usuario restringir el acceso por defecto a sus archivos

Pero no tengo claro por qué alguien haría eso? como un atajo?

+0

¿Está familiarizado con los atributos de archivo UNIX, quiero decir ¿sabes lo que significa la primera columna de comando "ls -l"? -rwx ------ + – Dewfy

+0

@Dewfy sí, lo hago – fabrizioM

Respuesta

10

Configuración umask(077) se asegura de que todos los archivos creados por el programa sólo se podrá acceder a su propietario (0 en la primera posición = todos los permisos potencialmente disponibles) y nadie más (7 en la segunda tercera posición/= todos los permisos no permitido a grupo/otro).

+1

Es de esperar que vea esta configuración en un programa que está generando archivos altamente confidenciales a los que * nunca * debe acceder ningún otro usuario, en cualquier situación ('ssh -keygen' es un buen ejemplo). Los programas normales deben respetar el 'umask()' existente que el usuario ha establecido. – caf

4

Necesita seguridad del sistema de archivos. umask contiene el número invertido, usando como modo de archivo para el nuevo archivo. Por ejemplo

[email protected] ~ $ umask 
022 
[email protected] ~ $ touch file 
[email protected] ~ $ ls -la file 
-rw-r--r-- 1 dzen dzen 0 6 may 14:29 file 
[email protected] ~ $ umask 777 
[email protected] ~ $ umask  
0777 
[email protected] ~ $ touch file1 
[email protected] ~ $ ls -la file1 
---------- 1 dzen dzen 0 6 may 14:30 file1 
Cuestiones relacionadas