Los permisos numéricos son propios de sistemas Linux. Estos permisos se pueden asignar al propietario, al grupo y al resto de usuarios.
Las equivalencias numéricas son las siguientes:
4 al de lectura
2 al de escritura
1 al de ejecución
Si tenemos un permiso 666 indica que:
Propietario: 6 = 4(lectura) + 2(escritura)
Grupo: 6 = 4(lectura) + 2(escritura)
Usuarios: 6 = 4(lectura) + 2(escritura)
Por lo tanto el permiso 777 da total control del fichero a cualquier usuario.
Para cambiar los permisos en php usa la funcion chmod() pero pon siempre los dígitos en formato octal (añadiendo un 0 delante del permiso)
http://es2.php.net/chmod