လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> FTP_Site နှင့် FTP_CHDIR ကိုပေါင်းစပ်အသုံးပြုနည်း, Directory Permissions ကိုကောင်းမွန်စွာထိန်းချုပ်နိုင်မည်နည်း။

FTP_Site နှင့် FTP_CHDIR ကိုပေါင်းစပ်အသုံးပြုနည်း, Directory Permissions ကိုကောင်းမွန်စွာထိန်းချုပ်နိုင်မည်နည်း။

gitbox 2025-06-16

PHP တွင် FTP server နှင့်အပြန်အလှန်ဆက်သွယ်ရန် FTP လုပ်ဆောင်ချက်များကိုအသုံးပြုလေ့ရှိသည်။ FTP_Site နှင့် FTP_CHDIR နှစ်ခုသည် ftp_site နှင့် FTP_CHDIR တို့ပေါင်းစပ်ခြင်းအားဖြင့် FTP server ရှိဖိုင်များသို့မဟုတ်လမ်းညွှန်များ၏ခွင့်ပြုချက်များကိုထိရောက်စွာထိန်းချုပ်နိုင်သည်။ ဤလုပ်ဆောင်မှုများမှတစ်ဆင့် developer များကသတ်သတ်မှတ်မှတ်လမ်းညွှန်များအတွက် Access Control နှင့်စစ်ဆင်ရေးခွင့်ပြုချက်ကိုပြန်လည်ပြုပြင်ခြင်းကိုပြန်လည်ပြုပြင်ခြင်းကိုအကောင်အထည်ဖော်နိုင်သည်။

ဤဆောင်းပါးသည် directory permissions များကိုကောင်းစွာထိန်းချုပ်ရန် FTP_Site နှင့် FTP_CHDIR ၏ လုပ်ဆောင်မှုများကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

1 ။ FTP_Site နှင့် FTP_CHDIR ကို နားလည်ပါ

  1. ftp_site ()
    ဤလုပ်ဆောင်ချက်သည် PROMP server သို့ပို့ဆောင်ရန်အသုံးပြုသော FTP command များကို FTP server သို့ပို့ရန်အသုံးပြုသည်။

    သဒ္ဒါ:

     <span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">ftp_site</span></span><span> ( resource </span><span><span class="hljs-variable">$ftp_stream</span></span><span> , </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$command</span></span><span> )
    </span></span>
    • $ ftp_stream - FTP_Connect () သို့မဟုတ် ftp_ssl_connect မှတဆင့် FTP server သို့ဆက်သွယ်ထားသောအရင်းအမြစ်တစ်ခု။

    • $ command : FTP server သို့ပို့သော command string ကို။

  2. ftp_chdir ()
    ဤလုပ်ဆောင်ချက်သည် FTP ဆက်သွယ်မှုရှိလက်ရှိအလုပ်လုပ်နေသောလမ်းညွှန်ကိုပြောင်းလဲရန်အသုံးပြုသည်။ ၎င်းသည်ကျွန်ုပ်တို့အားသတ်သတ်မှတ်မှတ်လမ်းညွှန်တစ်ခုသို့သွားရန်ခွင့်ပြုထားပြီးနောက်ဆက်တွဲစစ်ဆင်ရေးများပြုလုပ်နိုင်သည်။

    သဒ္ဒါ:

     <span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">ftp_chdir</span></span><span> ( resource </span><span><span class="hljs-variable">$ftp_stream</span></span><span> , </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$directory</span></span><span> )
    </span></span>
    • $ ftp_stream : FTP server သို့ဆက်သွယ်မှုအရင်းအမြစ်။

    • $ directory : ပြောင်းရန်ပစ်မှတ်လမ်းညွှန်။

2 ။ FTP_Site နှင့် FTP_CHDIR ကိုသုံးပါ

အချို့သောအခြေအနေများတွင် developer များသည်အသုံးပြုသူများကိုသတ်သတ်မှတ်မှတ်လမ်းညွှန်များကို အခြေခံ. အသုံးပြုသူများကိုကန့်သတ်ခြင်းများကိုကန့်သတ်ခြင်းသို့မဟုတ်ခွင့်ပြုချက်အမျိုးမျိုးကိုကန့်သတ်ထားခြင်းသို့မဟုတ်ခွင့်ပြုချက်အမျိုးမျိုးကိုခွင့်ပြုထားသည်။ ဤကိစ္စတွင် FTP_SITE နှင့် FTP_CHDIR လုပ်ဆောင်ချက်များကိုထိရောက်စွာပြုလုပ်နိုင်သည်။

FTP server တစ်ခုတွင်အသုံးပြုသူများအတွက်မတူညီသော directory access permissions များကိုသတ်မှတ်ထားရန်လိုအပ်သည်ဆိုပါစို့။ အဆင့်များသည်အောက်ပါအတိုင်းဖြစ်သည် -

