<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဤကုဒ်၏ဤအပိုင်းသည်ဆောင်းပါး၏အကြောင်းအရာများနှင့်လုံးဝမသက်ဆိုင်ပါ,သာဥပမာအဖြစ်စတင်</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖတ်ရှုဖို့ကြိုဆိုပါတယ်PHPဖိုင်ခွင့်ပြုချက် control tutorial。"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/*
ဆောင်းပါးခေါင်းစဉ်:သွားPHP၏umask函数怎么控制新建စာချုပ်စာတမ်း၏默认权限?ဖော်ပြချက်
*/</span>
</span><span><span class="hljs-comment">// PHP中၏umask函数用于တည်ဆောက်သည်进程၏စာချုပ်စာတမ်း权限掩码,从而控制新建စာချုပ်စာတမ်း或目录၏默认权限。</span></span><span>
</span><span><span class="hljs-comment">// ပုံမှန်အားဖြင့်,Linux系统对新建စာချုပ်စာတမ်း၏权限一般是0666(rw-rw-rw-),လမ်းညွှန်အသစ်သည်0777(rwxrwxrwx)。</span></span><span>
</span><span><span class="hljs-comment">// umask函数သွား屏蔽权限位,限制新建စာချုပ်စာတမ်း或目录၏权限。</span></span><span>
</span><span><span class="hljs-comment">// ဥပမာအားဖြင့်,umask(0022)ပိတ်ဆို့ခြင်းဖော်ပြသည်0022对应၏权限,即屏蔽组和其他用户၏写权限。</span></span><span>
</span><span><span class="hljs-comment">// 新建စာချုပ်စာတမ်း၏默认权限将是 0666 & ~0022 = 0644 (rw-r--r--)</span></span><span>
</span><span><span class="hljs-comment">// 新建目录၏默认权限将是 0777 & ~0022 = 0755 (rwxr-xr-x)</span></span><span>
</span><span><span class="hljs-comment">// ဖော်ပြချက်:</span></span><span>
</span><span><span class="hljs-comment">// တည်ဆောက်သည်umaskအဘိုး</span></span><span>
</span><span><span class="hljs-title function_ invoke__">umask</span></span><span>(</span><span><span class="hljs-number">0022</span></span><span>);
</span><span><span class="hljs-comment">// ဖိုင်တစ်ခုဖန်တီးပါ</span></span><span>
</span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">'testfile.txt'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">file_put_contents</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-string">"ဒါကစမ်းသပ်မှုဖိုင်တစ်ခုပါ。"</span></span><span>);
</span><span><span class="hljs-comment">// ဖိုင်ခွင့်ပြုချက်ကိုစစ်ဆေးပါ</span></span><span>
</span><span><span class="hljs-variable">$perms</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fileperms</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>) & </span><span><span class="hljs-number">0777</span></span><span>; </span><span><span class="hljs-comment">// သာခွင့်ပြုချက် bits</span></span><span>
</span><span><span class="hljs-title function_ invoke__">printf</span></span><span>(</span><span><span class="hljs-string">"စာချုပ်စာတမ်း %s ၏权限是: %o\n"</span></span><span>, </span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-variable">$perms</span></span><span>);
<span class="hljs-comment">/*
အဆိုပါ run ရလဒ်ပုံမှန်အားဖြင့်ဖြစ်ပါတယ်:
စာချုပ်စာတမ်း testfile.txt ၏权限是: 644
这表明新建စာချုပ်စာတမ်း၏权限是rw-r--r--,ဆိုလိုသည်မှာပိုင်ရှင်သည်ဖတ်။ ရေးနိုင်သည်,အုပ်စုများနှင့်အခြားအသုံးပြုသူများကိုသာဖတ်ကြသည်。
*/</span>
</span><span><span class="hljs-comment">// သင်ပုံမှန်ခွင့်ပြုချက်ကိုပြောင်းလဲလိုပါက,ပြောင်းလဲနိုင်ပါသည်umaskအဘိုး,ဥပမာအားဖြင့်:</span></span><span>
</span><span><span class="hljs-title function_ invoke__">umask</span></span><span>(</span><span><span class="hljs-number">0000</span></span><span>); </span><span><span class="hljs-comment">// ခွင့်ပြုချက်မရှိပါ</span></span><span>
</span><span><span class="hljs-comment">// 创建另一个စာချုပ်စာတမ်း</span></span><span>
</span><span><span class="hljs-variable">$file2</span></span><span> = </span><span><span class="hljs-string">'testfile2.txt'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">file_put_contents</span></span><span>(</span><span><span class="hljs-variable">$file2</span></span><span>, </span><span><span class="hljs-string">"权限更宽松၏测试စာချုပ်စာတမ်း。"</span></span><span>);
</span><span><span class="hljs-comment">// 检查新စာချုပ်စာတမ်း权限</span></span><span>
</span><span><span class="hljs-variable">$perms2</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fileperms</span></span><span>(</span><span><span class="hljs-variable">$file2</span></span><span>) & </span><span><span class="hljs-number">0777</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">printf</span></span><span>(</span><span><span class="hljs-string">"စာချုပ်စာတမ်း %s ၏权限是: %o\n"</span></span><span>, </span><span><span class="hljs-variable">$file2</span></span><span>, </span><span><span class="hljs-variable">$perms2</span></span><span>);
<span class="hljs-comment">/*
ဤအချိန်တွင်ခွင့်ပြုချက်များသည်များသောအားဖြင့်ဖြစ်သည်666 (rw-rw-rw-),ဆိုလိုသည်မှာအသုံးပြုသူများအားလုံးသည်ခွင့်ပြုချက်များကိုဖတ်ပြီးရေးပါ。
*/</span>
</span><span><span class="hljs-comment">// မှတ်သားရန်အရာ:</span></span><span>
</span><span><span class="hljs-comment">// 1. umaskသာလက်ရှိအကျိုးသက်ရောက်သည်PHP进程新建၏စာချုပ်စာတမ်း或目录。</span></span><span>
</span><span><span class="hljs-comment">// 2. 已存在စာချုပ်စာတမ်း权限不会被umaskသွဇါ。</span></span><span>
</span><span><span class="hljs-comment">// 3. web服务器运行用户权限和操作系统安全策略也会သွဇါ最终权限。</span></span><span>
</span><span><span class="hljs-comment">// အကျဉ်းချုပ်မှာ,သွားumaskလုပ်ဆောင်ချက်များကိုအလွယ်တကူထိန်းချုပ်နိုင်သည်PHP中新建စာချုပ်စာတမ်း和目录၏默认权限。</span></span><span>
</span><span><span class="hljs-comment">// 正确တည်ဆောက်သည်umask,有助于保证စာချုပ်စာတမ်း安全,避免权限过宽带来၏安全风险。</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>