6

数日前、次のように php-function を使用しているときに、パーミッションを間違って設定してしまいましたmkdir:

mkdir("foldername", 777, true);

正しい方法は、これらの種類のアクセス許可が必要であると仮定すると、次のとおりです。

mkdir("foldername", 0777, true);

ファイルやフォルダーに 777 を使用すべきではないことはわかっていますが、これは非常に閉じたシステム用であるため、それにこだわらないでください。少なくとも私にとっては、ここに面白い(奇妙な)部分があるからです。このスクリプトがフォルダーを作成したときに何かが非常に奇妙であることに気付いたからです。設定されるパーミッションは、特に私のような Linux の非パワー ユーザーにとっては非常に奇妙です。作成されたフォルダーのアクセス許可が次のように設定されていることがわかります。

dr - - - - x - - t

これは奇妙です。以前はスティッキービット( )について聞いたことがありませんでしたがt、ルートによってのみそのファイルを削除できるようにしたい場合に設定されているようです。なぜPHPがこのように動作するのか、それともPHPの問題なのか(関数を間違って使用しているため、実際には問題ではない)、または疑わしいときに* nixシステムがデフォルトで行うものなのか、誰かが知っていますか?か何か?

4

2 に答える 2

4

ファイルのパーミッションは 8 進表記 (基数 8) です。

777 は 10 進数であり、スティッキーも設定する 01411 8 進数を意味します...

于 2013-03-13T09:33:24.300 に答える
1

誰かがこの質問に答えた後、それを削除しました。悲しいことに、私はそれが正しいと強く思っていました。したがって、これを読んだら、その回答をもう一度投稿してください。受け入れます。

とにかく、php は を に変換しdecimal 777octal 1411パーミッションを私が取得したものに設定するようです。つまり:

dr - - - - x - - t

于 2013-03-13T11:57:04.043 に答える