Saltar al contenido

umask()

Introducción

En PHP, la función umask() establece los permisos predeterminados para los archivos y directorios recién creados. Es una herramienta útil para gestionar el acceso a archivos en tus scripts. En este artículo, cubriremos todo lo que necesitas saber sobre umask(), incluyendo su sintaxis, parámetros y ejemplos prácticos.

Comprender la función umask()

La función umask() establece una máscara de modo de archivo que determina los permisos predeterminados para los archivos y directorios recién creados. Acepta un parámetro opcional que representa la nueva máscara. Si se llama sin argumentos, devuelve la máscara actual sin modificarla. Cuando se proporciona una máscara, PHP la aplica a los permisos predeterminados del sistema (típicamente 0666 para archivos y 0777 para directorios) mediante una operación AND bit a bit con la máscara invertida (default & ~mask). Ten en cuenta que umask() devuelve el valor de la máscara anterior y afecta a todo el proceso de PHP, no solo a la ejecución del script actual.

Sintaxis de la función umask()

La sintaxis de la función umask() es la siguiente:

php
umask($mask);

Aquí, $mask es la nueva máscara. Debe especificarse en notación octal (por ejemplo, 022).

Ejemplos de uso de umask()

Veamos un ejemplo de cómo se puede utilizar la función umask() en PHP.

Ejemplo 1: Establecer los permisos predeterminados para nuevos archivos

php
<?php

umask(022);
$file_handle = fopen('example.txt', 'w');
fclose($file_handle);
echo 'File permissions: ' . decoct(fileperms('example.txt') & 0777);
unlink('example.txt');

Este ejemplo establece los permisos predeterminados para nuevos archivos en 022 mediante la función umask(), y luego crea un nuevo archivo llamado example.txt con permisos predeterminados de 644. La llamada adicional a fileperms() verifica los permisos octales resultantes. Ten en cuenta que umask() también se aplica a los directorios recién creados.

Conclusión

La función umask() proporciona una forma sencilla de controlar los permisos predeterminados para archivos y directorios en tus scripts de PHP. Esperamos que este artículo te haya ayudado a comprender mejor cómo funciona umask() y cómo puede utilizarse en tus propios proyectos.

Práctica

¿Qué hace la función umask() en PHP?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.