1 ။ ပစ်မှတ်လမ်းညွှန်ကိုရိုက်ထည့်ရန် FTP_CHDIR ကို သုံးပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည်ခွင့်ပြုချက်များကိုထည့်သွင်းလိုသည့်ပစ်မှတ်လမ်းညွှန်ကိုထည့်ရန် FTP_CHDIR ကို သုံးပါ။ ကျွန်ုပ်တို့သည် FTP server နှင့်ချိတ်ဆက်ထားပြီးဖြစ်သည်ဆိုပါစို့။ အသုံးပြုသူသည် User_Data အမည်ရှိလမ်းညွှန်ကိုရယူလိုသည်ဆိုပါစို့။

 <span><span><span class="hljs-variable">$ftp_server</span></span><span> = </span><span><span class="hljs-string">'ftp.example.com'</span></span><span>;
</span><span><span class="hljs-variable">$ftp_user</span></span><span> = </span><span><span class="hljs-string">'username'</span></span><span>;
</span><span><span class="hljs-variable">$ftp_pass</span></span><span> = </span><span><span class="hljs-string">'password'</span></span><span>;

</span><span><span class="hljs-comment">// ဆက်သွယ်မှုတစ်ခုတည်ဆောက်ပါ</span></span><span>
</span><span><span class="hljs-variable">$ftp_conn</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ftp_connect</span></span><span>(</span><span><span class="hljs-variable">$ftp_server</span></span><span>);
</span><span><span class="hljs-variable">$login_result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ftp_login</span></span><span>(</span><span><span class="hljs-variable">$ftp_conn</span></span><span>, </span><span><span class="hljs-variable">$ftp_user</span></span><span>, </span><span><span class="hljs-variable">$ftp_pass</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$ftp_conn</span></span><span> || !</span><span><span class="hljs-variable">$login_result</span></span><span>) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">'FTP connection has failed!'</span></span><span>);
}

</span><span><span class="hljs-comment">// ပစ်မှတ်လမ်းညွှန်ရိုက်ထည့်ပါ</span></span><span>
</span><span><span class="hljs-variable">$target_dir</span></span><span> = </span><span><span class="hljs-string">'/user_data/'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">ftp_chdir</span></span><span>(</span><span><span class="hljs-variable">$ftp_conn</span></span><span>, </span><span><span class="hljs-variable">$target_dir</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Successfully changed to <span class="hljs-subst">$target_dir</span></span></span><span>\n";
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Failed to change directory to <span class="hljs-subst">$target_dir</span></span></span><span>\n";
}
</span></span>
2 ။ ftp_site ကိုအသုံးပြုပြီး directory permissions set

Target Directory သို့ပြောင်းပြီးပြီးနောက်ကျွန်ုပ်တို့သည် directory permissions များကိုထိန်းချုပ်ရန် FTP_SITE မှတဆင့်ဆာဗာသို့ command များပို့နိုင်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် directory ကိုဖတ်ရန်တစ်ခုတည်းသောစာဖတ်ခြင်းကိုသာသတ်မှတ်လိုပါကသို့မဟုတ်အသုံးပြုသူတစ် ဦး အားရေးသားခြင်းကိုပြုလုပ်ရန်ခွင့်ပြုလိုပါကသက်ဆိုင်ရာ command ကိုပေးပို့နိုင်သည်။

ကွဲပြားသော FTP ဆာဗာများသည်ကွဲပြားခြားနားသော command များကိုထောက်ပံ့သည်။ ဥပမာအားဖြင့်အချို့သောဆာဗာများတွင် directory permissions များကိုအောက်ပါနည်းတူလမ်းညွှန်ချက်များနှင့်သတ်မှတ်နိုင်သည်။

 <span><span><span class="hljs-comment">// ဖတ်ရန်သာ</span></span><span>
</span><span><span class="hljs-variable">$command</span></span><span> = </span><span><span class="hljs-string">'CHMOD 444 '</span></span><span> . </span><span><span class="hljs-variable">$target_dir</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">ftp_site</span></span><span>(</span><span><span class="hljs-variable">$ftp_conn</span></span><span>, </span><span><span class="hljs-variable">$command</span></span><span>);

</span><span><span class="hljs-comment">// writeable သတ်မှတ်</span></span><span>
</span><span><span class="hljs-variable">$command</span></span><span> = </span><span><span class="hljs-string">'CHMOD 755 '</span></span><span> . </span><span><span class="hljs-variable">$target_dir</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">ftp_site</span></span><span>(</span><span><span class="hljs-variable">$ftp_conn</span></span><span>, </span><span><span class="hljs-variable">$command</span></span><span>);
</span></span>

မှတ်ချက်။ ။ FTP_Site သည် FTP ဆာဗာများအားလုံးမှပံ့ပိုးထားသောစံသတ်မှတ်ချက်မဟုတ်ပါ, အကယ်. ဆာဗာသည်ဤ command များကိုမပံ့ပိုးပါကခွင့်ပြုချက်စီမံခန့်ခွဲမှုလိုအပ်ပါက (FTP ဆာဗာမှပေးသောထိန်းချုပ်မှု panel ကိုအသုံးပြုခြင်း) ။

