前几天,我偶然使用php-function mkdir
来设置权限是这样的:
mkdir("foldername", 777, true);
正确的方法是,假设你想要这样的权限:
mkdir("foldername", 0777, true);
我知道我不应该使用777文件或文件夹,但这是一个非常封闭的系统,所以请不要卡在那个。 因为这里有一些有趣的(怪异的)部分,至less对我来说。 因为我们注意到当这个脚本创build文件夹时有些东西非常奇怪。 设置的保证真的很奇怪,特别是对于像我这样的非Linux用户。 因为我们看到的是创build的文件夹的权限被设置为:
dr – – – – x – – t
对我而言,奇怪的是,我之前并没有听说过这个粘性位,但是当你想让这个文件只能被root用户移除时,显然是这样设置的。 有谁知道为什么PHP的行为是这样的,或者如果它甚至是一个PHP问题(不是一个真正的问题,因为我是一个使用function的错误),或者这是我们的* nix系统默认情况下,当有疑问或者其他的东西?
文件权限以八进制表示法(基数8)。
777是十进制的,这意味着01411八进制也设置了粘的一个…
有人回答这个问题,然后删除它,这是很可悲的,因为我坚决认为这是正确的。 所以,如果你阅读这个,请再次发表这个答案,我会接受。
无论如何,似乎PHP翻译decimal 777
到octal 1411
,这将设置我得到的权限,即:
dr – – – – x – – t