O que a permissão de diretório 02777 faz?

1

Encontrou o seguinte código PHP hoje:

mkdir($directory, 02777);

chmod($directory, 02777);

Eu entendo o PHP, mas não a primeira parte desses números. A parte 777 é clara, e se eu entendi corretamente o 0 significa apenas que é octal. Mas o que os 2 lá fazem?

Além disso, se eu mudasse para 02640, os 2 ainda fariam o que fizessem, ou mudaria de acordo com o que vem depois?

    
por Svish 26.01.2012 / 22:43

1 resposta

5

Esse dígito octal é composto de setuid , setgid e sticky bits, todos com efeitos comparativamente complexos.

O 2 define o sinal setgid . Quando presente em um diretório, todos os arquivos criados nele herdarão seu grupo, em vez do grupo primário do usuário criador.

Mais informações em Wikipedia .

    
por 26.01.2012 / 22:55