mkdir () no modifica el directorio

Estoy usando el siguiente código para crear un directorio ...

mkdir($basedir.$plan_name, 0777, 1);

Crea, pero el problema es que los permisos 777 no se mantienen

¿Alguna idea?

Mi estructura de directorio es esta ...

/ pdf / customs (propiedad de wwwuser: user) / pdf / customs / 417 / Nombre de carpeta (creado por código, modificado a 755)

preguntado el 16 de mayo de 11 a las 18:05

0777 es el predeterminado. La mode es ignorado por las máquinas de Windows. Asegúrese de que su umask está configurado correctamente en una máquina * nix. -

@jnpcl Normalmente, un umask of 0022 está "configurado correctamente" y es mejor explícitamente chmod entonces lío con eso, especialmente si está dentro de un servidor web. -

3 Respuestas

Sus umask es probable 022. Para obtener más información, lea man 2 mkdir. Debes usar chmod después de crear el directorio para establecer los permisos 0777.

Edit: Como han sugerido otros, enlatado cambie su umask en su lugar. Sin embargo, si algo sale mal, la umask se quedará y su servidor web o demonio fastcgi (o lo que sea) comenzará a crear archivos y directorios de escritura mundial. Esas son malas noticias.

contestado el 16 de mayo de 11 a las 22:05

Revisaste tu umask ?

Los permisos del directorio serán modificados por eso. Por ejemplo, si su valor de umask es 002 los permisos resultantes serán 0775.

contestado el 16 de mayo de 11 a las 22:05

Desde el documentación:

Tenga en cuenta que probablemente desee especificar el modo como un número octal, lo que significa que debe tener un cero a la izquierda. El modo también es modificado por la umask actual, que puede cambiar usando umask ().

Cual es tu umask?

contestado el 16 de mayo de 11 a las 22:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.