今天发现以下PHP代码:
mkdir($directory, 02777);
chmod($directory, 02777);
我理解 PHP,但不明白这些数字的前半部分。777 部分很清楚,如果我理解正确的话,0 只是表示它是八进制。但其中的 2 有什么作用呢?
另外,如果我将其更改为 02640,那么 2 是否仍会执行其所做的任何操作,还是会根据其后续内容而发生变化?
答案1
这个八进制数字由setuid
、setgid
和sticky
位组成,它们的作用都比较复杂。
设置2
标志setgid
。当出现在目录中时,其中创建的所有文件都将继承其组,而不是创建用户的主要组。
更多关于维基百科。