3 ။ မတူညီသောအသုံးပြုသူများအတွက်မတူညီသောခွင့်ပြုချက်များကိုသတ်မှတ်ပါ

FTP_CHDIR နှင့် FTP_Site ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်မတူညီသောအသုံးပြုသူများသို့မဟုတ်အုပ်စုများအတွက်ခွင့်ပြုချက်အမျိုးမျိုးကိုသတ်မှတ်နိုင်သည်။ ဥပမာအားဖြင့်, အုပ်ချုပ်သူများအားလုံးသည်လမ်းညွှန်များအားလုံးကိုရယူနိုင်သည်, သာမန်အသုံးပြုသူများသည်တိကျသောလမ်းညွှန်များကိုသာရယူနိုင်သည်။ ဤတွင်ရိုးရှင်းသောအကောင်အထည်ဖော်မှုဥပမာတစ်ခုဖြစ်သည်။

 <span><span><span class="hljs-comment">// အသုံးပြုသူအခန်းကဏ် passes ကိုယူဆ $user_role ရဲ့တရားသဖြင့်စီရင်ကြကုန်အံ့</span></span><span>
</span><span><span class="hljs-variable">$user_role</span></span><span> = </span><span><span class="hljs-string">'admin'</span></span><span>; </span><span><span class="hljs-comment">// သို့မဟုတ် 'user'</span></span><span>

</span><span><span class="hljs-comment">// အုပ်ချုပ်ရေးမှူးအပြည့်အဝခွင့်ပြုချက်ရှိပါတယ်</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$user_role</span></span><span> == </span><span><span class="hljs-string">'admin'</span></span><span>) {
    </span><span><span class="hljs-title function_ invoke__">ftp_chdir</span></span><span>(</span><span><span class="hljs-variable">$ftp_conn</span></span><span>, </span><span><span class="hljs-string">'/admin_data/'</span></span><span>);
    </span><span><span class="hljs-title function_ invoke__">ftp_site</span></span><span>(</span><span><span class="hljs-variable">$ftp_conn</span></span><span>, </span><span><span class="hljs-string">'CHMOD 777 /admin_data'</span></span><span>);
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Admin access granted to /admin_data\n"</span></span><span>;
} </span><span><span class="hljs-keyword">elseif</span></span><span> (</span><span><span class="hljs-variable">$user_role</span></span><span> == </span><span><span class="hljs-string">'user'</span></span><span>) {
    </span><span><span class="hljs-title function_ invoke__">ftp_chdir</span></span><span>(</span><span><span class="hljs-variable">$ftp_conn</span></span><span>, </span><span><span class="hljs-string">'/user_data/'</span></span><span>);
    </span><span><span class="hljs-title function_ invoke__">ftp_site</span></span><span>(</span><span><span class="hljs-variable">$ftp_conn</span></span><span>, </span><span><span class="hljs-string">'CHMOD 444 /user_data'</span></span><span>);
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"User access granted to /user_data\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Invalid role\n"</span></span><span>;
}
</span></span>

ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည် directory access perments များကိုအသုံးပြုသူအခန်းကဏ် as ကလတင်အရ directory access permissions များကိုပြောင်းလဲနိုင်သည်။

3 ။ အကျဉ်းချုပ်

FTP_Site နှင့် FTP_CHDIR ကို ပေါင်းစပ်ခြင်းအားဖြင့် Developer များသည် FTP ဆာဗာများပေါ်တွင်ဖိုင်နှင့်လမ်းညွှန်ခွင့်ပြုချက်များကိုပြောင်းလွယ်ပြင်လွယ်စေနိုင်သည်။ FTP_CHDIR function သည်ကျွန်ုပ်တို့အားလမ်းညွှန်များကိုကူညီ သည် ,

ဤလုပ်ဆောင်ချက်များသည်အားကြီးသောထိန်းချုပ်နိုင်စွမ်းများကိုအသုံးပြုသော်လည်းအသုံးပြုသောအခါဆာဗာ၏ခွင့်ပြုချက်စီမံခန့်ခွဲမှုများကိုရှင်းလင်းစွာနားလည်ရန်နှင့်ဆာဗာ၏လိုအပ်ချက်များကိုအညီညှိနှိုင်းရန်အရေးကြီးသည်။

သင့်လျော်သောခွင့်ပြုချက်ထိန်းချုပ်မှုဖြင့်မလိုအပ်သောခွင့်ပြုချက်ယိုစိမ့်ခြင်းသို့မဟုတ်အလွဲသုံးစားမှုကိုရှောင်ရှားခြင်းမှရှောင်ရှားနေစဉ် FTP server ၏လုံခြုံရေးကိုသေချာစေနိုင်သည်။