今日、次の PHP コードを見つけました:
mkdir($directory, 02777);
chmod($directory, 02777);
PHP は理解できますが、数字の最初の部分はわかりません。777 の部分は明らかで、正しく理解していれば、0 は 8 進数であることを意味します。しかし、そこにある 2 は何をするのでしょうか?
また、これを 02640 に変更した場合、2 はそのまま動作しますか、それともその後に続くものに応じて変化しますか?
答え1
setuid
この 8 進数は、、setgid
およびビットで構成されておりsticky
、いずれも比較的複雑な効果を持ちます。
フラグを設定2
しますsetgid
。ディレクトリに存在する場合、そのディレクトリ内で作成されたすべてのファイルは、作成者のプライマリ グループではなく、そのグループを継承します。
詳細はこちらウィキペディア。