Encontré el siguiente código PHP hoy:
mkdir($directory, 02777);
chmod($directory, 02777);
Entiendo PHP, pero no la primera parte de esos números. La parte 777 es clara y, si he entendido correctamente, el 0 simplemente significa que es octal. ¿Pero qué hace el 2 de ahí?
Además, si lo cambiara a 02640, ¿el 2 seguiría haciendo lo que hace o cambiaría según lo que viene después?
Respuesta1
Este dígito octal se compone de setuid
y setgid
bits sticky
, los cuales tienen efectos comparativamente complejos.
El 2
pone la setgid
bandera. Cuando estén presentes en un directorio, todos los archivos creados dentro de él heredarán su grupo, en lugar del grupo principal del usuario creador.
Más enWikipedia.