Linux System Administration [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...

Table of contents :
မာတိကာ......Page 1
Linux Ninja Page Lesson Re edit......Page 4

Citation preview

Kaung Myat Naing, Yin Thu, Xero Cool, Linux Ninja Page



မာတိကာ စဉ်



အက ကာင်းအရာ



စာမျကနာ



၁။



Linux မိတ်ဆက်



1~3



၂။



CentOS Linux



4



၃။



Installation centos linux on virtual box



5



၄။



user, application, kernel and shell



6~8



၅။



linux machine ၌ Terminal ဖွငခ် ြင််း



9



၆။



linux file system hierarchy



10~12



၇။



linux ရ command syntax အက ကြောင််း



13~15



၈။



file paths on linux system



16



၉။



linux စက်က ေါ်တွင် directory တစ်ြုမတ ှ စ်ြုသုိ က်းကခ ြောင််းခြင််း



17



၁၀။



file နှင ် directory မ ြော်းကို list ထုတ် ကညခ် ြင််း



18~19



၁၁။



file နှင ် သက်ဆုင ိ က ် သြော



20~21



၁၂။



directory နှင ် သက်ဆုင ိ က ် သြော



22~23



၁၃။



date and time



24~26



၁၄။



copy က်း ကမယ်



27~28



၁၅။



move and rename files and directories



29~30



၁၆။



command တစ်ြုနင ှ ် ဆိုငက ် သြော အကအညီမ ြော်းကို ကညရ ် ှု ခြင််း



31~32



၁၇။



head, tail, cat, more, lsess



33~34



၁၈။



creating and editing text file in linux



35~36



၁၉။



creating user account



37~39



၂၀။



creating group



40~41



၂၁။



user account နှင ် သက်ဆုင ိ က ် သြော



41~43



၂၂။



group နှင ် သက်ဆုင ိ က ် သြော



44



၂၃။



superuser Vs normal user Vs administrator



45~46



၂၄။



file နှင ် directory/folder မ ြော်းကို permission သတ်မတ ှ ်ခြင််း



47~52



၂၅။



How to prepare for RHCSA Exam



53~54



၂၆။



Linux Shell Scripting



55~56



၂၇။



Special Permission



57~58



၂၈။



Access Control List (ACL)



58~61



၂၉။



default permission and umask



62~64



၃၀။



compression and decompression



65~68



၃၁။



password management



68~71



၃၂။



RPM (redhat package manager)



71~72



၃၃။



YUM (yellow-dog update & modify)



73~75



၃၄။



RPM Vs YUM



75



၃၅။



adding repo link



76~77



Kaung Myat Naing, Yin Thu, Xero Cool, Linux Ninja Page ၃၆။



controlling services (Services မ ြော်းကို စီမံခြင််း)



78~80



၃၇။



(ssh အ ိင ု ်း် ၁) ssh ခဖင ် password ကို အကခြခ ြု၍ remote login ဝင်ခြင််း



81~82



၃၈။



(ssh အ ိင ု ်း် ၂) ssh with private-public key



82~83



၃၉။



(ssh အ ိင ု ်း် ၃) root account ဆီသုိ ssh ခဖင ် remote login ဝင်ခြင််းမှ တြော်းဆီ်းခြင််း



83~84



၄၀။



(ssh အ ိင ု ်း် ၄) normal account အြော်း ssh ခဖင ် remote ဝင်ခြင််းမှ တြော်းဆီ်းခြင််း



84~85



၄၁။



(ssh အ ိင ု ်း် ၅) ssh ၏ default port number အြော်း ကခ ြောင််းလခြင််း



85~86



၄၂။



rsylog



87~89



၄၃။



system-journal



89~91



၄၄။



The True Happiness is Playing with linux



91~92



၄၅။



network configuration with nmcli



92~94



၄၆။



network configuration (manually)



95~96



၄၇။



hostname



97



၄၈။



root password recovery (redhat, centos, fedora)



98



၄၉။



scp (secure copy)



99



၅၀။



rsync ခဖင ် က်းယခြင််း



100



၅၁။



sftp (secure file transfer protocol)



101



၅၂။



identifying file system and device



102~104



၅၃။



how to set time with timedatectl command



105~106



၅၄။



linking, hard link, soft link



106~107



၅၅။



finding via linux terminal



108~112



၅၆။



controlling jobs



112~113



၅၇။



controlling processes



114~115



၅၈။



monitoring the system with top



115~116



၅၉။



grep ခဖင ် စြောသြော်းမ ြော်းကို ဆွထုတ်ခြင််း



117~119



၆၀။



at ကိုအသံု်းခ ြု၍ job တစ်ြုကို အြ ိနဇ ် ယြော်းခဖင ် run ကစခြင််း



119~120



၆၁။



crontab ကိုအသံု်းခ ြု၍ job တစ်ြုကို အြ ိနဇ ် ယြော်းခဖင ် ံုမန ှ ် run ကစခြင််း



121~122



၆၂။



kernel update



122~123



၆၃။



System cron jobs



123~124



၆၄။



SELinux (Security Enhanced Linux)



124~126



၆၅။



HD (hard disk) အြော်း partition ိင ု ်း် ခြင််း format ြ ခြင််း mount လု ်ခြင််း



126~128



၆၆။



virtual memory (swap)



128~129



၆၇။



linux firewall (iptables)



130~135



၆၈။



LVM – Logical Volume Management



135~137



၆၉။



Accessing Network Storage (NFS)



138~139



၇၀။



Accessing SMB (SAMBA) File System



140~142



၇၁။



Firewalld (Linux New Generation Firewall)



143~144



Bonus Track



Kaung Myat Naing, Yin Thu, Xero Cool, Linux Ninja Page ၇၂။



Network Bonding in redhat, centos, fedora linux server



145~148



၇၃။



UFW : Uncomplicated Fire Wall



148~152



၇၄။



making, mounting, burning iso file and creating bootable usb from command line 153~155



၇၅။



Clean Memory and CPU Cache



156~157



၇၆။



For Linux System Administrator Interview



158~159



၇၇။



redhat linux ကို subscription နသံု်း ကမယ်



160



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



######## linux မိတဆ ် က် ##### linux ဆတ ို ာ ဘာလဲ? သသူလည််း ရမယ်။ မသသူလည််း ရမယ်။ သချင်နေသူနတွေလည််း ရမယ်။ ဟိုတ်ကဲ။ဲ့ ကျနော် သသနလာက် မျှနေပါရနေ။ ခို office လိုပ်ငေ််းနတွေ နတာ်နတာ်မျာ်းမျာ်းက computer နတွေမာ သ်းို နေတဲ၊ဲ့ computer နတွေမာ install လိုပ် ထညဲ့်သင ွေ ်း် ထာ်းတဲ၊ဲ့ operating system ကို Windows လို ဲ့ နခေါ်ပါတယ်။ windows xp, windows 7, windows 8, windows 10 ေသည်ဖြငန ်ဲ့ ပါ။ဲ့ windows OS ရဲ ဲ့ ထိုတ်လိုပ်သက ူ microsoft ပါ။ အလာ်းတူေွောပဲ၊ linux ဆိုတာသည်လည််း ဘက်ေို သ်းို လရတဲ ို ဲ့ ဲ့ operating system platform တေ်ခိုပါ။ ဒီ linux platform နပေါ်မာမ linux အသွေငက ် ွေဲနတွေ အမျာ်းကကီ်း ရပါတယ်။ ဒါနတွေကို linux distro နတွေလို နခေါ် ဲ့ ပါတယ်။ linux ကို ဘယ်နေရာမာ ဖမင်နင ို မ ် လဲဆန ို တာ၊ဲ့ အနကာင််းဆ်းို ဥပမာနပ်းရရင်၊ ကျနော်တို ဲ့ mobile phone နတွေမာ အသ်းို ဖပြုထာ်းတဲဲ့ Android ဆတ ို ာသည်လည််း linux OS တေ်ခိုပါပဲ။ linux ရဲ ဦ်းဆ ်းို ြေ်တီ်းရင်ကနတာဲ့ Linus Torvalds ပါ။ 1991 ခိုနေ်မာ ေတင် ြေ်တီ်းခဲဲ့ပါတယ်။ linux ဲ့ ကို ပင်ဂွေင်း် ငက်နလ်းေဲ ဲ့ကယ ို ်ော်းဖပြုနလဲ့ရပါတယ်။ နောက်ပိုင်း် မာ linux ဟာ hacker နတွေ ကကာ်းမာ နရပေ််းော်းသွော်းတာနကကာင၊်ဲ့ အရေ်အဟိုေေ ် ဲ ဲ့ develope ဖြေ်လာပပီ်း၊ ေယ်ပယ်အသီ်းသီ်းရဲ ဲ့လိုအပ်ချက်အရ ဖြညဲ့်ေွေက် ဖပင်ဆင် နရ်းသာ်းထာ်းတဲဲ့ linux distro နတွေ အနဖမာက်အမျာ်း နပေါ်ထက ွေ ်လာပါတယ်။ linux ဟာ ေည််းပညာနလာကမာ အရမ််း နပါက်သာွေ ်းတယ်လို ဲ့ ဆရ ို မာပါ။ linux distro နထာင်ေ ဲ ဲ့ ချီပပီ်း ရပါတယ်။ အဲဒထ ီ က ဲ မ လူသမျာ်း ထင်ရာ်းတာနတွေကနတာဲ့ Debian, redhat, centOS, fedora, ubuntu, suse, kali, Arch,.. ေသည်ဖြငန ်ဲ့ ပါ။ဲ့ linux ကို အသ်းို ဖပြုရာမာ မမ လိုအပ်ချက်ေ ဲ ဲ့ ကိုက်ညီမယဲ့် distro ကို နရွေ ်းချယ် အသ်းို ဖပြုရို ပါပဲ။ linux ဟာ windows တို ဲ့ mac OS တလ ို ဲ့ ို အခနကက်းနငွေ ေဲ ဲ့ ေယ်ယူရတာ မဟိုတပ ် ဲ၊ free အနေေဲ ဲ့လွေတ်လပ်ေွော ဖြေခ ် ဲ့ ျီတဲဲ့ OS တေ်ခိုပါ။ linux OS နတွေကို internet ကနေ အလွေယ်တကူ download လိုပ် ရယူနင ို ပ ် ါတယ်။ linux OS ေဲ အတူ သူက ဲ့ ဲ့ ို ြေ်တီ်းထာ်းတဲဲ့ source code နတွေကိုပါ တေ်ပါတည််း ထညဲ့်နပ်းထာ်း တာနကကာင၊်ဲ့ ေည််းပညာရင်နတွေ developer နတွေ အတွေက် အမျာ်းကကီ်း အကျြု်း ရနေပါတယ်။ linux ကို personal သ်းို desktop version အနေေဲနရာ လိုပ်ငေ််းသ်းို server version အနေေဲပါ ဲ့ ဲ့ ရရနင ို ပ ် ါတယ်။ security အာ်းနကာင််းတာ၊ နပါပါ်းဖမေ် ဆေ်တာနတွေနကကာင၊်ဲ့ linux ကို bank နတွေ telecom ဲ့ နတွေ ISP (Internet Service Provider) နတွေမာ server အဖြေ် သ်းို ေွေဲကကပါတယ်။ server အတွေက် ထင်ရာ်းတဲဲ့ distro နတွေကနတာ၊ဲ့



1



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



1.Red Hat Enterprise Linux 2.Ubuntu Server 3.CentOS 4.SUSE Enterprise Linux 5.Fedora server ေသည်ဖြင်ဲ့ ရပါတယ်။ linux ကို personal အနေေဲလည် ်း အသ်းို ဖပြုနင ို ပ် ပီ်း၊ ရို ်းလိုပ်ငေ််း အတွေက် Open office, ဲ့ photo editing အတွေက် GIMP, design ဆွေြ ဲ ိုအတွေ က် Open CAD ေတဲဲ့ application နတွေ ဲ့ ရပါတယ်။ နောက်ပပီ်း linux နပေါ်မာ windows application နတွေကို wine ကနေ တေ်ဆင်ဲ့ ထညဲ့်သင ွေ ်း် အသ်းို ဖပြုတာ၊ DOTA II game ကော်းတာနတွေကိုလည််း ဖပြုလိုပ်နင ို ပ ် ါနသ်းတယ်။ personal အတွေက် လူသ်းို မျာ်းတဲဲ့ distro နတွေကနတာ၊ဲ့ 1.Ubuntu 2.Fedora 3.Linux Mint 4.openSUSE 6.Deepin ေသည်ဖြင်ဲ့ ရပါတယ်။ ဒါအဖပင် ၊ Hacking အတွေက် အထူ်းဖပြုထာ်းတဲဲ့ linux distro နတွေလည််း ရပါနသ်းတယ်။ ဲ့ Hacking အတွေက် လူသ်းို မျာ်းတဲဲ့ distro နတွေကနတာ၊ဲ့ 1.Debian 2.Kali 3.Arch 4.Parrot ေသည်ဖြင်ဲ့ ရပါတယ်။ နောက်ပပီ်း linux ကို သ်းို ေွေဲရင် virus အနတရာယ် အတွေက် နကကာက်ေရာ မလိုပါဘူ်း။ error မျာ်း ေည််းပါ်းပပီ်း system crash ဖြေ်ဖခင််းမလည််း ကင််းနေ်းပါတယ်။ ဒါနကကာင ်ဲ့ linux ဟာ နရွေ ်းချယ် အသ်းို ဖပြုသငတ ်ဲ့ ဲဲ့ operating system platform တေ်ခိုပါ။ ဲ့ နင ို င ် တကာမာနတာဲ့ linux ကို ကျယ်ကျယ်ဖပေဖ် ပေ ်းို ဖပြုနေကကပါပပီ။ ဲ့ ် အသ ဲ့ ကျနော်တို ဲ့ Myanmar နင ို င ် မာလည််း linux ကို ေတင် အသ်းို ဖပြုနေကကပါပပီ။ linux ကို ေတ်ေင်ော်းနေကကပါပပီ။ ဒါနကကာင ်ဲ့ မမ လိုအပ်ချက်ေ ဲ က ဲ့ ဲ့ ိုက်ညီမယဲ့် linux distro တေ်ခိုကို နရွေ ်းချယ် အသို်းဖပြုကကပါလို ဲ့ ဒီကနေ အဆဖို ပြုလိုက်ပါရနေ။ linux အနကကာင််း အကျဉ်းချြုပ်ကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပကကပါနေ။



2



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



Yin Thu (9-5-2018)



3



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



######## centOS linux ##### ေည််းပညာလမ််းနကကာင််းအရ၊ linux ေဲ ပတ် သက်ပပီ်း နလဲ့လာမယ်ဆရ ို င်၊ ေမ််းသပ်မယ်ဆရ ို င်၊ ဲ့ centOS ကို virtual box (ကွေဲဖပာ်းနသာ operating system မျာ်းကို install လိုပ် ေမ််းသပ်နင ို န ် သာ Application) မာ တင်ပပီ်း နလဲ့ကျငတ ်ဲ့ ာ အသငန ်ဲ့ တာ်ဆ်းို ပါ။ ကျနော်ဲ့ suggestion နပါနော် ဲ့ ။ centOS ေဲ ဲ့ red hat, fedora သပ်မကွောဖခာ်းလပါဘူ်း။ ubuntu, kali, susue တေဲ ို ဲ့ လည် ်း အနဖခခ ဲ့ command နတွေ သနဘာတရာ်းနတွေ အတူတူပါပဲ။ နဖပာေရာအနေေဲ၊ ဲ့ centOS ေဲ Red Hat ကွောတာကနတာဲ့ centOS က community ကို အနဖခ ဲ့ ဖပြုပပီ်း red hat က license ေဲ ဲ့ေယ်သ်းို ရတာပါပဲ။ RHEL (Red Hat Enterprise Linux) မာ လိုအပ်ချက်အရ packages နတွေကို သွေင်း် မယ် ဆတ ို ာေဲ registeration တေ််းလိုပ်ခိုင်း် ပါလမ်မ ်ဲ့ centOS ကို အသ်းို ဖပြုရတာက ပိုလွေတ် ဲ့ ဲ့ ယ်။ ဒါနကကာင ဲ့ လပ်ပါတယ်။ ခိုဆရ ို င် centOS version 7 ကို နရာက်နေပါပပီ။ အရင် version အနဟာင််းမာ မပါခဲတ ဲ့ ဲဲ့ systemctl တလ ို ဲ့ ို command နတွေလည််း ပါရလာပါပပီ။ centOS Community ENTerprise Operating System ကို Active multimedia, Excellent, IT bank ေတဲဲ့ software အနရာင််းဆင ို န ် တွေမာ အလွေယ်တကူ ေယ်ယူနင ို ပ ် ါတယ်။ online ကနေ download ချမယ်ဆရ ို င်နတာဲ့ https://www.centos.org/ ကနေ လွေတ်လတ ွေ ် လပ်လပ် free ရယူနင ို ပ ် ါတယ်။ ဒါနကကာင ်ဲ့ ေည််းပညာပင ို ်း် အရ linux ကို နလဲ့လာမယ်ဆို centOS ကို အသ်းို ဖပြုပါ လို ဒီ ဲ့ ဲ့ နေရာ ကနေ အဆဖို ပြုပါရနေ။ Yin Thu (9-5-2018)



4



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



######## installation centos linux on virtual box ##### အမျာ်းေို က linux ကို မကူ်းနဖပာင််းခင် microsoft ရဲ ဲ့ windows operating system ေဲ ဲ့ အသာ်းကျ နေနလဲ့ ရပါတယ်။ ဒီအခါမာ၊ မမ ရင််းန်းီ ကျွမ််းေင်ပပီ်းသာ်း windows ကို မဖြြုတ်ပဲ ORACLE virtual box နပေါ်မာ linux ကို သွေင်း် ယူပပီ်း ေမ််းသပ်တာက ပိုမို အဆင်နဖပနေမာပါ။ ဒါက နလဲ့လာခါေမာ ပိုအဆင်နဖပပါတယ်။ virtual box ကို download လိုပ် ရယူရမယဲ့် link ကနတာဲ့ ဒီမာပါ။ http://download.virtualbox.org centos linux ကို virtual box နပေါ် ဘယ်လို သွေင်း် ယူရမယ် ဆတ ို ာကိုနတာဲ့ နအာက်ပါ link က youtube video မာ ကကညဲ့်ရှုနင ို ပ ် ါတယ်။ https://www.youtube.com/watch?v=Pcl417NR2xc အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (10-5-2018)



5



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### user, application, kernel and shell ##### linux အနကကာင််းကို နလဲ့လာမယ်ဆရ ို င် user, application, kernel ေဲ ဲ့ shell အနကကာင််းကို ဦ်းေွော နဖပာမ ဖပညဲ့်ေိုမာပါ။ #user_and_application ရင််းပါတယ်။ user ဆတ ို ာ computer ကို နေခိုင်း် အသ်းို ဖပြုသူနပါ။ဲ့ application ဆတ ို ာ user အတွေက် အလိုပ် လိုပ်ရတဲဲ့ software နပါ။ဲ့ #kernel ေည််းပညာနလာကမာ kernel ဆတ ို ဲဲ့ အသ်းို အနှုေ်း် ကို ကကာ်းဘူ်းမယ်ထင်ပါတယ်။ အာန ဲ့ တာဲ့ kernel ဆတ ို ာ ဘာလဲ နလဲ့လာကကညဲ့်ရနအာင်။ kernel ဆတ ို ာ computer operating system တေ်ခိုရဲ မရ ဲ့ မဖြေ် အချက်အချာအကျဆ်းို ပင်မ core program pကို နခေါ်ဆတ ို ဲဲ့ အမည်ပါ။ အဲဒ ီ core က ဘာနတွေ လိုပ်နပ်းသလဲ ဆန ို တာ၊ဲ့ operating system ရဲ ဲ့ အေတ်အပိုင်း် အာ်းလို်းအတွေက် အနဖခခကျတဲဲ့ basic services နတွေကို ထိုတ်လိုပ်နပ်းပါတယ်။ application software နတွေက နပ်းပလ ို ဲ့ ိုက်တဲဲ့ input/output request နတွေကို cpu (central processing unit) ေဲ ဲ့ တေ်ဖခာ်း electronic အေတ်အပိုင်း် နတွေ ော်းလည်တဲဲ့ machine language အဖြေ် ဖပေ်ဆို ေီမနပ်းပါတယ်။ ဒါနကကာင ်ဲ့ computer operating system ရဲ အဓ ဲ့ ဲ့ က အကျဆ်းို ပင်မအပိုင်း် core ကို kernel လို နခေါ် ဲ့ ပါတယ်။ #shell kernel အနကကာင််း ပပီ်းသွော်းနတာဲ့ shell အနကကာင််း နဖပာကကရနအာင်။ shell ဆိုတာကနတာဲ့ computer အသ်းို ဖပြုသူ user ေဲ ဲ့kernel ရဲ အကကာ်းက ကကာ်းခ interface တေ်ခိုပါ။ ဲ့ operating system ထဲကို login ေင်တယ်ဆပ ို ါေ၊ို ဲ့ user name ေဲ ဲ့ password ကို ေေ်နဆ်းပပီ်းရင် login program ဟာ shell ကနေ တေ်ဆငမ ်ဲ့ kernel ဆီ ချတ်ဆက်ရပါတယ်။ kernel ဟာ ပင်မ core ဖြေ်တာေဲ ဲ့ အညီ ၎င််းဆီကို instruction အမာ်းနတွေ နရာက်သာွေ ်းရင်၊ operating system ပျက်ေီ်းသွော်းနင ို ပ ် ါတယ်။ shell ဟာ command line interpreter ဖြေ်ပပီ်း kernel ဆီကို instruction အမာ်းနတွေ နရာက်မသွော်းနအာင် ထေ််းနကကာင််းနပ်းပါတယ်။ linux မာ Alt+F2 နပ် gnome-terminal လို ဲ့ ရို က် Enter နခါက်၊ terminal ကို ြွေငပ်ဲ့ ပီ်း မရတဲဲ့ command တေ်ခို ရို က်ကကညဲ့်မယ်ဆရ ို င်၊ ဥပမာ >> lulu လို ရ ဲ့ ို က်ပပီ်း enter နခါက်ကကညဲ့်မယ်ဗျာ။ bash: lulu: command not found ဆပို ပီ်း နပေါ်လာပါလမ်မ ဲ့ ယ်။



6



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ဒါက kernel ဆီ instruction အမာ်း နရာက်မသွော်းနအာင် shell က တာ်းဆီ်းလိုက်တာ နကကာငပ ်ဲ့ ါပဲ။ shell ေဲ ပတ် သက်လို linux system မာ bash shell, sh shell, csh shell, tcsh shell ေသဖြင်ဲ့ ဲ့ ဲ့ ပါေင်ပပီ်း bash shell ကို linux ရဲ default shell အနေေဲ ဲ့ ထညဲ့်သင ွေ ်း် ထာ်းနလဲ့ ရပါတယ်။ terminal ဲ့ မာ ကျနော်တို ဖမင် ို ာဟာ bash shell ရဲ interface ပါပဲ။ ဲ့ ရမယဲ့် [root@linux /]# ဆတ ဲ့ terminal မာ ကိုယ်အသ်းို ဖပြုနေတဲဲ့ shell အမျြု်းအော်းကို သချင်ရင် echo $0 လို ဲ့ ရို က်ပပီ်း ကကညဲ့်နင ို ပ ် ါတယ်။ ဒါကနတာဲ့ shell ရဲ အနကကာင် ်းပါ။ ဲ့ #summary အာ်းလို်းနပါင််းပပီ်း၊ အတခ ို ျြုပ်နဖပာရရင်နတာဲ့ user ဆတ ို ာ computer ကို နေခိုင်း် သူ၊ သူအတွေ က် kernel ဆီ instruction နတွေ ပလွှ ို ဲ့ တ်ရတာသည် application ... kernel ဆတ ို ာက ဲ့ operating system တေ်ခိုရဲ input/output နတွေကို electronic အေတ်အပိုင်း် (hardware) နတွေ ဲ့ ော်းလည်နအာင် ေီမနပ်းတဲဲ့ ပင်မ core program ၊... shell ဆတ ို ာကနတာဲ့ user/application ေဲ ဲ့ kernel ကကာ်းက အမာ်းအမေ် ေေ်နပ်းတဲဲ့ filter တေ်ခိုနပါ။ဲ့ user/application, kernel ေဲ ဲ့shell အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (10-5-2018)



7



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



CentOS linux ကို laptop မာ တင်ပပီ်းကကမယ် ထင်ပါတယ်။ CentOS linux os ကို root account ေဲ ဲ့ log in ေင်၊ Alt+F2 နပ် gnome-terminal လို ဲ့ ရို က် Enter နခါက်လိုက်ရင် linux ရဲ ဲ့ command နတွေကို run တဲဲ့ Terminal ပွေငလ ်ဲ့ ာပါမယ်။ အဲဒထ ီ မ ဲ ာ cd / လို ဲ့ ရို က် Enter နခါက်လိုကရ ် င် linux ရဲ ဲ့ ပင်မ root directory ဆီ နရာက်ပါမယ်။ ls လို ဲ့ ထပ်ရို က် Enter နခါက်လိုကရ ် င် root, home, lib, etc, var, ... ေသည်ဖြင်ဲ့ directory နတွေကို ဖမင်ရပါမယ်။ ခဏနေရင် အဲဒ ီ directory နတွေဟာ ဘာအတွေက်လဲ ဆတ ို ာကို ရင််းဖပထာ်းတဲဲ့ Linux File System Hierarchy အနကကာင််း တင်နပ်းပါမယ် ဲ့ ။ နလဲ့လာသူနတွေ အဆင်နဖပပါနေ။ Yin Thu (11-10-2018)



8



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



######## linux machine ၌ Terminal ဖွငခ် ြင််း ##### linux ေဲ ရင် ဲ့ ်းန်းီ သူနတွေကနတာဲ့ ဒီနခါင််းေဉကို ကကညဲ့်ပပီ်း ရီကကမာပါ။ ဟိုတ်ကဲဲ့ ရီပါ။ ဒါနပမယဲ့် ခိုမ ေနလဲ့လာခါေ သူ ၁ နယာက် အတွေက်ကနတာဲ့ ဒါက လိုအပ်ပါတယ်။ windows operating system မာ command နတွေ ရို က်ထညဲ့်တဲဲ့ window ကို command prompt လို နခေါ် ပပီ်း၊ linux မာနတာဲ့ ဒါကို terminal လို နခေါ် ဲ့ ဲ့ ပါတယ်။ ဟိုတ်ပပီဗျာ၊ user name, password ထညဲ့်ပပီ်း linux machine ထဲ login ေင်ပပီ်းပပီ၊ linux machine ရဲ desktop screen နပေါ်လာပပီ ဆိုကကပါေ။ို ဲ့ ဲ့ command နတွေ ရို က်ထညဲ့်ြို terminal နလ်းကို ဘယ်လို ြွေငမ ်ဲ့ လဲ? ဲ့ ၁။ desktop နပေါ်မာ mouse ေဲ ဲ့ right click နထာက်လိုက်ပါ။ နပေါ်လာတဲဲ့ pop up menu ထဲကနေ Terminal သမဟို ို ဲ့ တ် open terminal ဆိုတာနလ်းကို ထပ်နပ်ပပီ်း terminal ကို ြွေငပ ်ဲ့ ါ။ ၂။ ဘယ်ဘက်အနပေါ်နထာင်ဲ့ application menu ထဲကနေ System Tools > Terminal ကို နရွေ ်းပပီ်း ြွေငပ ်ဲ့ ါ။ ၃။ keyboard နပေါ်က Alter+F2 ကို တွေဲ နပ်ပါ။ နပေါ်လာတဲဲ့ dialogue box ထဲမာ gnometerminal လို ရ ဲ့ ို က် enter နခါက်ပါ။ ဒီေည််းနတွေထက ဲ တေ်ေည််းေည််း အသ်းို ဖပြုပပီ်း Terminal ကို ြွေငန ်ဲ့ င ို ပ ် ါပပီ။ ကဲ !! linux ကို ေတင်နလဲ့လာမယဲ့်သမ ူ ျာ်း အဆင်နဖပကကပါနေ။ Yin Thu (11-5-2018)



9



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### linux file system hierarchy ##### linux ရဲ ဲ့ command နတွေ ရို က်ထညဲ့်နပ်းရတဲဲ့ နေရာ၊ run တဲန ဲ့ ေရာကို terminal လို ဲ့ နခေါ်ပါတယ်။ အဲဒ ီ terminal ထဲမာ command နတွေ မ run ခင် linux ရဲ file ဲ့ system တည်နဆာက် ပိုကို အရင်ဆ်းို သထာ်းြို လ ဲ့ ိုပါတယ်။ Terminal ထဲမာ cd / လို ရ ရို က် Enter နခါက်လက ို ်မယ်ဆရ ို င် ဲ့ ို က် Enter နခါက်၊ ls လို ထပ် ဲ့



bin, boot, dev, etc, home, ..... ေသည်ဖြင်ဲ့ directory/folder နတွေကို ဖမင်ရပါလမ်မ ဲ့ ယ်။ ကိုယ်ရ ဲ့ ဲ linux machine ထဲမာ ဖမင်နေရတဲဲ့ အဲဒ ီ directory နတွေဟာ ဘာအတွေက်လဲဆတ ို ာ ဲ့ သထာ်းသငတ ်ဲ့ ာနပါနော် ဲ့ ။ ပိုနလ်းေဲ ဲ့တွေဲပပီ်း နလဲ့လာကကညဲ့်ရနအာင်။ ပိုမာ ဖမင်ရတဲအ ဲ့ တိုင်း် ၊ linux ရဲ file system ကို tree ပိုေေဲ ဲ့ တည်နဆာက်ထာ်းပပီ်း ဒါကို file ဲ့ system hierarchy လို နခေါ် ဲ့ ပါတယ်။ ကဲ ! ပိုနလ်းေဲ ဲ့တွေဲပပီ်း ေရင််းလိုက်ရနအာင်။ / >> root directory လနခေါ် ို ဲ့ ပါတယ်။ directory အာ်းလို်းရဲ ဲ့ အထက်မာ တည်ရပပီ်း၊ ကျေ် directories အာ်းလို်းဟာ root ရဲ နအာက် မာ တည်ရပါတယ်။ directory အာ်းလို်းရဲ အချြုပ် နပါ။ဲ့ ဲ့ ဲ့ bin >> linux ကို run ြို မရ ဲ့ မဖြေ် လိုအပ်တဲဲ့ binary file နတွေ ပါေင်တဲဲ့ directory တေ်ခိုပါ။ boot >> linux ကို boot လိုပ် ဆွေတ ဲ င်ြို လ ဲ့ ိုအပ်တဲဲ့ boot file နတွေ ပါေင်တဲဲ့ directory တေ်ခိုပါ။ dev >> တပ်ဆင်ထာ်းတဲဲ့ device နတွေေ ဲ သက် ဆင ို တ ် ဲဲ့ file နတွေကို သမ််းထာ်းတဲဲ့ directory တေ်ခိုပါ။ ဲ့ etc >> linux နပေါ်မာ တင်ထာ်းတဲဲ့ software နတွေရဲ ဲ့ configuration file နတွေကို သမ််းထာ်းတဲဲ့ directory တေ်ခိုပါ။ home >> နဆာက်ထာ်းတဲဲ့ user account နတွေရဲ home directory ပါ။ ဥပမာ၊ ပိုထမ ဲ ာ ဖမင်ရတဲဲ့ ဲ့ အတိုင်း် ၊ alice ဆတ ို ဲဲ့ user account ရရင် သူအတွေ က် home directory နအာက်မာ alice ဆတ ို ဲဲ့ ဲ့ directory နလ်း နဆာက်ပပီ်းသာ်း ရနေမာပါ။ root >> linux ရဲ super user ဖြေ်တဲဲ့ root account ရဲ home directory ပါ။ root account ဟာ ဲ့ ဲ့ သူရဲဲ့ ဲ့ home directory ကို တဖခာ်း account နတွေလို home နအာက်မာ မြေ်တ်းီ ပါဘူ်း။ ပိုထက ဲ အတိုင်း် / နအာက်မာ root ဆတ ို ဲဲ့ directory အဖြေ် သီ်းဖခာ်း ရပ်တည်ပါတယ်။ run >> boot လိုပ်လိုကတ ် ဲဲ့ အချေ်ကေလို run နေတဲဲ့ process နတွေ၊ application နတွေ ရဲ run time ဲ့ ဲ့ data နတွေ ပါေင်ပါတယ်။ reboot လိုပ်လိုက်တဲဲ့ အခါမာနတာဲ့ အဲဒ ီ data နတွေကို ြျက်ပေ်ပပီ်း အသေ်တေ်ြေ် ဖပည်လည် ေတင်ပါတယ်။ sbin >> system administration ေဲဆ ို တ ် ဲဲ့ binary file နတွေပါရတဲဲ့ directory တေ်ခိုပါ။ ဲ့ င



10



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



tmp >> application နတွေကို run တဲအ ဲ့ ခါ ယာယီ run မယဲ့် file တချြုျို့ကို သမ််းထာ်းတဲဲ့ directory တေ်ခိုပါ။ အဲဒ ီ file နတွေဟာ 10 ရက်အတွေင်း် ထပ်မ access လိုပ် မခရရင် အလိုအနလျာက် ြျက်ပေ်ခရမာ ဖြေ်ပါတယ်။ usr >> user သွေင်း် ယူထာ်းတဲဲ့ software နတွေ၊ user အသ်းို ဖပြုမယဲ့် command နတွေ၊ system administration command နတွေ ပါေင်တဲဲ့ directory တေ်ခိုပါ။ usr/bin (usr နအာက်က bin) >> user ေဲ ဲ့ သက်ဆင ို တ ် ဲဲ့ command နတွေကို သမ််းဆည််းထာ်းတဲဲ့ directory တေ်ခိုပါ။ usr/sbin (usr နအာက်က sbin) >> user ေဲ ဲ့ သက်ဆင ို တ ် ဲဲ့ system administration command နတွေကို သမ််းဆည််းထာ်းတဲဲ့ directory တေ်ခိုပါ။ usr/include (usr နအာက်က include) >> program နတွေကို ထပ်မ develope လိုပ်ရာမာ compile လိုပ်ရေ် လိုအပ်တဲဲ့ header file နတွေကို သမ််းဆည််းထာ်းတဲဲ့ directory တေ်ခိုပါ။ usr/local (usr နအာက်က local) >> လက်ရ user ေဲသာ ို န ် သာ file နတွေ ပါေင်တဲဲ့ ဲ့ သီ်းဖခာ်းသက်ဆင directory တေ်ခိုပါ။ usr/lib (usr နအာက်က lib) >> user နတွေရဲ application နတွေ အတွေက် လိုအပ်တဲဲ့ library file ဲ့ နတွေကို သမ််းဆည််းထာ်းတဲဲ့ directory တေ်ခိုပါ။ usr/share (usr နအာက်က share) >> user နတွေ share လိုပ် နေမျှနင ို ြ ် ို ဲ့ အတွေက် လိုအပ်နသာ file နတွေ ရတဲဲ့ directory တေ်ခိုပါ။ usr/src (usr နအာက်က src) >> linux kernel ရဲ source code နတွေ ပါရတဲဲ့ directory တေ်ခိုပါ။ ဲ့ usr/X11R6 (usr နအာက်က X11R6) >> X window system အတွေက် လိုအပ်တဲဲ့ file နတွေ ပါရတဲဲ့ directory တေ်ခိုပါ။ var >> ပါေင်တဲဲ့ အနကကာင််းအရာနတွေ မကကာခဏ dynamically နဖပာင််းလဲနေတဲဲ့ variable data နတွေ ရတဲဲ့ directory တေ်ခိုပါ။ database, cache directories, log files ေတာနတွေ ပါေင်ပါတယ်။ var/log (var နအာက်က log) >> system ေဲ ဲ့ သက်ဆင ို န ် သာ log file နတွေ ပါေင်တဲဲ့ directory တေ်ခိုပါ။ var/spool (var နအာက်က spool) >> ောပိုေေေ် ၊ message ပေေေ် ို ဲ့ ၊ printing ေတာနတွေေ ဲ ဲ့ ဲ့ တေ်ဖခာ်း queue လိုပ်ရတဲဲ့ အလိုပ်မေ်သမျှပါေင်တဲဲ့ directory တေ်ခိုပါ။ lib >> linux အတွေက် လိုအပ်တဲဲ့ library file နတွေ ပါေင်ပါတယ်။ windows ရဲ ဲ့ dll file နတွေလိုမျြု်းနပါ။ဲ့



11



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



lost+found >> disk check လိုပ်တဲအ ဲ့ ခါ နတွေျို့ရတဲဲ့ ပျက်ေီ်းနေတဲဲ့ file နတွေ၊ မည်သညဲ့် directory ေဲမဲ့ အဆက်အေပ် မရတဲဲ့ file နတွေကို သမ််းထာ်းတဲဲ့ directory တေ်ခိုပါ။ computer ကို ေေေ်တကျ shutdown မလိုပ်တဲအ ဲ့ ခါ အဲဒလ ီ ို file နတွေ ရနေတတ်ပါတယ်။ misc >> linux ေဲ ဲ့သက်ဆင ို တ ် ဲဲ့ အနထွေနထွေ file နတွေ ပါရတဲဲ့ directory တေ်ခိုပါ။ mnt >> CD Rom, Flash driv, printer ေဲ ဲ့ တေ်ဖခာ်း ဆက်ေပ် device နတွေကို mount လိုပ် တပ်ဆင်တဲဲ့ နေရာပါ။ media >> mount လိုပ်ထာ်းတဲဲ့ CD Drive ထဲက data နတွေကို ဒီနေရာမာ အလိုအနလျာက် လာနရာက် နြေါ် ဖပနလဲ့ ရပါတယ်။ opt >> ထပ်မသွေင်း် ယူထာ်းတဲဲ့ optional software နတွေ ပါေင်တဲဲ့ directory တေ်ခိုပါ။ proc >> pseudo-file system နတွေ ပါရပါတယ်။ ဒီ file နတွေဟာ system configuration parameters နတွေပါ။ hard disk နပေါ်မာ အမေ်တကယ် မတည်ရပဲ linux OS kernel ရဲ memory ဲ့ နပေါ်မာပဲ ရနေတဲဲ့ file နတွေ ဖြေ်ပါတယ်။ cpu information နတွေ memory information နတွေ ပါေင်ပါတယ်။ ခိုနလာက်ဆို linux ရဲ file ်းကို သနလာက်ပပီ ဲ့ system ေဲ ဲ့directory တေ်ခိုချင််းေီရဲ အနကကာင် ဲ့ ထင်ပါတယ်။ ဒီ directory နတွေကို ကကညဲ့်ချင်ရင် Terminalထဲမာ … cd / လို ရ ရို က် enter နခါက်၊ ဒီနလာက်ပါပဲ။ ဲ့ ို က် enter နခါက်၊ ls လို ထပ် ဲ့ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (11-5-2018)



12



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### linux ရ command syntax အက ကြောင််း ##### linux machine ထဲကို root account ေဲ ဲ့ log in ေင်ပပီ်း terminal ကို ြွေငလ ်ဲ့ ိုက်တအ ဲဲ့ ခါ terminal မာ၊ ဥပမာအာ်းဖြင်ဲ့ [root@localhost~]# လို ဖမင် ဲ့ ရပါလမ်မ ဲ့ ယ်။ အဲဒါကို shell prompt လို နခေါ် ဲ့ ပါတယ်။ ၁။ root ကနတာဲ့ user name ပါ။ ၂။ @ ကနတာဲ့ at ကို ညွှေ်း် ဆတ ို ဲဲ့ သနကေတနပါ။ဲ့ ၃။ localhost ကနတာဲ့ linux ကို ေတင် install လိုပ်ေဉမာ နပ်းခဲဲ့တဲဲ့ hostname (တေ်ေည််းအာ်းဖြင်ဲ့ computer name) ပါ။ hostname ကို သချင်ရင် hostname ဆတ ို ဲဲ့ command ကို သ်းို ပပီ်း ကကညဲ့်နင ို ပ ် ါတယ်။ ၄။ ~ ကနတာဲ့ current account ရဲ home directory (/root) ကို နရာက်နေတယ် လို ဖပတာပါ။ ဲ့ ဲ့ ၅။ # ကနတာဲ့ အခို terminal ဟာ root account က ြွေငထ ်ဲ့ ာ်းတာ လို ဲ့ သနဘာရပါတယ်။ တဖခာ်း user account နတွေမာ ဆရ ို င်နတာဲ့ $ သနကေတေဲ နြေါ် ဖပပါတယ်။ ဲ့ ဒါကနတာဲ့ terminal ြွေငြ ်ဲ့ ွေငခ ်ဲ့ ျင််း ဖမင်ရမယဲ့် အရာနတွေပါ။ ဟိုတ်ပပီ command အနကကာင််း ဆက်သာွေ ်းကကရနအာင်။ command တေ်ခိုမာ ၁။ command ၂။option ၃။ argument ဆပို ပီ်း ၃ ပိုင်း် ရပါတယ်။ ကဲ ! command တေ်ခိုကို အေမ််း ရို က်ကကညဲ့်ကကပါေ။ို ဲ့ ls လို ရ ဲ့ ို က်ပပီ်း enter နခါက်လိုက်ပါ။ directory ထဲမာ ရတဲဲ့ အရာ နတွေကို list ထိုတ်ဖပသပါလမ်မ ဲ့ ယ်။ hidden file နတွေ directory နတွေနတာဲ့ မပါဘူ်းနပါ။ဲ့ ဟိုတ်ပပီ၊ hidden ဖြေ်နေတဲဲ့ အရာနတွေကိုပါ ကကညဲ့်ချင်တယ်။ ls -a -l လို ရ ဲ့ ို က်လိုက်ပါ။ hidden ဖြေ်နေတဲဲ့ အရာနတွေကိုပါ ဖမင်ရပါလမ်မ ဲ့ ယ်။ ဒီနေရာမာ နဖပာချင်တာက ls သည် command ဖြေ်ပပီ်း -a -l သည် option ဖြေ်တယ် ဆတ ို ာပါပဲ။ option ဆတ ို ာ ကာ်းဂီယာလိုပါပဲ။ လိုအပ်ချက်အရ ဘယ်လမ််းကို ဘယ်ဂီယာေဲ ဲ့ နမာင််းမလဲ လိုအပ်တဲဲ့ ဂီယာကို ထညဲ့်နပ်းရသလိုနပါဗျာ။ မလိုအပ်ရင် option ကို ထညဲ့်ေရာ မလိုပါဘူ်း။ ဲ့ ကဲ ! ဟိုတ်ပပီ။ argument အနကကာင််း ဆက်သာွေ ်းကကပါေ။ို ဲ့ အရင်ဆ်းို testfolder ဆတ ို ဲဲ့ folder နလ်း နဆာက်ြို mkdir testfolder လို ရ ဲ့ ဲ့ ို က် Enter နခါက်လိုက်ပါ။ ls ေဲ ဲ့ဖပေ်ကကညဲ့်လိုက်ရင် testfolder ဆတ ို ဲဲ့ folder/directory နလ်း တို်းလာတာ ဖမင်ရပါမယ်။



13



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



အဲဒ ီ folder နလ်းရဲ အချက် အလက် properties နတွေကို ls ေဲ ဲ့ ကကညဲ့်ကကညဲ့်ရနအာင်။ ဒီလို ဲ့ ကကညဲ့်ြိုအတွေ က် ls -l testfolder လို ရ ဲ့ ဲ့ ို က် Enter နခါက်လိုက်ပါ။



ls -l testfolder နပါ။ဲ့ ဒီနေရာမာ --> ls သည် command -l သည် option testfolder သည် argument ပါ။ ခိုနလာက်ဆို linux ရဲ command syntax ကို ော်းလည်ပပီ ထင်ပါတယ်။ ဲ့ application တေ်ခို သမဟို ို ဲ့ တ် command တေ်ခိုဟာ ဘာလဲ သချင်ရင် whatis ေဲ ဲ့ ကကညဲ့်နင ို ပ ် ါတယ်။ ဥပမာ၊ whatis firefox ဒါအဖပင် ၊ command တေ်ခိုေ ဲ ဲ့ တေ်ခိုကို semicolon ; ဖခာ်းပပီ်း တေ်နကကာင််းတည််း အနေေဲ ဲ့ ဲ့ run နင ို ပ ် ါတယ်။ ဒီလို run ရင် ရလဒ် ၂ ခိုကို အထက်နအာက် နြေါ် ဖပနပ်းပါလမ်ဲ့မယ်။ ဥပမာ၊ echo hello ; echo world command နေ်ခိုကို && ဆတ ို ဲဲ့ operator ဖခာ်းပပီ်းနတာဲ့ တေ်ဆက်တည််း run နင ို ပ ် ါတယ်။ ဒီလို run ရင် ပထမ command က နအာင်ဖမင်မ၊ ဒိုတယ command က run ပါလမ်မ ဲ့ ယ်။ ဥပမာ၊ echo first && echo second လို ရ ို ဲဲ့ ဲ့ ို က် Enter နခါက်ပါ။ ဒါဆို first second ဆတ result ရပါလမ်မ ဲ့ ယ်။ တြေ် zecho first && echo second လို ဲ့ ရို က် Enter နခါက်ကကညဲ့်ပါ။ bash: zecho: command not found ဆတ ို ဲဲ့ result ရပါလမ်မ ို ဲဲ့ ဲ့ ယ်။ အနကကာင််းက zecho ဆတ command မရတဲဲ့ အတွေက် မနအာင်ဖမင်လို ဒို ဲ့ တယ command ဖြေ်တဲဲ့ echo second သည်လည််း မ run နတာပ ဲ့ ဲ error result ရလာတာပါ။ command နေ်ခိုကို pipe | သနကေတ ဖခာ်းပပီ်းနတာဲ့ တေ်ဆက်တည််း run နင ို ပ ် ါတယ်။ ဒီလို run ရင် ပထမ command က ရလာတဲဲ့ result ကို ဒိုတယ command က လက်ဆငက ်ဲ့ မ််းယူပပီ်း run ပါလမ်မ ဲ့ ယ်။ ဥပမာ၊ ၁။ မမ ေက်မာ install လိုပ်ထာ်းတဲဲ့ package နတွေကို yum list installed ဆတ ို ဲဲ့ command ေဲ ဲ့ ောရင််းထိုတ်မယ်။ ၂။ ရလာတဲဲ့ ောရင််း result ကို more ဆတ ို ဲဲ့ command ေဲ ဲ့ကကညဲ့်မယ်။ ဒီလို အနဖခအနေမျြု်းမာ pipe သနကေတ | ဖခာ်းပပီ်း yum list installed | more လို ဲ့ တေ်နကကာင််းတည််း run နင ို ပ ် ါတယ်။



14



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



yum list installed | more ကဲ ! ခိုနလာက်ဆို linux command တေ်ခိုရဲ ဲ့အနဖခခ တည်နဆာက်ပို ေဲ ဲ့ တဖခာ်း သနဘာတရာ်း တချြုျို့ကို ော်းလည်နင ို မ ် ယ်လို ယူ ဲ့ ဆပါတယ်။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (13-5-2018)



15



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### file paths on linux system ##### ဒီတေ်ခါ linux ေဲ ဲ့ ပတ်သက်လို ဲ့ အရို ်းရင််းဆ်းို topic နလ်းကို ေလိုက်ရနအာင်။ file path ဆတ ို ာ file နတွေဆသ ီ ာွေ ်းတဲဲ့ လမ််းနကကာင််း အမျြု်းအော်းနတွေကို ဆလ ို ိုတာပါ။ အနရ်းမကကီ်းနပမယဲ့် သထာ်းသငတ ်ဲ့ ဲဲ့ အချက်နလ်းနပါ။ဲ့ ဥပမာ >> /root/Desktop/ (ဒါကို file path လို နခေါ် ဲ့ ပါတယ်) file path အမျြု်းအော်း ၃ မျြု်း ရပါတယ်။ ၁။ absolute file path root directory ရဲ သနကေ တ / ေဲ ဲ့ေတဲဲ့ file path ကို နဖပာတာပါ။ ဲ့ cd /root/Desktop ၂။ relative file path root directory ရဲ သနကေ တ / ေဲ မေတဲ ဲ့ ရို ်းရို ်း file path ကို နဖပာတာပါ။ ဲ့ ဲ့ cd Desktop ၃။ navigation file path file ရရာဆီကို command တေ်နကကာင််းတည််းေဲ ဲ့ မသွော်းပဲ directory နတွေ တေ်ဆငပ်ဲ့ ပီ်းမတေ်ဆင်ဲ့ ရို က်ပပီ်း သွော်းတာကို ဆလ ို ိုတာပါ။ ဥပမာ၊ root နအာက်က Desktop နအာက်က WPSeku နအာက်က lib ဆတ ို ဲဲ့ folder ဆီကို သွော်းမယ် ဆပ ို ါနတာ။ဲ့ cd /root/Desktop/WPSeku/lib လို တေ် နကကာင််းတည််း မရို က်ပဲ နအာက်မာ နြေါ် ဖပထာ်းသလို ဲ့ တေ်ဆငပ်ဲ့ ပီ်းမတေ်ဆင်ဲ့ သွော်းတာကို ဆလ ို ိုတာပါ။ cd /root cd Desktop cd WPSeku cd lib



ကဲ ! file path နတွေ အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ ရင််းရင််းလင််းလင််းပါပဲနော်။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (13-5-2018)



16



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### linux စက်က ေါ်တင ွ ် directory တစ်ြုမှတစ်ြသ ု ုိ က်းကခ ြောင််းခြင််း ##### ဒီတခါ၊ linux ရဲ ဲ့ terminal နပေါ်ကနေ directory/folder တေ်ခိုကနေ နောက်တေ်ခိုဆီ ကူ်းနဖပာင််း ကကညဲ့်ရှုတဲဲ့ အပိုင်း် ကို နလဲ့လာကကေ။ို ဲ့ ၁။ linux မာ directory တေ်ခိုကနေ တေ်ခို change ြို ဲ့ ကူ်းနဖပာင််းြို ဲ့ အတွေက်၊ terminal ထဲကနေဆရ ို င်၊ cd ဆတ ို ဲဲ့ command ကို သ်းို ပပီ်း ကူ်းနဖပာင််းရပါတယ်။ cd ရဲ အဓ ပပါယ်က change ဲ့ directory ပါ။ cd ဥပမာ၊ home directory ထဲကနေ root နအာက်က var နအာက်က log ဆတ ို ဲဲ့ directory ဆီ သွော်းချင်တယ်ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါပဲ။ cd /var/log ၂။ လက်ရ နရာက်ရရာ နေရာကနေ user ရဲ မူ ဲ့ လ home directory ကို တေ််းသွော်းချင်ရင်



cd ကို သ်းို ပါတယ်။ cd ~ လလည် ို ဲ့ ်း သ်းို နင ို ပ ် ါတယ်။ cd or cd ~ ၃။ root directory ကို သွော်းချင်ရင် cd / ကို သ်းို ပါတယ်။ cd / ၄။ current directory ကို နြေါ် ဖပချင်ရင် . သမဟို ို ဲ့ တ် ./ ကို သ်းို တယ်။ ~+ ကိုလည််း သ်းို နင ို ပ ် ါတယ်။ cd . or cd ./ or cd ~+ ၅။ လက်ရ နရာက်ရရာ နေရာကနေ parent directory ကို တေ်ဆငဖ်ဲ့ ပေ်တက်ချင်ရင် .. ကိုသ်းို ပါ တယ်။ cd .. ၆။ အထက်မာ ရတဲဲ့ dir ၂ ဆငက ် ို ဖပေ်တက်ချင်ရင် ../.. ကို သ်းို ပါတယ်။ cd ../.. ၇။ previous working directory ကို သွော်းချင်ရင် cd - ကို သ်းို တယ်။ လက်ရ နရာက်ရနေတဲဲ့ directory မတိုငခ ် င်က ေင်ခဲဲ့တဲဲ့ directory ဆီကို ဖပေ်နရာက်သာွေ ်းမာပါ။ cd အော်း cd ~- ကိုလည််း သ်းို နင ို ပ ် ါတယ်။ cd - or cd ~၈။ ကိုယ် ဘယ်ကို နရာက်နေလဲ? ကိုယ် နရာက်ရနေတဲဲ့ directory လမ််းနကကာင််းကို ကကညဲ့်ချင်ရင် pwd ဆတ ို ဲဲ့ command ကို သ်းို ပပီ်း သနင ို ပ ် ါတယ်။ pwd လွေယ်လွေယ်နလ်းပါ မခက်ပါဘူ်းနော်။ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (13-5-2018)



17



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### file နှင ် directory မ ြော်းကို list ထုတ ် ကညခ် ြင််း ##### linux machine ထဲကို root account ေဲ log in ေင်၊ terminal ကို ြွေငပ်ဲ့ ပီ်းပပီ ဆိုပါေ။ို ဲ့ centos ဲ့ linux ရဲ terminal မာ [root@localhost~]# လို ဖမင် ဲ့ ဲ့ ရပါမယ်။ ဒီတေ်ခါ နရာက်ရနေတဲဲ့ directory နအာက်မာ ဘာနတွေ ရလဲကကညဲ့်ရနအာင်။ ဒီလို ကကညဲ့်ြိုအတွေ က် ls ဆတ ို ဲဲ့ command ကို သ်းို ပါတယ်။ ls command က current directory ဲ့ နအာက်မာ ရတဲဲ့ sub directory ေဲ file နတွေကို ဖပသနပ်းပါတယ်။ ဲ့ ၁။ ls လို ဲ့ ရို က်ပပီ်း enter နခါက်တအ ဲဲ့ ခါ directory နအာက်မာ ရတဲဲ့ file နတွေ directory နတွေကို ဖမင်ရပါလမ်မ ဲ့ ယ်။ ls ၂။ ဒါနပမယဲ့် hidden နပ်းထာ်းတဲဲ့ file နတွေ directory နတွေကို ဖမင်ရမာ မဟိုတ်ပါဘူ်း။ hidden ဖြေ်နေတာနတွေကို ဖမင်ရြိုအတွေ က် -a ဆတ ို ဲဲ့ option ကို သ်းို ရပါတယ်။ ls -a လို ဲ့ ရို က် ဲ့ enter နခါက်ကကညဲ့်လိုကပ ် ါ။ name နရ ျို့ မာ dot အေက်နလ်းနတွေ ပါတဲဲ့ hidden file နတွေကို ဖမင်ရပါမယ်။ ls -a ၃။ ls ေဲ ဲ့ ကကညဲ့်တအ ဲဲ့ ခါ ကျလာတဲဲ့ list ထဲမာ (.) ဆိုတဲဲ့ current directory ကို ညွှေ်း် တဲဲ့ အေက်နလ်း ၁ ခို၊ (..) ဆိုတဲဲ့ parent directory ကို ညွှေ်း် တဲဲ့ အေက်နလ်း ၂ ခို ကို ဖမင်ရပါမယ်။ ဒါနတွေကို မဖမင်ချင်ဘ်းူ ဆရ ို င် ls -A ကို သ်းို နင ို ပ ် ါတယ်။ ls -A ၄။ file နတွေ directory နတွေကို နပ်းထာ်းတဲဲ့ read, write, execute (rwx) permission နတွေ၊ access, modify, change time နတွေေ ဲ ဲ့ တွေလ ဲ ျက် ဖမင်ချင်ရင်နတာဲ့ -l ဆတ ို ဲဲ့ option ကို ထပ်ဖြညဲ့်နပ်းရပါမယ်။ ls -l ၅။ file နတွေ နဆာက်ခဲဲ့တဲဲ့ အချေ်နပေါ် မူတည်ပပီ်း အေဉလိုက် ဖပသနေချင်ရင်နတာဲ့ -t ဆတ ို ဲဲ့ option ကို သ်းို ပါတယ်။ ls -l -t ၆။ directory တေ်ခိုကို ကကညဲ့်တအ ဲဲ့ ခါ သူတရဲ ို ဲ့ ဲ့ sub directory နတွေကိုပါ တေ်ခါတည််း ဖမင်ချင်တယ်ဆရ ို င် -R ဆိုတဲဲ့ option ကို သ်းို ပါတယ်။ ls -R ၇။ file တေ်ခိုတည််းကို အထူ်းဖပြုပပီ်း ကကညဲ့်ချင်တအ ဲဲ့ ခါ ဥပမာ၊ ls -l filename လို ဲ့ သ်းို ေွေဲ ရပါတယ်။ ls -l filename ၈။ ဒါက လက်ရ current directory နအာက်က file ကို ကကညဲ့်တာပါ။ တေ်ဖခာ်းနေရာမာ ရတဲဲ့ file ကို ကကညဲ့်မယ်ဆရ ို င်နတာဲ့ အဲဒ ီ file တည်ရရာ လမ််းနကကာင််း absolute path ကို ထညဲ့်နပ်းရပါမယ်။ ဥပမာ၊ root directory နအာက်က etc ဆတ ို ဲဲ့ directory နအာက်က passwd ဆတ ို ဲဲ့ file ကို လမ််းကကညဲ့်မယ် ဆပ ို ါေ။ို ဲ့ ls -l /etc/passwd



18



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၉။ directory တေ်ခိုတည််းကို အထူ်းဖပြုပပီ်း ကကညဲ့်ချင်တဲအ ဲ့ ခါ ဥပမာ၊ လက်ရ နရာက်ရနေတဲဲ့ current directory ထဲက testfolder ဆတ ို ဲဲ့ directory ကို အထူ်းဖပြုပပီ်း ကကညဲ့်မယ်ဆပ ို ါေ။ို ဲ့ ls -l



-d testfolder လို သ ဲ့ ်းို ေွေဲရပါတယ်။ ls -l -d testfolder ၁၀။ တေ်ဖခာ်းနေရာမာ ရတဲဲ့ directory ကို ကကညဲ့်မယ်ဆရ ို င်နတာဲ့ အဲဒ ီ directory တည်ရရာ လမ််းနကကာင််း absolute path ကို ထညဲ့်နပ်းရပါမယ်။ ဥပမာ၊ root directory နအာက်က var ဆတ ို ဲဲ့ directory နအာက်က log ဆတ ို ဲဲ့ directory ကို လမ််းကကညဲ့်မယ် ဆပ ို ါေ။ို ဲ့ ls



-l -d /var/log နပါ။ဲ့ ls –l –d /var/log ၁၁။ file/folder တေ်ခိုရဲ ဲ့ properties နတွေကို ls ေဲ ဲ့ ကကညဲ့်ရာမာ human readable format ေဲ ဲ့ဖပသနေလိုတအ ဲဲ့ ခါ ls -lh ကို သ်းို ရပါတယ်။ ls -lh testfolder ၁၂။ file/folder နတွေကို (,) comma ဖခာ်းပပီ်း ဖပသနေချင်တဲအ ဲ့ ခါ -m ဆတ ို ဲဲ့ option ကို သ်းို ရပါတယ်။ ls -m ၁၃။ file/folder နတွေရဲ inode number နတွေအရ ောရင််းထိုတ် ဖပသနေလိုတဲအ ဲ့ ခါ -i -l ဲ့ ဆတ ို ဲဲ့ option ကို သ်းို ရပါတယ်။ ls -i -l ၁၄။ file/folder နတွေကို size အရ နြေါ် ဖပနေလိုတအ ဲဲ့ ခါ -S ဆတ ို ဲဲ့ option ကို သ်းို ရပါ တယ်။ ls -lS ၁၅။ file/folder နတွေကို visual classification ေဲ ဲ့ ဖပသနေလိုတအ ဲဲ့ ခါ -F ဆိုတဲဲ့ option ကို သ်းို ရပါတယ်။ ls -F option နတွေကို ls command ေဲ ဲ့ တေ်ခါတည််းတွေေ ဲ ပ်ပပီ်းလည််း သ်းို နင ို ပ ် ါတယ်။ နအာက်ပါ အတိုင်း် နပါ။ဲ့ ls -alt သမဟို ို ဲ့ တ် ls -a -l -t သမဟို ို ဲ့ တ် ls -alF ေသည်ဖြငန ်ဲ့ ပါ။ဲ့ ကဲ ! ဒီနလာက်ဆို ls ဆိုတဲဲ့ command ကို အသ်းို ဖပြုပပီ်း၊ file နတွေ directory နတွေကို ဘယ်လို ကကညဲ့်ရမလဲ သပပီထင်ပါတယ်။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (14-5-2018)



19



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### file နှင ် သက်ဆင ုိ က ် သြော ##### linux ေဲ ဲ့ ပတ်သက်လို ဲ့ ဒီတေ်ခါနတာဲ့ file နတွေေ ဲ ဲ့ သက်ဆင ို တ ် ဲဲ့ အနကကာင််းနလ်း နဖပာကကရ နအာင်။ တိုတိုရင််းရင််းပဲ ေလိုက်ကကတာနပါ။ဲ့ ၁။



file



တေ်ခိုဟာ



ဘာအမျြု်းအော်းလဲ



သချင်ရင်



file



ဆတ ို ဲဲ့



command



ေဲ ဲ့



ကကညဲ့်နင ို ပ ် ါတယ်။ ဥပမာ၊ file1.txt ဟာ ဘာအမျြု်းအော်းလည််း သချင်တယ် ဆပ ို ါေ။ို ဲ့ file file1.txt လို ရ ဲ့ ို က် enter နခါက်ရို ပါပဲ။ file file1.txt ၂။



file



တေ်ခိုကို



တည်နဆာက်ချင်ရင်



touch



ဆတ ို ဲဲ့



command



ေဲ ဲ့



တည်နဆာက်နင ို ပ ် ါတယ်။ ဥပမာ၊ file1.txt ဆတ ို ဲဲ့ text file နလ်း တေ်ခို တည်နဆာက်ချင်တယ် ဆပ ို ါေ။ို ဲ့ touch file1.txt လရ ို ဲ့ ို က် enter နခါက်နပါ။ဲ့ touch file1.txt ပပီ်းရင် ls ဆတ ို ဲဲ့ command နလ်းေဲ ဲ့ ဖပေ်ကကညဲ့်လိုက်တဲဲ့ အခါ၊ current directory နအာက်မာ file1.txt ဆတ ို ာနလ်းကို ဖမင်ရပပီနပါ။ဲ့ ls ၃။ အမည်တူပပီ်း no. ေပါတ်ေဉ မတူတ၊ဲဲ့ တေ်ခိုထက် ပိုတဲ၊ဲ့ file နတွေကို command ၁ နကကာင််း တည််းေဲ ဲ့ တည်နဆာက်မယ် ဆပ ို ါေ။ို ဲ့ touch filename{1..5} ဆတ ို ဲဲ့ format ကို အသ်းို ဖပြုရပါတယ်။ ေပါတ်ေဉနတွေကို တွေေက ် ဲ့ ွေင်း် brace ထဲ ထညဲ့်ထာ်းလိုက်တဲဲ့ သနဘာပါ။ 1 ကနေ 5 အထ၊ file ငါ်းခို အေဉလိုက် နဆာက်မယ်ဆရ ို င် {1..5}။ 1 ကနေ 10 အထ၊ file 10 ခို အေဉလိုက် နဆာက်မယ်ဆရ ို င် {1..10}။ ဥပမာ၊ file1 ကနေ file10 အထ ေပါတ်ေဉထ်းို ထာ်းတဲ၊ဲ့ .txt ေဲ ဲ့ ဆ်းို တဲ၊ဲ့ file ၁၀ ခို နဆာက်မယ် ဆပ ို ါေ။ို ဲ့ touch file{1..10}.txt လို ရ ဲ့ ို က် enter နခါက်ရို ပါပဲ။ touch file{1..5}.txt ပပီ်းရင် ရလဒ်ကို ls ေဲ ဲ့ဖပေ်ကကညဲ့်လိုက်ပါဦ်း။ ls ၄။ file သမဟို ို ဲ့ တ် directory တေ်ခိုရဲ ဲ့ name မာ space ထညဲ့်ပပီ်း နဆာက်ချင်ရင် filename ရဲ ပထမပ ိုင်း် အဆ်းို မာ backlash \ ကို ထညဲ့်ပပီ်း သ်းို ရပါတယ်။ ဲ့ ဥပမာ၊ file one ဆတ ို ဲဲ့ အမည်ေ ဲ file ေဲ one ကကာ်းမာ space ဖခာ်းပပီ်း text file တေ်ခို တည်နဆာက် ဲ့ ဲ့ မယ်ဆပ ို ါေ။ို ဲ့ touch file\ one.txt လို ရ ဲ့ ို က် enter နခါက်ရို နပါ။ဲ့ touch file\ one.txt ၅။ ဒီတေ်ခါ ls command ေဲ ဲ့ နခေါ် ကကညဲ့်လို ဲ့ မဖမင်နင ို ပ ် ဲ ls –a လို ဲ့ ကကညဲ့်မ ဖမင်နင ို မ ် ယဲ့် hidden file နလ်းနတွေ နဆာက်ကကညဲ့်ရနအာင်။ လွေယ်ပါတယ်နော်။ နဆာက်လိုက်တဲဲ့ file name ရဲ နရ ဲ့ ျို့ဆ်းို မာ dot (.) အေက်နလ်း ၁ ခို ထညဲ့်နပ်းလိုက်ရင် hidden file ဖြေ်သာွေ ်းပါမယ်။ ဥပမာ၊ file1.txt ကို hidden အနေေဲ ဲ့ နဆာက်ချင်တယ် ဆပ ို ါေ။ို ဲ့ touch



.file1.txt လို ဲ့ ရို က် enter နခါက်ရို နပါ။ဲ့ touch .file1.txt နဆာက်ပပီ်းရင် ls command ေဲ ဲ့ နခေါ် ကကညဲ့်လိုက်ပါ။ .file1.txt ဟာ list ထဲမာ ပါမလာနတာပ ဲ့ ါဘူ်း။ ls



20



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ls -a လ၊ို ဲ့ -a ဆတ ို ဲဲ့ option နလ်းခပပီ်း ထပ် နခေါ် ကကညဲ့်ပါဦ်း။ list ထဲမာ .file1.txt နလ်း ဖပေ်ပါလာ တာကို နတွေျို့ရပါလမ်မ ဲ့ ယ်။ ls -a ၆။ file တေ်ခို ရဲ ဲ့ အထဲမာ ပါေင်တဲဲ့ size ကို သချင်ရင်နတာဲ့ wc ဆတ ို ဲဲ့ command ေဲ ဲ့ ကကညဲ့်ရပါတယ်။ wc command မာ -c -l -w ဆပို ပီ်း options ၃ ခို ရတယ်။



-c က character အနရအတွေက်၊ -l က line အနရအတွေက်၊ -w က word အနရအတွေက်။ ဥပမာ၊ file1.txt ရဲ အထဲ မာ ပါေင်တဲဲ့ size ကို သချင်တယ် ဆပ ို ါေ။ို ဲ့ wc file1.txt လို ဲ့ ရို က် enter ဲ့ နခါက်ရို ပါပဲ။ wc file1.txt ဒီထက ဲ မ character တေ်ခိုတည််း ကွေက်ကကညဲ့်ချင်ရင်နတာဲ့ wc -c file1.txt နပါ။ဲ့ wc -c file1.txt ဒီထက ဲ မ line အနရအတွေက် တေ်ခိုတည််း ကွေက်ကကညဲ့်ချင်ရင်နတာဲ့ wc -l file1.txt နပါ။ဲ့ wc -l file1.txt ဒီထက ဲ မ word အနရအတွေက် တေ်ခိုတည််း ကွေက်ကကညဲ့်ချင်ရင်နတာဲ့ wc -w file1.txt နပါ။ဲ့ wc -w file1.txt ၇။ file တေ်ခို ရဲ ဲ့ actual size ကို သချင်ရင်နတာဲ့ ls -lh ဆတ ို ဲဲ့ command ေဲ ဲ့ ကကညဲ့်ရပါတယ်။ ဥပမာ၊ file1.txt ရဲ size ကို သချင်တယ် ဆပ ို ါေ။ို ဲ့ ls -lh လို ဲ့ ရို က် enter နခါက်ရို ပါပဲ။ ကျလာတဲဲ့ ဲ့ list ထဲမာ file1.txt ရဲ size ကို ဖမင်ရပါမယ်။ ls -lh ဲ့ ၈။ file ကို ြျက်ချင်တဲအ ဲ့ ခါ rm ဆတ ို ဲဲ့ comand ကို သ်းို ပပီ်းြျက်နင ို ပ ် ါတယ်။ ဥပမာ၊ file1.txt ဆတ ို ဲဲ့ file ကို ြျက်မယ် ဆပ ို ါေ။ို ဲ့ rm file1.txt လို ဲ့ ရို က် enter နခါက်ရို နပါ။ဲ့ ြျက်မာ နသချာလာ်း yes or no နမ်းပါလမ်မ ို ်ရို ဲ့ ယ်။ ဒီ အခါ y ကို ထပ်ရို က်ပပီ်း enter နခါက် လက ပါပဲ။ rm file1.txt ၉။ file တေ်ခိုကို ြျက်တဲဲ့ အခါ “ြျက်မာနသချာလာ်း” yes or no ဘာမ မနမ်းပဲ တေ််းပပီ်း ြျက်နေ ချင်ရင်နတာ၊ဲ့ rm ကို -rf ဆတ ို ဲဲ့ option ေဲ ဲ့ တွေဲသ်းို နပ်းရပါတယ်။ ဥပမာ၊ file1.txt ကို ြျက်မယ် ဆပ ို ါေ။ို ဲ့ rm -rf file1.txt နပါ။ဲ့ rm -rf file1.txt file နတွေေ ဲ ဲ့သက်ဆင ို တ ် ဲဲ့ အနကကာင််းနတွေကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (14-5-2018)



21



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### directory နှင ် သက်ဆင ုိ က ် သြော ##### file နတွေ သမ််းထာ်းတဲဲ့ နေရာကို folder/directory လို ဲ့ နခေါ်ပါတယ်။ ကဲ ! directory ေဲ ဲ့ သက်ဆင ို တ ် ာ နလ်းနတွေကို နဖပာကကရနအာင်။ ၁။ directory တေ်ခို နဆာက်ချင်ရင် mkdir ဆတ ို ဲဲ့ command ကို သ်းို ပါတယ်။ ဥပမာ၊ testfolder လို ဲ့ အမည်ရတဲဲ့ directory တေ်ခို နဆာက်ချင်တယ် ဆပ ို ါေ။ို ဲ့ mkdir testfolder လို ဲ့ ရို က် enter နခါက်ရို နပါ။ဲ့ mkdir testfolder ရလဒ်ကို ls ေဲ ဲ့ ဖပေ်ကကညဲ့်လိုက်ပါဦ်း။ current location ရဲ ဲ့ နအာက်မာ testfolder ဆတ ို ဲဲ့ directory အသေ်ကို နတွေျို့ရပါလမ်မ ဲ့ ယ်။ ls ၂။ file နတွေ တည်နဆာက်ရာမာ သ်းို သလိုပါပဲ၊ အမည်တူပပီ်း no. ေပါတ်ေဉ မတူတ၊ဲဲ့ တေ်ခို ထက်ပိုတဲ၊ဲ့ directory နတွေကို command ၁ နကကာင််းတည််းေဲ ဲ့ တည်နဆာက်မယ် ဆပ ို ါေ။ို ဲ့ mkdir



directoryname{1..5} ဆတ ို ဲဲ့ format ကို အသ်းို ဖပြုရပါတယ်။ ေပါတ်ေနဉနတွေကို တွေေက ် ဲ့ ွေင်း် brace ထဲ ထညဲ့်ထာ်းလိုကတ ် ဲဲ့ သနဘာပါ။ 1 ကနေ 5 အထ၊ directory ငါ်းခို အေဉလိုက် နဆာက်မယ်ဆရ ို င် {1..5} ။ 1 ကနေ 10 အထ၊ directory ဆယ်ခို အေဉလိုက် နဆာက်မယ်ဆရ ို င် {1..10} ။ ဥပမာ၊ folder အမည်ေ ဲ ဲ့ 1 ကနေ 5 အထ၊ ေပါတ်ေဉထ်းို ထာ်းတဲ၊ဲ့ directory ၅ ခို နဆာက်မယ် ဆပ ို ါေ။ို ဲ့ mkdir folder{1..5} လို ရ ဲ့ ို က် enter နခါက်ရို ပါပဲ။ mkdir folder{1..5} ပပီ်းရင် ရလဒ်ကို ls ေဲ ဲ့ဖပေ်ကကညဲ့်လိုက်ပါဦ်း။ ls ၃။ အမည် မတူတဲဲ့ directory အမျာ်းကကီ်းကို command တေ်နကကာင််းတည််းေဲ နဆာက် နင ို ပ ် ါ ဲ့ နသ်းတယ်။ နအာက်ပါအတိုင်း် နပါ။ဲ့ mkdir tom jerry mickey



ls ေဲ ဲ့ ဖပေ်နခေါ် ကကညဲ့်လိုက်ရင် current location နအာက်မာ tom, jerry, mickey ဆတ ို ဲဲ့ directory သ်းို ခို တို်းလာတာ နတွေျို့ရပါမယ်။ ၄။ directory တေ်ခို နဆာက်ပပီ်း အဲဒ ဲ့ ီ directory နအာက်မာ subdirectory နတွေကိုပါ တခါတည််း command တေ်နကကာင််းတည််းေဲ ဲ့ ထညဲ့်နဆာက်သာွေ ်းချင်ရင် mkdir ကို -p ဆတ ို ဲဲ့ option ေဲ တွေ ို ဲဲ့ directory ေဲ အတူ သူနအာက် မာ sub1 ဲ့ ဲသ်းို နပ်းရပါတယ်။ ဥပမာ၊ testfolder ဆတ ဲ့ ဲ့ ဆတ ို ဲဲ့ directory၊ sub1 နအာက်မာမ sub2 ဆတ ို ဲဲ့ directory ကိုပါ command တေ်နကကာင််း တည််းေဲနဆာက် မယ် ဆပ ို ါေ။ို ဲ့ mkdir -p testfolder/sub1/sub2 လို ရ ဲ့ ဲ့ ို က် enter နခါက်ရို ပါပဲ။ mkdir -p testfolder/sub1/sub2 ပပီ်းရင် မမ နဆာက်လိုက်တာ နအာင်ဖမင်လာ်း၊ မနအာင်ဖမင်လာ်းကို tree ဆတ ို ဲဲ့ command သ်းို ပပီ်း ဖပေ်ေေ်နင ို ပ ် ါတယ်။ tree testfolder



22



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၅။ directory နဆာက်ရင််း permission ပါ သတ်မတ်နပ်းြို လ ို ဲဲ့ option ဲ့ ိုအပ်ရင် -m ဆတ ကို သ်းို ရပါတယ်။ ဥပမာ၊ testfolder ဆတ ို ဲဲ့ directory ကို နဆာက်ရင််း permission (read, write, execute) သတ်မတ်နပ်းချင်တယ် ဆပ ို ါေ။ို ဲ့ mkdir -m 750 testfolder လို ဲ့ ရို က် enter နခါက်ရို ပါပဲ။ mkdir -m 750 testfolder (Permission အနကကာင််းကို နောက်လာမယဲ့် သင်ခေ််းောမာ နြေါ် ဖပပါမယ် ) ဲ့ ၆။ directory တေ်ခိုကို ြျက်ချင်ရင် rmdir သ်းို ရပါတယ်။ ဥပမာ၊ testfolder အမည်ရတဲဲ့ directory ကို ြျက်မယ်ဆပ ို ါေ။ို ဲ့ rmdir dir1 လို ရ ဲ့ ို က် enter နခါက်ရို နပါ။ဲ့ rmdir testfolder ၇။ ဒါနပမယဲ့်၊ ြျက်ချင်တဲဲ့ directory ထဲမာ file နတွေ sub directory နတွေ ရနေရင် ြျက်ြို ဲ့ မလွေယ်ပါဘူ်း။ အဲဒအ ီ ခါ rm -r -f ေဲ ဲ့ြျက်နင ို ပ ် ါတယ်။ rm -rf လလည် ို ဲ့ ်း တွေဲသ်းို နင ို ပ ် ါတယ်။ ဥပမာ၊ testfolder အမည်ရတဲဲ့ directory ကို ြျက်မယ်ဆပ ို ါေ။ို ဲ့ rm -rf dir1 လို ဲ့ ရို က် enter နခါက်ရို နပါ။ဲ့ rm -r -f testfolder သမဟို ို ဲ့ တ် rm -rf testfolder လွေယ်လွေယ်နလ်းပါနော်။ directory ေဲ ဲ့သက်ဆင ို တ ် ဲဲ့ အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (14-5-2018)



23



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### date and time ##### ခိုတေ်ခါ linux ရဲ ဲ့ terminal ကနေ date and time သတ်မတ်နပ်းတဲဲ့ အပိုင်း် ကို ကကညဲ့်ရ နအာင်။ server နတွေကို run ရာမာ date and time မေ်ကေ်နေြို အနရ်းကကီ ်းပါတယ်။ ဒါနကကာင ်ဲ့ date ဲ့ ဲ့ and time ဟာ လွေယ်ကူနပမယဲ့် အနရ်းကကီ်းတဲဲ့ အပိုင်း် တေ်ခိုနပါ။ဲ့ ေလိုက်ရနအာင်။ ၁။ system ရဲ ရက် ေဲွေ ေဲ အချ ေ်ကို သချင်ရင် date ဆိုတဲဲ့ command ကို အသ်းို ဖပြုရပါတယ်။ ဲ့ ဲ့



date လို ရ ဲ့ ို က် enter နခါက်နပါ။ဲ့ date ဒီအခါ date and time ကို ဖပသနပ်းပါလမ်မ ဲ့ ယ်။ ၂။ ရက်ေဲွေ သတ်မတ်ြို ဲ့ အတွေက် date ဆတ ို ဲဲ့ command ေဲအတူ +%Y%m%d -s ဆတ ို ဲဲ့ ဲ့ option ကို တွေဲသ်းို ရပါတယ်။ ဥပမာ၊ date ကို ၂၀၁၈၊ ကမလ၊ ၁၄ ရက်က အဖြေ် သတ်မတ်မယ် ဆပ ို ါေ။ို ဲ့ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ date +%Y%m%d -s "20180514" ဒီနေရာမာ +%Y%m%d သည် year, month, date ဆတ ို ဲဲ့ format ကို သ်းို မယ်လို ဲ့ အဓပပါယ် ရပါတယ်။ -s ကနတာဲ့ set သတ်မတ်မယ်နပါ။ဲ့ ၃။ အချေ်ကို သတ်မတ်ြို အတွေ က် date ဆတ ို ဲဲ့ command ကို +%T%p -s ဆတ ို ဲဲ့ option ဲ့ ေဲတွေ ို ါေ။ို ဲ့ command ဲ့ ဲသ်းို ရပါတယ်။ ဥပမာ၊ time ကို ညက ၅ ြောရီ ၃၀ မိ စ် သတ်မတ်မယ် ဆပ syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ date +%T%p -s "05:30:00PM" ဒီနေရာမာ +%T သည် အချေ်ကို ကိုယ်ော်းဖပြုပါတယ်။ သူရဲဲ့ format က hour, minute, ဲ့ second ပါ။ %p က AM/PM ကို ကိုယ်ော်းဖပြုပါတယ်။ ၄။ အထက်ပါ ေည််းလမ််းနတွေက system ရဲ date and time ကို သတ်မတ်တာပါ။ ေက်ရဲ ဲ့ ဲ့ တကယဲ့် hardware clock ဆတ ို ာ ရပါတယ်။ သူက ေက်ပတ်သာွေ ်းရင်နတာင်၊ mother board မာ ပါရတဲဲ့ battery အာ်းေဲ ဲ့အလိုပ်လိုပ်နေပါတယ်။ ဒါနကကာင ်ဲ့ system ရဲ date and time ကို သတ်မတ်ပပီ်းသွော်းရင် အဲဒါကို hardware clock မာပါ ဲ့ ဲ့ ထပ်တူကျြို ဲ့ထပ်မ ဖပြုလိုပ်နပ်းရပါမယ်။ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါ အတိုင်း် ပါ။ hwclock -w သမဟို ို ဲ့ တ် hwclock --systohc ပပီ်းရင် hardware clock ကို ဖပေ်ေေ်ကကညဲ့်ပါ။ hardware clock ကို ဖပေ်ကကညဲ့်နင ို တ ် ဲဲ့ command က hwclock --show ပါ။ hwclock --show ၅။ Time Zone ကို သတ်မတ်ြို ဲ့ကျနော်တို န ို င ် အတွေက်၊ Asia/Yangon ကို နရွေ ်းနပ်းရပါ ဲ့ င မယ်။ command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ cp /usr/share/zoneinfo/Asia/Yangon /etc/localtime



24



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ကဲ ! ခိုနလာက်ဆို date and time ေဲ ဲ့ပတ်သက်လို ရ ဲ့ င််းလင််းသွော်းပပီလို ယူ ဲ့ ဆပါတယ်။ ခိုလက်ရ update ဖြေ်တဲဲ့ linux os နတွေမာ timedatectl ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုပပီ်း date and time ကို သတ်မတ်နင ို ပ ် ါနသ်းတယ်။ သူက သ်းို ရတာ ပိုလွေယ်ကူလာတာနပါနော် ဲ့ ။



timedatectl ဆတ ို ဲဲ့ command ရဲ ဲ့ အသ်းို ဖပြုပိုနတွေကို နောက်ပိုင်း် သင်ခေ််းောမာ ထညဲ့်သင ွေ ်း် နပ်း သွော်းပါမယ် ဲ့ ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (14-5-2018)



linux ကို GUI ( Graphical User Interface) အပါအေင်၊ Application ေဲ အနဖခခ အသ်းို ဖပြုပိုနတွေကို ဲ့ နလဲ့လာချင်တယ်ဆရ ို င် ကိုအနမာင် (Fairway Technology) နရ်းတဲဲ့ UBUNTU အနပေါ် အနဖခဖပြု ထာ်းတဲဲ့ သငအ ်ဲ့ တွေက် linux ောအိုပ်ကို အဆဖို ပြုပါရနေ။ နအာက်ပါ Link ကနေ download လိုပ် ရယူ နင ို ပ ် ါတယ်။ https://eimaung.com/ubuntu-for-you/ ကျနော်ဲ့ page မာကနတာဲ့ CLI (Command Line Interface) ကို ဦ်းော်းနပ်းပပီ်း redhat, centos, fedora နတွေကို အနဖခဖပြုပပီ်း၊ linux system administration ေဲ ဲ့ networking ပိုင်း် ကို ဖြည််းဖြည််းချင််း တင်နပ်းသွော်းမာပါ။



25



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



online မာ linux system administration အနကကာင််း ောအိုပ်ကို လွေတလ ် ပ်ေွော နလဲ့လာနင ို ြ ် ို၊ ဲ့ 2017 တိုေ်း် က ဖြေထ ် ဲ့ ာ်းပပီ်း ဖြေ်နပမယဲ့်၊ အဲအ ဲ့ ထဲက၊ လိုအပ်တာနတွေကို ထပ်မတည််းဖြတ်၊ ထပ်တို်းပပီ်း တင်နပ်းသွော်းမာပါ။ ောအိုပ်နဟာင််းကို နအာက်ပါ Link ကနေ ရယူနင ို ပ ် ါတယ်။ http://www.mediafire.com/…/Linux_System_Administration_%28c… ကျနော်ဲ့ tutorial နတွေကနတာဲ့ GUI ပါမာ မဟိုတ်ပါဘူ်း။ linux terminal ေဲ ဲ့ command နတွေေသာ ဲ ဲ့ အမိုေ်း် နေ်ပါ်းသွော်းရမာပါ။ page ေဲ ဲ့ group တည်နထာင်ရဖခင််း ောအိုပ် ဖြေရ ် ဲ့ ဖခင််း ရည်ရွေယ်ချက်က သင်တေ််းမတက်နင ို တ ် ဲဲ့ ေယ်ကနလဲ့လာသူနတွေ၊ နငွေနကက်းမဖပညဲ့်ေိုနသ်းသူနတွေ၊ အဆင်နဖပြို၊ ဲ့ မမ သသနလာက် ဖပေ်လည် မျှနေရို ပါ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (15-5-2018)



26



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### copy က်း ကမယ် ##### linux machine နပေါ်မာ file နတွေ၊ folder/directory နတွေကို တေ်နေရာကနေ တေ်နေရာ ဆီ copy ကူ်းတဲဲ့ အနကကာင််း နလဲ့လာကကညဲ့်ကကေ။ို ဲ့ ေလိုက်ရနအာင်ဗျာ …..! terminal ကို ြွေငပ ်ဲ့ ါ။ cd /root/Desktop လို ဲ့ ရို က် enter နခါက်ပါ။ ဒါဆို root account ရဲ ဲ့ Desktop နပေါ် နရာက်သာွေ ်းပပီနပါ။ဲ့ ၁။ အရင်ဆ်းို ေမ််းသပ်ြို ဲ့ အတွေက် touch command ကို သ်းို ပပီ်း file နလ်း ၅ ခို နဆာက်ကကညဲ့်ထာ်းကကတာနပါ။ဲ့ touch file{1..5} နဆာက်ပပီ်းရင် ls ေဲ ဲ့ဖပေ်ကကညဲ့်။ ၂။ ပပီ်းရင် mkdir command ကို သ်းို ပပီ်း directory နလ်း ၃ ခိုနလာက် နဆာက်ရနအာင်။ mkdir dir{1..3} နဆာက်ပပီ်းရင် ls ေဲ ဲ့ဖပေ်ကကညဲ့်။ ၃။ file နတွေ dir နတွေကို copy ကူ်းချင်ရင် cp ဆတ ို ဲဲ့ command ကို သ်းို ပါတယ်။ ဥပမာ၊ /root/Desktop နပေါ်က file1 ကို /root/Documents ဆီ copy ကူ်းချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါပဲ။ cp /root/Desktop/file1 /root/Documents ဒီနေရာမာ သထာ်းရမာက၊ cp ရဲ ဲ့ နရ ျို့က၊ /root/Desktop/file1 ဆတ ို ာကို source လနခါပပီ ို ဲ့ ်း၊ /root/Documents ကို destination လို နခေါ် ဲ့ ပါတယ်။ ပပီ်းရင် cd /root/documents လို ဲ့ ရို က် enter နခါက်ပပီ်း Document ဆတ ို ဲဲ့ directory ဆီသာွေ ်းပါ။ ls ေဲ ဲ့ေေ်နဆ်းကကညဲ့်ပါ။ file1 ဆတ ို ာနလ်း နရာက်နေပါလမ်မ ဲ့ ယ်။ ၄။ file အမျာ်းကကီ်းကို command တေ်နကကာင််းတည််းေဲ ဲ့ copy ကူ်းလလည် ို ဲ့ ်း ရပါတယ်။ အဲဒလ ီ ို copy ကူ်းချင်ရင်၊ source နေရာမာ file name နတွေကို တေ််းေီ ထညဲ့်ပပီ်း၊ destination နေရာမာ location ကို တေ်ကကမ်ပဲ ထညဲ့်နပ်းရင် ရပါပပီ။ ဥပမာ၊ /root/Desktop နအာက်က၊ file1, file2 ေဲ ဲ့ file3 ကို /root/Documents ဆီ copy ကူ်းချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ cp /root/Desktop/file1 /root/Desktop/file2 /root/Desktop/file3 /root/Documents ပပီ်းရင် cd /root/Documents လို ဲ့ ရို က် enter နခါက်ပပီ်း Document ဆတ ို ဲဲ့ directory ဆီသာွေ ်းပါ။ ls ေဲ ဲ့ေေ်နဆ်းကကညဲ့်ပါ။ file, file2, file3 ဆတ ို ာနလ်းနတွေ နရာက်နေပါလမ်မ ဲ့ ယ်။ ၅။ file ကို copy လည််းကူ်းမယ်။ file အမည် name လည််း နဖပာင််းမယ်ဆရ ို င် destination နေရာရဲ နောက် မာ new name ကို နပ်းရပါမယ်။ ဲ့ ဥပမာ၊



root



directory



နအာက်က၊



Desktop



နအာက်က၊



file5



ဆတ ို ာနလ်းကို



/root/Documents ဆီ 555 ဆတ ို ဲဲ့ အမည်အဖြေ်၊ copy ကူ်းချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။



27



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



cp /root/Desktop/file5 /root/Documents/555 ပပီ်းရင် cd /root/Document လို ဲ့ ရို က် enter နခါက်ပပီ်း Documents ဆတ ို ဲဲ့ directory ဆီသာွေ ်းပါ။ ls ေဲ ဲ့ေေ်နဆ်းကကညဲ့်ပါ။ 555 ဆတ ို ာနလ်း နရာက်နေပါလမ်မ ဲ့ ယ်။ ၆။ directory နတွေကို copy ကူ်းမယ်ဆရ ို င်လည််း file နတွေကို copy ကူ်းတဲဲ့ ေည််းအတိုင်း် ကူ်းနင ို ပ ် ါတယ်။ ဥပမာ၊ root directory နအာက်က၊ Desktop နအာက်က၊ dir3 ဆတ ို ာနလ်းကို /root/Documents ဆီ copy ကူ်းချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ cp /root/Desktop/dir3 /root/Documents ပပီ်းရင် cd /root/Documents လို ဲ့ ရို က် enter နခါက်ပပီ်း Documents ဆတ ို ဲဲ့ directory ဆီသာွေ ်းပါ။ ls ေဲ ဲ့ေေ်နဆ်းကကညဲ့်ပါ။ dir3 ဆတ ို ာနလ်း နရာက်နေပါလမ်မ ဲ့ ယ်။ ၇။ တေ်ခို သထာ်းရမာက file နတွေ ရနေတဲဲ့ directory ကို ကူ်းမယ်ဆ၊ို ကူ်းလို ဲ့ မရပဲ၊ cp : omitting directory ဆတ ို ဲဲ့ error နပေါ်နလဲ့ရပါတယ်။ ဒါနကကာင်ဲ့ file နတွေ ရတဲဲ့ directory ကို copy ကူ်းချင်တဲဲ့ အခါ -r ဆတ ို ဲဲ့ option နလ်းခနပ်း ရပါတယ်။ နအာက်ပါအတိုင်း် နပါ။ဲ့ cp -r /root/Desktop/dir1 /root/Documents လွေယ်ပါတယ်နော်။ copy ကူ်းဖခင််းနင်ဲ့ သက်ဆင ို တ ် ဲဲ့ အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (15-5-2018)



28



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### move and rename files and directories ##### linux နပေါ်မာ copy ကူ်းတဲအ ဲ့ နကကာင််း ပပီ်းသွော်းပပီ ဆန ို တာဲ့ ဒီတခါ cut လိုပ်တဲအ ဲ့ နကကာင််း၊ file နတွေ directory နတွေကို အမည်နဖပာင််းတဲအ ဲ့ နကကာင််း ဆက်သာွေ ်းရနအာင်။ GUI မာ cut လိုပ်တယ်လို ဲ့နခါပပီ်း၊ linux ရဲ command line မာနတာဲ့ ဒါကို move လိုပ်တယ်လို ဲ့ နခေါ်ပါတယ်။ ဲ့ terminal ကို ြွေငပ ်ဲ့ ါ။ cd /root/Desktop လို ဲ့ ရို က် enter နခါက်ပါ။ ဒါဆို root account ရဲ ဲ့ Desktop နပေါ် နရာက်သာွေ ်းပပီနပါ။ဲ့ ၁။ အရင်ဆ်းို ေမ််းသပ်ြို ဲ့ အတွေက် touch command ကို သ်းို ပပီ်း file နလ်း ၅ ခို နဆာက်ကကညဲ့်ထာ်းကကတာနပါ။ဲ့ touch file{1..5} နဆာက်ပပီ်းရင် ls ေဲ ဲ့ဖပေ်ကကညဲ့်။ ၂။ ပပီ်းရင် mkdir command ကို သ်းို ပပီ်း directory နလ်း ၃ ခိုနလာက် နဆာက်ရနအာင်။ mkdir dir{1..3} နဆာက်ပပီ်းရင် ls ေဲ ဖပေ် ဲ့ ကကညဲ့်။ ၃။ file တေ်ခို ကို move လိုပ်မယ်ဆရ ို င် mv ဆတ ို ဲဲ့ command ကို သ်းို ပါတယ်။ အမည် နဖပာင််းမယ်ဆရ ို င်လည််း အဲဒ ဲ့ ီ mv ကိုပဲ သ်းို ရပါတယ်။ ဥပမာ၊ /root/Desktop နအာက်က၊ file1 ဆတ ို ာနလ်းကို /root/Documents ဆီ move လိုပ်ချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ mv /root/Desktop/file1 /root/document ဒီနေရာမာ သထာ်းရမာက၊ mv ရဲ နရ ို ာကို source လို ဲ့ ဲ့ ျို့က၊ /root/Desktop/file1 ဆတ နခေါ် ပပီ်း၊ /root/Documents ကို destination လို နခေါ် ို ာပါ။ ဲ့ တယ် ဆတ ၄။ file အမျာ်းကကီ်းကို command တေ်နကကာင််းတည််းေဲ ဲ့ move လိုပ်လလည် ို ဲ့ ်း ရပါတယ်။ source နေရာမာ file name နတွေကို တေ််းေီ ထညဲ့်ပပီ်း၊ destination နေရာမာ location ကို တေ်ကကမ်ပဲ ထညဲ့်နပ်းရင် ရပပီ။ mv /root/Desktop/file1 /root/Desktop/file2 /root/Desktop/file3 /root/Documents ၅။ directory ကို move လိုပ်မယ်ဆရ ို င်လည််း file နတွေကို move လိုပ်တဲဲ့ ေည််းအတင ို ်း် ပါပဲ။ ဥပမာ၊ /root/Desktop မာ ရတဲဲ့ dir1 ဆိုတဲဲ့ directory ကို root directory နအာက်က Documents ဆတ ို ဲဲ့ directory နအာက်ကို နရွှျို့မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါပဲ။ mv /root/Desktop/dir1 /root/Documents ၆။ file ကို အမည် name နဖပာင််းမယ်ဆရ ို င်လည််း mv ကိုပဲ သ်းို ပါတယ်။ destination နေရာရဲ ဲ့ နောက်မာ new name ထညဲ့်နပ်းရတယ်။ ဥပမာ၊ current location မာ ရတဲ၊ဲ့ file1 အမည်ရတဲဲ့ file ကို hello လနဖပာင် ို ဲ့ ်းမယ်ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာန ဲ့ အာက်ပါ အတိုင်း် ပါ။ mv file1 hello



29



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ဥပမာ၊ /root/Desktop နအာက်မာ ရတဲ၊ဲ့ file2 အမည်ရတဲဲ့ file ကို /root/Documents ဆီ world ဆတ ို ဲဲ့ အမည်သေ်ေ ဲ ဲ့ နရွှျို့မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါ အတိုင်း် ပါ။ mv /root/Desktop/file2 /root/Documents/world ၇။ directory ကို အမည် name နဖပာင််းမယ်ဆရ ို င်လည််း mv ကိုပဲ သ်းို ပါတယ်။ destination နေရာရဲ နောက် မာ new name ထညဲ့န ် ပ်းရတယ်။ ဲ့ ဥပမာ၊ current location မာ ရတဲ၊ဲ့ dir1 အမည်ရတဲဲ့ directory ကို 555 လို နဖပာင် ်းမယ် ဆပ ို ါေ။ို ဲ့ ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ mv dir1 555 ဥပမာ၊ /root/Desktop နအာက်မာ ရတဲ၊ဲ့ dir2 အမည်ရတဲဲ့ directory ကို /root/Documents ဆီ 333 ဆတ ို ဲဲ့ အမည်သေ်ေ ဲ ဲ့ နရွှျို့မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါ အတိုင်း် ပါ။ mv /root/Desktop/dir2 /root/Documents/333 ကဲ ! ရင််းရင််းနလ်းပါပဲနော်။ file နတွေ directory နတွေကို move လိုပ်ဖခင််း၊ အမည်နဖပာင််းဖခင််းေဲ ဲ့ သက်ဆင ို တ ် ဲဲ့ အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (15-5-2018)



30



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### command တစ်ြုနင ှ ် ဆိင ု က ် သြော အကအညီမ ြော်းကို ကညရ ် ှု ခြင််း ##### linux command နတွေရဲ အသ ်းို ဖပြုပိုဖပြုေည််း၊ ဘယ် option ကို ဘယ်လိုအခါမာ တွေဲြက် ဲ့ နပ်းရမယ်ဆတ ို ာ သြိုလ ို ါတယ်။ အလွေတ် မရနတာင်မ help file ကနေ နခေါ် ကကညဲ့်တတ်ရင် ဲ့ ပ အဆင်နဖပပါတယ်။ ဒီနတာ၊ဲ့ command တေ်ခိုရဲ manual, help file နတွေ၊ info နတွေ၊ အချက် ဲ့ အလက်နတွေကို ဘယ်နေရာမာ ေင်နရာက် ြတ်ရှုရမယ်၊ ေတာနတွေကို နလဲ့လာကကညဲ့်ရနအာင်။ ၁။ echo $PATH >> command နတွေရဲ တည် နေရာ လမ််းနကကာင််းကို သချင်ရင် echo ဲ့



$PATH ကို သ်းို ပါတယ်။ terminal မာ echo $PATH လို ဲ့ ရို က်၊ enter နခါက်လိုက်တာေဲ ဲ့ commands နတွေ တည်ရရာ လမ််းနကကာင််းမျာ်းကို ဖပသနပ်းပါလမ်မ ဲ့ ယ်။ echo $PATH ၂။ which >> command တေ်ခိုရဲ ဲ့ တည်နေရာ လမ််းနကကာင််းကို သချင်ရင် which ကို သ်းို နင ို ပ ် ါတယ်။ ဥပမာ၊ cp ဆတ ို ဲဲ့ command ရဲ ဲ့ တည်နေရာကို သချင်တယ် ဆပ ို ါေ။ို ဲ့ which cp နပါ။ဲ့ which cp ၃။ type >> ဒါအဖပင် ၊ command တေ်ခိုချင််းရဲ တည် နေရာ လမ််းနကကာင််းကို သချင်ရင် ဲ့ ဲ့



type ကို သ်းို နင ို ပ ် ါနသ်းတယ်။ ဥပမာ၊ mv ဆတ ို ဲဲ့ command ရဲ တည် နေရာကို သချင်တယ် ဆပ ို ါေ။ို ဲ့ ဲ့



type mv နပါ။ဲ့ type mv ၄။ --help >> command တေ်ခိုေ ဲ ဲ့ ဆင ို တ ် ဲဲ့ အကူအညီနတွေကို သချင်ရင် command နောက်ကနေ --help ရို က်ပပီ်း ကကညဲ့်နင ို ပ ် ါတယ်။ ဥပမာ၊ mv ဆတ ို ဲဲ့ command ေဲ ဲ့ ဆင ို တ ် ဲဲ့ အကူအညီကို ကကညဲ့်မယ် ဆပ ို ါေ။ို ဲ့ mv --help နပါ။ဲ့ mv --help ၅။ man >> command တေ်ခိုရဲ ဲ့ အသ်းို ဖပြုပို manual ကို သချင်ရင် man ဆတ ို ဲဲ့ command ကို သ်းို ပါတယ်။ manual page ကို နြေါ် ဖပနပ်းမာ ဖြေ်ပပီ်း သက်ဆင ို တ ် ဲဲ့ command အရဲ ဲ့ သ်းို ပိုသ်းို ေည််းနတွေကို ရင််းဖပထာ်းတာ နတွေျို့ရမာပါ။ man page က ထွေက်ြို ဲ့ အတွေက် q ကို နပ်ရပါတယ်။ ဥပမာ၊ mv ဆတ ို ဲဲ့ command ရဲ manual ကို ကကညဲ့်ချင်တယ် ဆပ ို ါေ။ို ဲ့ man mv နပါ။ဲ့ man mv ဲ့ ၆။ pinfo >> pinfo ဆတ ို ာနကနတာဲ့ man ေဲ ဲ့ အလာ်းတူတဲဲ့ command တေ်ခိုပါပဲ။ command တေ်ခေ ို ဲ ဆ ို တ ် ဲဲ့ info နတွေကို ဖပသနပ်းပါတယ်။ pinfo cp ဲ့ င ဒီ pinfo command က red hat ေဲ ဲ့centos linux မာပဲ ပါလာပါတယ်။ ၇။ info >> command ေဲ ဲ့ဆင ို တ ် ဲဲ့ info ကို ကကညဲ့်ချင်ရင် info ကို သ်းို နင ို ပ ် ါနသ်းတယ်။ info mv ။ ဒီ info command က red hat ေဲ ဲ့centos linux မာပဲ ပါလာပါတယ်။



31



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၈။ မမ သွေင်း် လိုက်တဲဲ့ application ေဲ ဲ့ ဆင ို တ ် ဲဲ့ အချက်အလက် documentation နတွေကို ကကညဲ့်ချင်ရင်နတာဲ့ /usr/share/doc ဆတ ို ဲဲ့ လမ််းနကကာင််းထဲမာ ရာြတ်လရပါတယ် ို ဲ့ ။ ကဲ ! command တေ်ခိုေ ဲ ဲ့ သက်ဆင ို တ ် ဲဲ့ manual ကကညဲ့်ေည််း၊ အကူအညီ နခေါ် ပို၊ info ကကညဲ့်ေည််း၊ documentation မျာ်းကို ေင်နရာက် ြတ်ရှုေည််းနတွေကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (17-5-2018)



32



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### head, tail, cat, more, less ##### linux ရဲ terminal ထဲကနေ text file နတွေ config file နတွေ log file နတွေ၊ text result နတွေ ဲ့ ေသည်ဖြင်ဲ့ ောသာ်းနတွေကို ြတ်ချင်တယ် ဆပ ို ါေ။ို ဲ့ ဘယ် command နတွေကို အသ်းို ဖပြုလို ဲ့ ရမလဲ ကကညဲ့်ကကရနအာင်။ ဒီလို text file နတွေ၊ result နတွေကို ကကညဲ့်မယ် ဆရ ို င် ၁။ head ၂။ tail ၃။ cat ၄။ more ၅။ less ေတဲဲ့ command နတွေ အထဲကမ တေ်ခိုကို သငန ်ဲ့ တာ်သလို အသ်းို ဖပြု ပပီ်း ကကညဲ့်ရပါတယ်။ ဥပမာ၊ readme.txt ဆတ ို ဲဲ့ file နလ်း ရတယ် ဆပ ို ါေ။ို ဲ့ ၁။ head >> သူက file ထဲမာ ပါရတဲဲ့ ောသာ်းနတွေထက ဲ မ ထိ ် ဆ်းု စြော ၁၀ က ကြောင််းကို နြေါ် ဖပနပ်းပါတယ်။ ဥပမာ၊ readme.txt ဆတ ို ဲဲ့ file ထဲက ထိ ် ဆ်းု စြော ၁၀ က ကြောင််းကို ကကညဲ့်ချင် တယ်ဆပ ို ါေ။ို ဲ့ head readme.txt လို ဲ့ ရို က် ရပါမယ်။ head readme.txt ကကညဲ့်ချင်တဲဲ့ line အနရအတွေက်ကို head –n လို ဲ့ သ်းို ပပီ်း သတ်မတ်နပ်းလရပါတယ် ို ဲ့ ။ n နေရာမာ ကကညဲ့်လိုတဲဲ့ line အနရအတွေက်ကို ထညဲ့်နပ်းရို ပါပဲ။ ဥပမာ၊ readme.txt ဆတ ို ဲဲ့ file ထဲက ထိ ် ဆ်းု စြော ၃ က ကြောင််းကို ကကညဲ့်ချင်တယ် ဆပ ို ါေ။ို ဲ့ head -3 readme.txt ၂။ tail >> သူက file ထဲမာ ပါရတဲဲ့ ောသာ်းနတွေထက ဲ မ ကအြောက်ဆ်းု စြော ၁၀ က ကြောင််းကို နြေါ် ဖပနပ်းပါတယ်။ ဥပမာ၊ readme.txt ဆတ ို ဲဲ့ file ထဲက ကအြောက်ဆ်းု စြော ၁၀ က ကြောင််းကို ကကညဲ့်ချင်တယ် ဆပ ို ါေ။ို ဲ့ tail readme.txt လို ရ ဲ့ ို က် ရပါမယ်။ tail readme.txt tail ကို -f ဆတ ို ဲဲ့ option ေဲ ဲ့ တွေဲပပီ်း file တေ်ခို သမဟို ို ဲ့ တ် output result တေ်ခိုကို live ကကညဲ့်လို ဲ့ ရပါနသ်းတယ်။ tail -f readme.txt



tai -f readme.txt လို ဲ့ရို က် enter နခါက်မယ်။ တေ်ြက်မာ၊ နောက်ထပ် terminal တေ်ခို ထပ်ြွေငပ်ဲ့ ပီ်း readme.txt ကို edit လိုပ်မယ်၊ ောနကကာင််းနတွေ ထပ်ဖြညဲ့်မယ်ဆရ ို င်၊ ထပ်ဖြညဲ့် လိုက်တဲဲ့ ောနကကာင််းနတွေဟာ tail -f ေဲ ြွေ ်ဲ့ ာ်းတဲဲ့ terminal ထဲမာ အချေ်ေတေ် ဲ ဲ့ နဖပ်းညီ သွော်းနဖပာင််း ဲ့ ငထ လဲနေမာပါ။ ကကညဲ့်ချင်တဲဲ့ line အနရအတွေက်ကို tail -n လို ဲ့ သ်းို ပပီ်း သတ်မတ်နပ်းလရပါတယ် ို ဲ့ ။n နေရာမာ ကကညဲ့်လတ ို ဲဲ့ line အနရအတွေက်ကို ထညဲ့်နပ်းရို ပါပဲ။ ဥပမာ၊ readme.txt ဆတ ို ဲဲ့ file ထဲက ကအြောက်ဆ်းု စြော ၃ က ကြောင််းကို ကကညဲ့်ချင်တယ် ဆပ ို ါေ။ို ဲ့ tail -5 readme.txt လို ရ ဲ့ ို က် ရပါမယ်။ tail -3 readme.txt ၃။ cat >> သူကနတာဲ့ file ထဲမာ ပါတဲဲ့ ောနကကာင််း အာ်းလို်းကို ဖပသနပ်းပါတယ်။ terminal ညာဘက်နဘ်းက scroll bar ကို အသ်းို ဖပြုပပီ်း အထက်နအာက် နရွေ ျို့ ကကညဲ့်နင ို ပ ် ါတယ်။



33



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ဥပမာ၊ readme.txt ဆတ ို ဲဲ့ file ထဲက ောနကကာင််း အာ်းလို်းကို ကကညဲ့်ချင်တယ် ဆပ ို ါေ။ို ဲ့ cat



readme.txt လို ရ ဲ့ ို က် ရပါမယ်။ cat readme.txt ၄။ more >> သူက ောနကကာင််းနရဆေသ ် ဲ့ နလာက် ဖပသနပ်းပပီ်း အဆ်းို ထ ြတ်ချင်ရင် enter key နခါက်ပပီ်း ကအြောက်ကို ၁ က ကြောင််းြ င််း ဆင််းသွြော်းနင ို ပ ် ါတယ်။ အထက်နအာက် နရွေ ျို့လို ဲ့ နတာမ ို ါေ။ို ဲ့ more readme.txt လို ဲ့ ရို က် ဲ့ ရပါဘူ်း။ ဥပမာ၊ readme.txt ကို ကကညဲ့်ချင်တယ် ဆပ ရပါမယ်။ more readme.txt ၅။ less >> သူကနတာဲ့ သ်းု လို ကကြောင််းပါတယ်။ ောနကကာင််းနတွေကို ြတ်နေရင််း arrow key အသ်းို ဖပြုပပီ်း အထက်နအာက် နရွှျို့ ကကညဲ့်နင ို ပ ် ါတယ်။ ဥပမာ၊ readme.txt ကို ကကညဲ့်ချင်တယ် ဆပ ို ါေ။ို ဲ့ less readme.txt လို ရ ် င်ရင် Esc နှိ ် ဲ့ ို က် ရပါမယ်။ less readme.txt ဖတ်က ရင််း ထွကြ q လို ရို ် ီ ်း ထွကန ် င ို ပ ် ါတယ်။ ဒါကနတာဲ့ text file နတွေကို ြတ်တာနပါနော် ဲ့ ။ နောက်တေ်ခိုက text result နတွေကို ြတ်တာပါ။ ##### text result ##### text result ဆတ ို ာက command တေ်ခိုကို run လိုက်ရင် text output နတွေ ဖပသနပ်းတာကို ဆလ ို ိုတာပါ။ ဥပမာ၊ journalctl (journalctl အနကကာင််းကို နောက်ပိုင်း် တွေင် ရင််းပါမည်) လို ဲ့ ရို က် enter နခါက်လိုကရ ် င် system log ေဲဆ ို တ ် ဲဲ့ text result နတွေ အမျာ်းကကီ်း ထွေက်လာမာပါ။ text ဲ့ င result ဆတ ို ာ ဒါကို ဆလ ို ိုတာပါ။ ဒီလို text result နတွေကို ြတ်ြိုအတွေ က် more ေဲ ဲ့ less ကို ဲ့ အသ်းို မျာ်းကကပါတယ်။ ဘယ်လို သ်းို လဲဆန ို တာဲ့ pipe သနကေတ | ခပပီ်း သ်းို ကကပါတယ်။ နအာက်ပါအတင ို ်း် ပါ။ journalctl | less ကဲ ! text file နတွေ၊ text result ကို ကကညဲ့်ပိုကကညဲ့်ေည််းကနတာဲ့ ဒီနလာက်ပါပဲ။ command နတွေကို ကာလနဒသအလိုက် သငန ်ဲ့ တာ်သလို အသ်းို ချနင ို ပ ် ါနေ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (17-5-2018)



34



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### creating and editing text file in linux ##### linux မာ server နတွေ တင်ပပီ်း configuration လိုပ်တဲဲ့ အခါ .cfg, .conf, .. ေတဲဲ့ file နတွေထဲ ေင်ပပီ်း ဖပင်ဆင်တာ၊ နရ်းသာ်းတာ ဖပြုလိုပ်ရပါတယ်။ အဲန ဲ့ တာ၊ဲ့ ဒီတေ်ခါ၊ linux နပေါ်မာ ောနရ်းမယ်။ ဖပင်မယ်။ text file နတွေကို create လိုပ်မယ်။ edit လိုပ်မယ်နပါ။ဲ့ အရင်ဆ်းို ေမ််းသပ်ြို ဲ့ အတွေက်



touch command ကို အသ်းို ဖပြုပပီ်း readme.txt ဆိုတဲဲ့ file နလ်းကို နဆာက်လိုက်ပါ။ touch readme.txt ကဲ ! text editing ေဲ ဲ့ပတ်သက်တာနလ်း နဖပာကကရနအာင်။ text file နတွေကို creating ေဲ ဲ့ editing လိုပ်နင ို ြ ် ို ဲ့linux မာ text editor နတွေ အမျာ်းကကီ်း ရပါတယ်။ အဲဒထ ီ က ဲ မ၊ vim ေဲ ဲ့gedit ဆတ ို ဲဲ့ text editor နေ်မျြု်းက လူသ်းို မျာ်းပါတယ်။ vim >> သူကနတာဲ့ command line အကခြခ ြု text editor ပါ။ terminal ကို ဖွငပ် ီ ်း text file ကတွကို edit လု ်ြ င်တအြါ vim ကို သ်းု ရပါတယ်။ ၁။ vim text editor ကို ြွေငြ ်ဲ့ ို ဲ့ သ်းို ရမယဲ့် command ကနတာဲ့ vim ပါ။ vi လလည် ို ဲ့ ်း သ်းို လရပါတယ် ို ဲ့ ။ ဥပမာ၊ readme.txt ကို edit လိုပ်ချင်တယ် ဆပ ို ါေ။ို ဲ့ ဒါအတွေက် ရို က်ရမယဲ့် command ကနတာဲ့ နအာက်ပါ အတိုင်း် ပါပဲ။ vim readme.txt ၂။ vim editor ထဲ နရာက်သာွေ ်းပပီဆရ ို င် edit လု ် နင ို ဖ ် ို အတွက် keyboard နပေါ်က a သမဟို ို ဲ့ တ် i သမဟို ို ဲ့ တ် insert key ကို နပ်နပ်းရပါမယ်။ ဒါဆရ ို င် edit mode ထ ကရြောက်သာွေ ်းမာပါ။ ဒါမှ စြောကရ်းလို ရပါမယ်။ ၃။ ပပီ်းရင် ကိုယ် နရ်းမတ်ချင်တာနတွေ နရ်းမတ်နပါ။ဲ့ ောသာ်းနတွေကို mouse အသ်းို ဖပြုပပီ်း selection မတ်နင ို ပ ် ါတယ်။ 1. Yin Latt 2. Ei Chaw Po 3. Aye Thaung လို ရ ဲ့ ို က်ကကညဲ့်ပါ။ အေမ််းနပါ။ဲ့ ၄။ ကေစပပီ်းလို ဲ့ save လု ် ပ ီ ်း ထွကမ ် ယ်ဆု ိ keyboard နပေါ်က Esc ကို ရိုက၊် :wq လို ထ ် ရု ိ ကပ် ီ ်း ထွကရ ် ပါမယ်။ save and exit လု ် တ သက ြောနပါ။ဲ့ :wq ေဲ ဲ့ save and exit လု ် ထွကလ ် ို မရရင် :wq!



ထွကရ ် ပါတယ်။ force သ်းု ပ ီ ်း ထွကတ ် သက ြောပါ။



၅။ save မလု ် ထွကလ ် ို မရရင် :q!



ထွကမ ် ယ်ဆု ိ Esc ရို က၊် :q လို ရို က်ပ ီ ်း ထွကရ ် ု ါ ။ :q



exit လု ်



ထွကရ ် ါတယ်။ force သ်းု ပ ီ ်း ထွကတ ် သက ြော ါ။



၆။ ောနကကာင််းနတွေကို ောလို်းတေ်လို်းချင််းေီ ဒါမမဟိုတ် line အလိုက်၊ block အလိုက် selection မှတြ ် င်ရင် visual mode ကို ကခ ြောင််းရပါမယ်။ visual mode ကို ကခ ြောင််းမယ်ဆု ိ Esc ကို နှိ ် ပ ီ ်းမှ v ကို နှိ ် ရပါတယ်။ visual mode ၃ မ ိြု်း ရှိ ပါတယ်။ တေ်ခို သထာ်းရမာက၊ mode တစ်ြုကက တစ်ြုဆ ီ ကခ ြောင််းတအြါ Esc key နှိ ် ပ ီ ်းမှသြော က်းကခ ြောင််းနိင ု တ ် ယ် ဆတ ို ာပါပဲ။



35



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



v အကသ်းကို နပ်ရင် သြောမ ် visual mode ဆီ နရာက်ပါမယ်။ shift + v ကို နပ်ရင် line အလိက ု ် selection လု ် နင ို တ ် visual line mode ဆီ နရာက်ပါမယ်။ ctrl + v ကို နပ်ရင် block အလိက ု ် selection လု ် နင ို တ ် visual block mode ဆီ နရာက်ပါမယ်။ selection မှတခ် ြင််းကို keyboard က ေါ်က arrow key ကတွ ကဆြောင်ရွက်ရပါတယ်။ ၇။ visual mode ထမှြော selection မှတပ် ီ ်း copy က်းတြောကို yank လို ကြေါ်ပပီ်း y key ကို အသ်းို ဖပြုရပါတယ်။ visual mode ထမှြော copy က်းထြော်းတြောကတွ က ရြောြ paste လု ် တြောကို put လို ကြေါ်ပပီ်း၊ p key သ်းို ပါတယ်။ p ကို နှိ ် လက ို ရ ် င် cursor ရှိတ က ရြောမှြော က်းထြော်းတြောကတွကို က ရြောြ သွြော်းမှြော ါ။ ၈။ visual mode ထမှြော selection မှတပ် ီ ်း copy cut လု ် မယ်ဆု ိ d key ကို အသ်းို ဖပြု ရပါတယ်။ visual mode ထမှြော cut လု ် ထြော်းတြောကတွ က ရြောြ paste လု ် တြောကို put လို ကြေါ်ပပီ်း၊



p key သ်းို ပါတယ်။ p ကို နှိ ် လက ို ရ ် င် cursor ရှိတ က ရြောမှြော cut လု ်ထြော်းတ text ကတွကို က ရြောြ သွြော်းမှြော ါ။ ၉။ visual mode ထမှြော စြောက ကြောင််းကတွကို line အလိက ု ် delete လု ် မယ်ဆု ိ d key ကို သ်းို ရပါတယ်။ d ကို နှိ ် တြော ၁ က ကြောင််းြ င််း ဖ က်သာွေ ်းမာပါ။ x ကို နှိ ် ရင် normal delete ပါ။ ပိုမေ်အတိုင်း် ြျက်သာွေ ်းပါလမ်မ ဲ့ ယ်။ ၁၀။ ကဆြောင်ရွက်ထြော်းတြောကတွကို undo လု ် မယ်ဆု ိ u key ကို နှိ ် ၊ redo လု ် မယ်ဆု ိ ctrl



+ r ကို အသ်းု ဖပြုရပါမယ်။ vim text editor ေဲ ဲ့ ပတ်သက်တဲဲ့ တေ်ဖခာ်းသ်းို နင ို တ ် ာနတွေကို သလို ရင်နတာဲ့ man vi လို ရ ို ပ ် ါတယ်။ ဲ့ ို က် enter နခါက်ပပီ်း manual page ထဲမာ နလဲ့လာနင gedit >> သူကနတာဲ့ graphical interface ေဲ ဲ့ text editor နလ်းပါ။ graphic ဖြေ်တာနကကာင်ဲ့ အသ်းို ဖပြုပိုက ရို ်းရင််း လွေယ်ကူပါတယ်။ဒါနကကာင ်ဲ့ အကျယ်တေင်ဲ့ ရင််းဖပမနေနတာဲ့ ဲ့ ပါဘူ်း။ ဥပမာ၊ readme.txt ကို edit လိုပ်ချင်တယ် ဆပ ို ါေ။ို ဲ့ ဒါအတွေက် ရို က်ရမယဲ့် command ကနတာဲ့ နအာက်ပါ အတိုင်း် ပါပဲ။ gedit readme.txt ဒီလရ ို ို က် enter နခါက်လိုက်ရင် readme.txt ဟာ gedit application နလ်းထဲမာ ပွေငလ ်ဲ့ ာပါလမ်မ interface ဲ့ ယ်။ သူရဲဲ့ graphical ဲ့ ကို နလဲ့လာပပီ်း edit လိုပ်ရို နပါ။ဲ့ ကဲ ! linux နပေါ်မာ text file နတွေကို creating and editing လိုပ်တဲဲ့ အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (18-5-2018)



36



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### creating user account ##### ဒီတေ်ခါ linux operating system မာ user account နတွေ တည်နဆာက်တဲအ ဲ့ နကကာင််း နဖပာရနအာင်။ ကိုယ် အသ်းို ဖပြုနေတဲဲ့ account name ကို သချင်ရင် terminal မာ whoami လို ရ ဲ့ ို က် enter နခါက်ပပီ်း သနင ို ပ ် ါတယ်။ whoami အဲဒါ အသာထာ်းပပီ်း နရ ျို့ဆက်သာွေ ်းကကရနအာင်။ #user_account linux မာ user account အမျြု်းအော်း ၃ မျြု်း ရပါတယ်။ အာဒ ဲ့ ါနတွေကနတာ၊ဲ့ ၁။ superuser ၂။ system user ၃။ normal user တပါပဲ ို ဲ့ ။ ၁။ superuser ဆတ ို ာ root account ကို နဖပာတာပါ။ linux system တေ်ခိုလို်းမာ လိုပ်ပိုငခ ် ွေင်ဲ့ အရဆ်းို account နပါ။ဲ့ သူရဲဲ့ UID (User ID) က 0 ပါ။ ဲ့ ၂။ system user ဆတ ို ာကနတာဲ့ linux system အတွေက် လိုအပ်တဲဲ့ account နတွေကို ဆလ ို ိုတာပါ။ operating system က သူြာသာ run ြို သ ဲ့ ဲ့ ်းို တဲဲ့ account နတွေနပါ။ဲ့ ၃။ normal user ဆတ ို ာကနတာဲ့ ရင််းပါတယ်။ အသေ် ထပ်မတည်နဆာက်လိုက်တဲဲ့ account နတွေနပါ။ဲ့ root account လို အလို်းေို လိုပ်ပိုငခ ် ွေင်ဲ့ မရပါဘူ်း။ #user_id ဒီနေရာမာ တေ်ခို နဖပာချင်တာက UID (User ID) ပါ။ account တည်နဆာက်ေဉမာ တွေဲလျက်ပါလာတဲဲ့ ID နပါ။ဲ့ ၁။ UID 0 ဟာ root account ရ UID ပါ။ ၂။ UID 1 ကနေ 999 ထကို system က သ်းု တ UID နတွေအဖြေ် သတ်မတ်ပါတယ်။ os က အသ်းို ဖပြုတဲဲ့ account နတွေ အတွေက်နပါ။ဲ့ ၃။ UID 1000 ကနေ 60,000 ထကို ထပ်မ create လိုပ်ထာ်းတဲဲ့ normal user account နတွေ အတွေက် အသ်းို ဖပြုပါတယ်။ UID, GID သတ်မတ်တန ဲဲ့ ေရာမာ နောက်ဆ်းို နဆာက်ခဲဲ့တဲဲ့ UID, GID (Group ID) ကို ကကညဲ့်ပပီ်း တေ်တို်းသွော်းနလဲ့ရပါတယ်။ ဥပမာ နပ်းရရင် tom ဆတ ို ဲဲ့ user ရ UID က 1,000 ဖြေ်တယ်။ အဲဒ ဲ့ ါကို jerry ဆတ ို ဲဲ့ အမည်ေ ဲ ဲ့ user account တေ်ခို ထပ်လိုပ်လက ို ်တယ်။ jerry ဆိတ ု account ရ UID သည် ဘယ်နလာက် ဖြေ်မလဲ။ ရို ်းရို ်းနလ်းပါ။ 1001 ဖြေ်သာွေ ်းမာနပါ။ဲ့ UID ရဲ ဲ့ default maximum value ကို /etc/login.defs မာ ေင်နရာက် ဖပင်ဆင်လို ဲ့ ရပါတယ်။ ဘယ်လို ဖပင်ရမလဲ ဆန ို တာဲ့ --> vi /etc/login.defs လို ဲ့ရို က် enter နခါက်။ i ကို နပ်



37



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



insert mode ကို ေင်။ UID_MAX 60000 နေရာမာ UID_MAX 1001 လို ဖပင် ဲ့ ။ Esc နပ်၊ :wq ေဲ save ဲ့ and exit လိုပ်။ အဲန ဲ့ တာဲ့ ဘာဖြေ်လဲ? normal user account နေ်ခိုထက် ပိုနဆာက်လို ဲ့ မရနတာဘ ဲ့ ်းူ နပါ။ဲ့ (normal user account နတွေရဲ UID က 1000 ကနေ ေတာမို 1001 ဆန ို တာဲ့ ၂ ခိုနပါ)ဲ့ ဒီသနဘာပါ။ ဲ့ ဲ့ ဒါနပမယဲ့် အဲဒ ီ UID သတ်မတ်ချက် range နတွေဟာ linux os version နပေါ် မူတည်ပပီ်း ကွေဲ ဖပာ်းနလဲ့ရပါတယ်။ centos 6 မှြော normal user account ကတွ အတွက် UID 500 ကနေ ေပပီ်း၊ centos 7 မှြောကတြော UID 1,000 ကနေ ေပါတယ်။ အထက်မာ နြာ်ဖပထာ်းနသာ UID ဆင ို ရ ် ာ သတ်မတ်ချက်သည် centos 7 က အချက် အလက်နတွေပါ။ သ်းို ထာ်းတဲဲ့ photo ကနတာဲ့ centos 6 မာ ေမ််းထာ်းတဲဲ့ ပိုပါ။ ဒါနကကာင ်ဲ့ tom ဆတ ို ဲဲ့ ဲ့ normal user account ရဲ ဲ့ UID က 500 ကနေ ေနေတာပါ။ (Admin လည််း centos 7 မသွေင်း် ရနသ်းလ)ို ဲ့ :P တြေ် account တေ်ခိုရဲ UID ကို သချင်ရင် id ဆတ ို ဲဲ့ command ေဲ ဲ့ကကညဲ့်လရပါတယ် ို ဲ့ ။ ဲ့ ဥပမာ၊ tom ဆတ ို ဲဲ့ account ရဲ UID ကို သချင်တယ် ဆပ ို ါေ။ို ဲ့ ID tom လို ရ ဲ့ ဲ့ ို က် enter နခါက်။ id tom ဒါက user account ေဲ ဲ့သက်ဆင ို တ ် ဲဲ့ UID အနကကာင််းပါ။ #creating_account user account တည်နဆာက်တအ ဲဲ့ နကကာင််း ဆက်သာွေ ်းလိုက်ကကေ။ို ဲ့ ၁။ user account တေ်ခို တည်နဆာက်မယ်ဆို useradd ဆတ ို ဲဲ့ command ကို သ်းို ပါတယ်။ ဥပမာ၊ tom ဆတ ို ဲဲ့ user account တည်နဆာက်မယ် ဆပ ို ါေ။ို ဲ့ useradd tom လို ရ ဲ့ ို က် enter နခါက်။ useradd tom ၂။ user account တေ်ခိုကို password နပ်းချင်ရင် passwd ဆတ ို ဲဲ့ command ကို သ်းို ပါတယ်။ ဥပမာ၊ tom ဆတ ို ဲဲ့ account ကို password နပ်းမယ် ဆိုပါေ။ို ဲ့ passwd tom လို ဲ့ ရို က် enter နခါက်။ passwd tom ၃။ user account တေ်ခိုကို ြျက်ချင်ရင်နတာဲ့ userdel ဆတ ို ဲဲ့ command ကို -r ဆတ ို ဲဲ့ option ေဲ ဲ့ တွေဲသ်းို ရပါတယ်။ ဥပမာ၊ tom ဆတ ို ဲဲ့ user account ကို ြျက်ချင်တယ် ဆပ ို ါေ။ို ဲ့ userdel



-r tom လို ရ ဲ့ ို က် enter နခါက်။ userdel -r tom တေ်ခို သထာ်းရမာက user account တေ်ခို create လိုပ်တာေဲ ဲ့ အမည်တူ group တေ်ခိုပါ အလိုလို ရလာတယ်ဆတ ို ာပါပဲ။ ဥပမာ၊ tom ဆတ ို ဲဲ့ user account ကို create လိုပ်ရင်၊ tom ဆတ ို ဲဲ့ အမည်ေ ဲ group တေ်ခိုပါ နဆာက်ပီ်းသာ်း ဖြေ်သာွေ ်းပါလမ်မ ဲ့ ဲ့ ယ်။ #user_info user account နတွေရဲ info နတွေကို /etc/passwd ( / နအာက်က etc ဆိုတဲဲ့ directory ဲ့ နအာက်က passwd အမည်ရတဲဲ့ file) မာ ေင်နရာက် ကကညဲ့်ရှုနင ို ပ ် ါတယ်။



38



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



less /etc/passwd သမဟို ို ဲ့ တ် vim /etc/passwd /etc/passwd မာ user name, password, user id, group id, GECOS, home directory ေဲ shell type ဆတ ို ဲဲ့ အပိုင်း် ၇ ပိုင်း် --> ဲ့ (1.username 2.password 3.UID 4.GID 5.GECOS 6.home dir 7.login shell) ကို colon : ေဲ ဲ့ဖခာ်းပပီ်း နြေါ် ဖပထာ်းတာ နတွေျို့ရပါလမ်မ ဲ့ ယ်။ ရင််းရရင် --> ၁။ username ဆတ ို ဲဲ့ နေရာမာ ရတာသည် username နပါ။ဲ့ ဥပမာ၊ root, tom, ေသည်ဖြင်ဲ့ နတွေျို့ရပါမယ်။ ၂။ password ဆတ ို ဲဲ့ နေရာမာ ရတာသည် password နပါ။ဲ့ ၃။ UID ဆတ ို ဲဲ့ နေရာမာ ရတာသည် User ID ေပါတ်နပါ။ဲ့ ၄။ GID ဆတ ို ဲဲ့ နေရာမာ ရတာသည် အဲဒ ဲ့ ီ user ပါေင်ထာ်းတဲဲ့ group ရဲ Group ID နပါ။ဲ့ ဲ့ ၅။ ဒီနေရာမာ GECOS ဆတ ို ာ account ေဲ ဲ့ ပတ်သက်တဲဲ့ comment ထညဲ့်သင ွေ ်း် ထာ်းတဲဲ့ နေရာကို ဆလ ို ိုတာပါ။ GECOS ရဲ အဓ ဲ့ ပပါယ်က General Electric Comprehensive Operating System ပါ။ ၆။ home directory ဆိုတာကနတာဲ့ အဲဒ ဲ့ ီ user account ရဲ ပင် ဲ့ မ directory ကို နဖပာတာပါ။ ၇။ shell type ဆတ ို ာကနတာဲ့ အဲဒ ဲ့ ီ user အသ်းို ဖပြုတဲဲ့ shell အမျြု်းအော်းကို နဖပာတာပါ။ login ဝင်စရြော မလို



system ရ လိအ ု ် ြ က်အရ တည်ကဆြောက်ထြော်းတ account ကတွရ shell



က ရြောမှြော /sbin/nologin လို ပါနလဲ့ ရတယ်။ ဲ့ ဒါအဖပင် ၊ user ေဲ ဲ့ ဆင ို တ ် ဲဲ့ UID, GID ေဲ ဲ့ ပါေင်ထာ်းတဲဲ့ group နတွေကို id ဆတ ို ဲဲ့ command ေဲ ဲ့ ဲ့ ကကညဲ့်နင ို ပ ် ါတယ်။ ဥပမာ၊ tom ဆတ ို ဲဲ့ account ရဲ UID, GID, group နတွေကို ကကညဲ့်မယ် ဆပ ို ါေ။ို ဲ့ ID tom လို ဲ့ ရို က် ဲ့ enter နခါက်။ ID tom user account အမျြု်းအော်း၊ တည်နဆာက်ပို၊ info ကကညဲ့်ပိုနတွေကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (18-5-2018)



39



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### creating group ##### linux နပေါ်မာ user account နတွေ create လိုပ်တာ သပပီ်းတဲန ဲ့ ောက် group နတွေ အနကကာင််း နဖပာကကရနအာင်။ group နတွေကို ဘာန ို တာဲ့ group တေ်ခိုထမ ဲ ာ ပါေင်တဲဲ့ ဲ့ ကကာင်ဲ့ ြေ်တီ်းရတာလဲဆန user account နတွေ အနေေဲ group owner က သတ်မတ်နပ်းထာ်းတဲဲ့ policy အတိုင်း် application, ဲ့ file, folder နတွေကို မျှနေ သ်းို ေွေဲနင ို ြ ် ိုပါ။ ဲ့ ဥပမာ၊ teamone ဆတ ို ဲဲ့ group ထဲမာ ပါေင်တဲဲ့ member နတွေသည် ဘယ် file နတွေကို access လိုပ်ခွေင်ဲ့ ရမယ်။ မပါေင်တဲဲ့ account နတွေကနတာဲ့ access လိုပ်ခွေင်ဲ့ မရဘူ်း ေသည်ဖြငန ်ဲ့ ပါ။ဲ့ #group_type linux မာ ၁။ primary group ေဲ ဲ့ ၂။ supplementary group ဆပို ပီ်း group အမျြု်းအော်း ၂ ခို ရပါတယ်။ ၁။ primary group ဆတ ို ာကနတာဲ့ user account တေ်ခို create လိုပ်ေဉမာ တွေဲလျက် ပါလာတဲဲ့ default group ကို ဆလ ို ိုတာပါ။ ဥပမာ၊ tom ဆတ ို ဲဲ့ user account ကို နဆာက်လိုက်ရင် tom ဆတ ို ဲဲ့ group နလ်းပါ တေ်ခါတည််း နဆာက်ပပီ်းသာ်း ပါလာမာပါ။ user account တေ်ခဟ ို ာ ဘယ် group နတွေထမ ဲ ာ member အဖြေ် ပါေင်နေသလဲ သချင်ရင် groups ဆတ ို ဲဲ့ command ေဲ ဲ့ ကကညဲ့်နင ို ပ ် ါတယ်။ ဥပမာ၊ tom ဆတ ို ဲဲ့ user ဟာ ဘယ် group နတွေရဲ member အဖြေ် ေင်ထာ်းသလဲ ဲ့ သချင်တယ် ဆပ ို ါေ။ို ဲ့ groups tom လို ရ ဲ့ ို က် enter နခါက်။ groups tom ၂။ supplementary group ဆတ ို ာကနတာဲ့ user ကနေ ထပ်မ တည်နဆာက်လိုကတ ် ဲဲ့ group နတွေကို ဆလ ို ိုတာပါ။ ကဲ ! ဟိုတ်ပပီ group နတွေကို တည်နဆာက်တအ ဲဲ့ နကကာင််း ဆက်ရ နအာင်။ #creating_group ၁။ group တေ်ခို တည်နဆာက်မယ်ဆို groupadd ဆတ ို ဲဲ့ command ကို သ်းို ရပါတယ်။ ဥပမာ၊ teamone ဆတ ို ဲဲ့ group တေ်ခို နဆာက်ချင်တယ် ဆပ ို ါေ။ို ဲ့ groupadd teamone လို ဲ့ ရို က် enter နခါက်။ groupadd teamone ၂။ group တေ်ခိုကို ြျက်ချင်ရင် groupdel ဆတ ို ဲဲ့ command ကို သ်းို ရပါတယ်။ ဥပမာ၊ teamone ဆတ ို ဲဲ့ group ကို ြျက်ချင်တယ် ဆပ ို ါေ။ို ဲ့ groupdel teamone လို ရ ဲ့ ို က် enter နခါက်။ groupdel teamone #group_info ၁။ group နတွေရဲ info နတွေကို /etc/group မာ ေင်ကကညဲ့်နင ို ပ ် ါတယ်။ less /etc/group ဲ့ သမဟို ို ဲ့ တ် vim /etc/group



40



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၂။ ဘယ် group ထဲမာ ဘယ် user နတွေ ပါသလဲ သချင်ရင် /etc/gshadow မာ ေင်ကကညဲ့်နင ို ပ ် ါတယ်။ less /etc/gshadow သမဟို ို ဲ့ တ် vim /etc/gshadow ကဲ ! group တေ်ခို create လိုပ်တဲဲ့ အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပကကပါနေ။ Yin Thu (19-5-2018)



##### user account နှင ် သက်ဆင ုိ က ် သြော ##### linux မာ user account နတွေ တည်နဆာက်တာကို နဖပာခဲဲ့ပပီ်းပါပပီ။ ဒီတေ်ခါ user account နတွေကို လိုအပ်ချက်အရ ဘယ်လို modify လိုပ်နင ို မ ် လဲဆတ ို ာ နလဲ့လာကကရနအာင်။ user account တေ်ခိုကို modify လိုပ်ချင်တဲအ ဲ့ ခါ usermod ဆတ ို ဲဲ့ command ကို option နတွေေ ဲ ဲ့ တွေဲသ်းို ရ ပါတယ်။ ၁။ usermod -l >> မမ ရဲ user name ကို change ချင်တဲအ ဲ့ ခါ သ်းို ပါတယ်။ ဲ့



usermod -l oldname newname ဥပမာ၊ tom ဆတ ို ဲဲ့ user name ကို jerry လို ဲ့ နဖပာင််းမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command က နအာက်ပါအတိုင်း် ပါ။ usermod -l tom jerry ၂။ usermod -u >> user account တေ်ခိုရဲ ဲ့UID (User ID) ကို နဖပာင််းလဲချင်တဲအ ဲ့ ခါ သ်းို ပါတယ်။ ဥပမာ၊ tom ဆတ ို ဲဲ့ user ရဲ UID ကို 1500 အဖြေ် နဖပာင််းလဲမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရ ဲ့ မယဲ့် command က နအာက်ပါအတိုင်း် ပါ။ usermod -u 1500 tom ၃။ usermod -C >> user ေဲ ဲ့ပတ်သက်တဲဲ့ info နလ်းနတွေ တွေဲထညဲ့်ချင်ရင် သ်းို ပါတယ်။



41



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ဥပမာ၊ tom ဆတ ို ဲဲ့ user ေဲအတူ i am single ဆတ ို ဲဲ့ info နလ်း တွေဲထညဲ့်မယ် ဆိုပါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် ဲ့ command ကနတာဲ့ နအာက်ပါ အတိုင်း် ပါ။ usermod -C "i am single" tom /etc/passwd ဆတ ို ဲဲ့ file ထဲ ေင်ကကညဲ့်ရင် GECOS နေရာမာ i am single ဆတ ို ာ နပေါ်နေပါလမ်မ ဲ့ ယ်။ ၄။ usermod -a -G >> user ကို တစ်ခြြော်း group ကနေ မြယ်ရာ်းပဲ၊ supplementary group တေ်ခိုရဲ ဲ့ member အဖြေ် သွေင်း် ချင်တဲအ ဲ့ ခါ သ်းို ပါတယ်။ ဥပမာ၊ tom ဆတ ို ဲဲ့ user ကို teamone ဆတ ို ဲဲ့ group ထဲ သွေင်း် မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ usermod -a -G teamone tom ၅။ usermod -g >> group တေ်ခိုကို user ရဲ primary group အဖြေ် သတ်မတ်ချင်တဲဲ့ ဲ့ အခါ သ်းို ပါတယ်။ ဥပမာ၊ tom ဆတ ို ဲဲ့ user ရဲ account နဆာက်ေဉက တွေဲလျက်ပါလာတဲဲ့ primary ဲ့ group က tom ပါ။ teamone ဆတ ို ဲဲ့ group ကို primary group အဖြေ် နဖပာင််းလဲ သတ်မတ် မယ်ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command က နအာက်ပါအတိုင်း် ပါ။ usermod -g teamone tom ၆။ usermod -d >> user ရဲ home directory ကို နဖပာင််းလဲ သတ်မတ်နပ်းချင်တဲအ ဲ့ ခါ ဲ့ သ်းို ပါတယ်။ ဥပမာ၊ tom ဆတ ို ဲဲ့ user ရဲ account ြွေငေ ်ဲ့ ဉက တွေဲလျက်ပါလာတဲဲ့ home directory ဲ့ က /home/tom ပါ။ အဲဒအ ီ ော်း /home/www ကို tom ရဲ home directory အဖြေ် နဖပာင််းလဲ ဲ့ သတ်မတ်ချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command က နအာက်ပါအတင ို ်း် ပါ။ usermod -d /home/www tom ၇။ usermod -m -d >> user ရဲ home directory ကို တည်နေရာ နရွှျို့ချင်တဲအ ဲ့ ခါ သ်းို ပါ ဲ့ တယ်။ ဥပမာ၊ tom ဆိုတဲဲ့ user ရဲ ဲ့ account ြွေငေ ်ဲ့ ဉက တွေဲလျက်ပါလာတဲဲ့ tom ဆတ ို ဲဲ့ home directory ရဲ တည် နေရာက၊ /home ရဲ နအာက် မာပါ။ ဒါကို /home/www ဆီ tom ရဲ home ဲ့ ဲ့ ဲ့ directory ကို နရွှျို့ချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command က နအာက်ပါအတိုင်း် ပါ။ usermod -m -d /home/www tom home directory ကို ကခ ြောင််းလ သတ်မှတတ ် ြော ၊ ကရ ွှေ့တြောဟြော မတ ါ ်း။ ကိယ ု တ ် င ို ် စမ််းသ ် ကည် ါ။ ၈။ usermod -s >> user ရဲ ဲ့ default shell ကို နဖပာင််းလဲ သတ်မတ်ချင်တဲအ ဲ့ ခါ သ်းို ပါတယ်။ ဥပမာ၊ tom ဆတ ို ဲဲ့ user ရဲ default shell က bash shell ပါ။ ဒါကို sh shell အဖြေ် ဲ့ နဖပာင််းလဲ သတ်မတ်ချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command က နအာက်ပါအတိုင်း် ပါ။ usermod -s /bin/sh tom ၉။ usermod -L >> user account တေ်ခိုကို lock ချချင်တအ ဲဲ့ ခါ သ်းို ပါတယ်။ ဥပမာ၊ tom ဆတ ို ဲဲ့ user account ကို lock ချမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command က နအာက်ပါ အတိုင်း် ပါ။ usermod -L tom



42



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၁၀။ usermod -U >> lock ချခထာ်းရတဲဲ့ user account တေ်ခို ကို unlock ဖပေ်လိုပ်မယဲ့် အခါသ်းို ပါတယ်။ ဥပမာ၊ tom ဆတ ို ဲဲ့ user account ကို unlock ဖပေ်လိုပ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြု ရမယဲ့် command က နအာက်ပါအတင ို ်း် ပါ။ usermod -U tom ၁၁။ gpasswd -d >> user ကို supplementary group တေ်ခိုထက ဲ နေ ဖပေ်ြယ်ရာ်းချင် တဲအ ဲ့ ခါ ဖြြုတ်ချင်တဲအ ဲ့ ခါ သ်းို ပါတယ်။ ဥပမာ၊ tom ဆတ ို ဲဲ့ user ကို teamone ဆတ ို ဲဲ့ group ထဲက နေြယ်ရာ်းမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command က နအာက်ပါအတိုင်း် ပါ။ gpasswd -d tom teamone ၁၂။ normal user account တေ်ခိုကို sudo ဆတ ို ဲဲ့ command ေဲ ဲ့ superuser ဖြေ်တဲဲ့ rootကဲသ ဲ့ ၊ို ဲ့ အသ်းို ဖပြုခွေငန ်ဲ့ ပ်းနင ို ြ ် ိုအတွေ က် အဲဒ ီ user ကို wheel ဆတ ို ဲဲ့ group ထဲထညဲ့်နပ်းရပါတယ် ဲ့ ဥပမာ၊ tom ဆတ ို ဲဲ့ account ကို root ကဲသ ဲ့ ို ဲ့လိုပ်ပိုငခ ် ွေငရ ်ဲ့ နအာင် သတ်မတ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြု ရမယဲ့် command က နအာက်ပါအတင ို ်း် ပါ။ usermod -a -G tom wheel ဒါဆို tom ဆတ ို ဲဲ့ account ဟာ root account ကသာ ြွေငက်ဲ့ ကညဲ့်နင ို တ ် ဲဲ့ file နတွေကို sudo ဆတ ို ဲဲ့ command ခပပီ်း ြွေငန ်ဲ့ င ို ပ ် ါပပီ။ sudo ေဲ ဲ့ ဆင ို တ ် ဲဲ့ configuration နတွေကို /etc/sudoers မာ ေင်ကကညဲ့် နင ို ပ ် ါတယ်။ ကဲ ! ခိုဆို အနတာ်နလ်း ေိုသာွေ ်းပါပပီနော်။ user account တေ်ခိုေ ဲ ဲ့သက်ဆင ို တ ် ဲဲ့ အနကကာင််းနတွေကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (19-5-2018)



43



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### group နှင ် သက်ဆင ုိ က ် သြော ##### linux မာ group တည်နဆာက်တဲဲ့ အနကကာင််း တင်နပ်းပပီ်းပါပပီ။ ဒီတေ်ခါ တည်နဆာက် ထာ်းတဲဲ့ group နတွေကို လအ ို ပ်ချက်အရ ဘယ်လို ဖပင်ဆင်သလဲဆတ ို ာ နလဲ့လာကကညဲ့်ရနအာင်။ group တေ်ခေ ို ဲ ဲ့ သက်ဆင ို တ ် ာနတွေကို ဖပင်ဆင်ချင်တအ ဲဲ့ ခါ groupmod ဆတ ို ဲဲ့ command ကို option နတွေေ ဲ ဲ့တွေဲသ်းို ရပါတယ်။ ေလိုက်ကကရနအာင် ! ၁။ groupmod -g >> group ရဲ GID (group id) ကို နဖပာင််းလဲ သတ်မတ်ချင်တဲအ ဲ့ ခါ ဲ့ သ်းို ပါတယ်။ ဥပမာ၊ teamone ဆတ ို ဲဲ့ group ရဲ GID ကို 1500 လို ဲ့နဖပာင််းမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြု ဲ့ ရမယဲ့် command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ groupmod -g 1500 teamone ၂။ group -n >> group ရဲ name ကို နဖပာင််းလဲလိုတဲအ ဲ့ ခါ သ်းို ပါတယ်။ ဥပမာ၊ teamone ဲ့ ဆတ ို ဲဲ့ group ကို google အဖြေ် name နဖပာင််းလဲမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ groupmod -n google teamone နဖပာရရင် group ေဲ ဲ့ပတ်သက်လို ဒီ ဲ့ option နေ်ခိုပဲ အသ်းို မျာ်းပါတယ်။ group ေဲ ဲ့ သက်ဆင ို တ ် ာနတွေကို ဖပင်ဆင်တဲဲ့ groupmod ဆတ ို ဲဲ့ command ရဲ အသ ်းို ဖပြုပိုနတွေကို ဲ့



man groupmod သမဟို ို ဲ့ တ် groupmod --help လို ရ ို ပ ် ါတယ်။ ဲ့ ို က်ပပီ်း ဆက်လက်နလဲ့လာနင group နတွေကို modify လိုပ် ဖပင်ဆင်တအ ဲဲ့ နကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (19-5-2018)



44



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### superuser Vs normal user Vs Administrator ##### သထာ်းသငတ ်ဲ့ ဲဲ့ အချက်နလ်းနပါ။ဲ့ super user, normal user ေဲ ဲ့ administrator ရဲကွေ ဲ့ ဲဖပာ်းမှု နတွေကို နလဲ့လာကကညဲ့်ရနအာင်။ #superuser ၁။ linux system နပေါ်မာ လိုပ်ပိုငခ ် ွေင်ဲ့ အရဆ်းို account ကို superuser လို ဲ့ နခေါ်ပါတယ်။ system file နတွေကို configure လိုပ်ဖခင််း၊ user account မျာ်း ထပ်မ တည်နဆာက်ဖခင််း၊ ြျက်ပေ်ဖခင််း၊ password နငဆ ်ဲ့ င ို န ် သာ အချက်အလက်မျာ်းကို manage လိုပ်ဖခင််း ေတာနတွေကို ေီမ နဆာင်ရွေက် နင ို ပ ် ါတယ်။ linux system မာ root ဟာ တေ်ခိုတည််းနသာ superuser account ပါပဲ။ သူအတွေ က် password ကို linux ကို ေတင် install လိုပ်ေဉကတည််းက သတ်မတ်နပ်းခဲဲ့ရပါတယ်။ ဲ့ [root@localhost~]# ဆတ ို ဲဲ့ shell prompt အဆ်းို မာ ရတဲဲ့ # သနကေတသည် ယခိုအသ်းို ဖပြု နေနသာ user ဟာ root account ဖြေ်နကကာင််း ညွှေ်း် ဆပ ို ါတယ်။ root account ကနေ normal account တေ်ခိုဆီ ကူ်းနဖပာင််းချင်ရင် သမဟို ို ဲ့ တ် account တေ်ခိုကနေတေ်ခိုဆီ ကူ်းနဖပာင််းချင်ရင် su ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုရပါတယ်။ ဥပမာ၊ root account ကနေ tom ဆတ ို ဲဲ့ normal account ဆီ ကူ်းနဖပာင််းမယ် ဆိုပါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနအာက်ပါအတိုင်း် ပါ။ [root@localhost~]#su tom ဒါက superuser ဖြေ်တဲဲ့ root account ရဲ အနကကာင် ်းပါ။ ဲ့ #normal_user ၂။ normal user ဆတ ို ာကနတာ၊ဲ့ အသေ် ထပ်မတည်နဆာက်လိုက်တဲဲ့ user account နတွေကို ဆလ ို ိုတာပါ။ root account လို လိုပ်ပိုငခ ် ွေငန ်ဲ့ တွေ မရပါဘူ်း။ [tom@localhost~]$ ဆတ ို ဲဲ့ shell prompt အဆ်းို မာ ရတဲဲ့ $ သနကေတသည် ယခို အသ်းို ဖပြုနေနသာ user ဟာ normal account ဖြေ်နကကာင််း ညွှေ်း် ဆပ ို ါတယ်။ normal account ကနေ root account ဆီ ကူ်းနဖပာင််းချင်ရင် su - ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုရပါတယ်။ ဥပမာ၊ tom ဆတ ို ဲဲ့ account ကနေ root ဆတ ို ဲဲ့ superuser account ဆီ ကူ်းနဖပာင််းမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ su #administrator ၃။ လိုအပ်ချက်အရ၊ normal account တေ်ခိုကို root account ကဲသ ဲ့ ို ဲ့ နဆာင်ရွေက်နေ လိုတအ ဲဲ့ ခါ၊ sudo ဆတ ို ဲဲ့ command ကို အဖခာ်း command ေဲ ဲ့ တွေဲြက် အသ်းို ဖပြုရပါတယ်။ ဒီလို အသ်းို ဖပြုနင ို ေ ် ွေမ််းတဲဲ့ account ကို administrator account လို ဲ့ နခေါ်ပါတယ်။ ဥပမာ၊ tom ဆတ ို ဲဲ့ normal account ဟာ၊ jerry ဆတ ို ဲဲ့ user account ကို တည်နဆာက်မယ်ဆိုပါေ။ို ဲ့ useradd jerry



45



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



လို ရ ဲ့ ို က် enter နခါက်လိုက်ရင် Permission denied ဖပပါလမ်မ ဲ့ ယ်။ Permissiom denied မဖပြို ဲ့



sudo ေဲ ဲ့တွေဲြက်ပပီ်း၊ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ [tom@localhost~]$sudo useradd jerry သထာ်းရမာက၊ normal account တေ်ခို အနေေဲ ဲ့ ခိုလို sudo ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုပပီ်း superuser ကဲသ ဲ့ ို ဲ့ ဖပြုမူနင ို ြ ် ို၊ ဲ့ root account ကနေ အဲဒ ီ normal user ကို wheel ဆတ ို ဲဲ့ group ထဲ သွေင်း် နပ်းရပါတယ်။ ဥပမာ၊ root အနေေဲ tom ဆတ ို ဲဲ့ normal account ကို sudo ဲ့ အသ်းို ဖပြုခွေင်ဲ့ နပ်းမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ [tom@localhost~]$usermod -a -G wheel tom #sudo ၄။ sudo အသ်းို ဖပြုခွေင်ဲ့ နပ်းဖခင််းေဲ ဲ့ ဆင ို တ ် ဲဲ့ အချက်အလက်နတွေကို /etc/sudoers မာ ေင်နရာက် ြတ်ရှုနင ို ပ ် ါတယ်။ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ less /etc/sudoers နပါ။ဲ့ less /etc/sudoers #edit_sudoers ၅။ တေ်ခို သတဖပြုရမာက၊ sudo အသ်းို ဖပြုခွေငန ်ဲ့ ပ်းြို ဲ့အတွေက် normal account တေ်ခိုကို wheel group ထဲကို add ပပီ်းတာနတာင်မ၊ sudo သ်းို ြို ဲ့ အဆင်မနဖပနသ်းရင်၊ Permission denied ဖပနေနသ်းရင်၊ /etc/sudoers ထဲကို ေင်ဖပင်နပ်းရပါမယ်။ ဖပင်နပ်းရမယဲ့် အဆငန ်ဲ့ တွေကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ A. vi /etc/sudoers ေဲ ဲ့ြွေငပ ်ဲ့ ါ။ B. i ကို နပ်ပပီ်း insert mode ထဲ ေင်ပါ။ C. #%wheel ALL=(ALL) ALL ကို ရာပါ။ D. #%wheel ALL=(ALL) ALL ရဲ နရ ဲ့ ျို့ဆ်းို က # သနကေတကို ြျက်ပေ်လိုက်ပါ။ E. Esc နပ်၊ :wq! ေဲ ဲ့ ထွေကပ ် ါ။ ဒါဆို အဆင်နဖပပါပပီ။ normal account တေ်ခက ို ို wheel group ထဲသင ွေ ်း် ပပီ်းတာနတာင် sudo သ်းို ြို အဆင် မနဖပနသ်းရင် ဒီေည််းအတိုင်း် နဖြရင််းနင ို ပ ် ါတယ်။ ဲ့ ကဲ ! ောလည််း ေည််းေည််း ရည်သာွေ ်းပပီဗျ။ super user, normal user ေဲ ဲ့ administrator အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (20-5-2018)



46



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



### file နှင ် directory/folder မ ြော်းကို permission သတ်မှတခ် ြင််း ### linux နပေါ်မာ ဘာနတွေ ရမလဲဆန ို တာဲ့ file နတွေ directory နတွေ ရပါမယ်။ အနရ်းကကီ်းတာနတွေ ရသလို အနရ်း မကကီ်းတာနတွေလည််း ရမယ်နပါ။ဲ့ ဒီနတာဲ့ အနရ်းကကီ်းတာနတွေကို မသက်ဆင ို သ ် န ူ တွေ ရေ်က ကာကွေယြ ် ို ဲ့လိုအပ်လာပပီနပါ။ဲ့ အဲဒမ ီ ာ permission က အနရ်းပါလာပါပပီ။ linux system ကို ေင်နရာက် အသ်းို ဖပြုနေတဲဲ့ user နတွေ၊ တူညီတဲဲ့ group တေ်ခိုရဲ member နတွေ၊ group ထဲမာ မပါတဲဲ့ ဲ့ တေ်ဖခာ်း other user နတွေ အနေေဲ၊ ဲ့ အဲဒ ီ file နတွေ directory နတွေကို access လိုပ်ရာမာ၊ သူတရဲ ို ဲ့ ဲ့ အဆငအ ်ဲ့ လိုက် permission နတွေ ခွေဲဖခာ်းသတ်မတ် နပ်းထာ်းနင ို ပ ် ါတယ်။ permission သတ်မတ် ေည််း method နတွေဟာ ရှု ပ်နထွေ်းသလို ထင်ရနပမယဲ့် နသချာနလဲ့လာကကညဲ့်ရင် ော်းလည် ကျွမ််းကျင် သွော်းပါလမ်မ ဲ့ ယ်။ ကဲ ! ေမ််းသပ်ြို အတွေ က် readme.txt ဆတ ို ဲဲ့ file တေ်ခို နဆာက်လိုက်ပါ။ ဲ့ touch readme.txt ပပီ်းရင် ls -l readme.txt လို ဲ့ ရို က် enter နခါက်လိုက်တအ ဲဲ့ ခါ -rw-r--r-ဆတ ို ာနတွေကို နတွေျို့ရပါမယ်။ အဲဒါက ဘာနတွေလဲဆန ို တာဲ့ permission သတ်မတ်ချက်နတွေပါ။ permission တေ်နကကာင််းမာ အပိုင်း် ၃ ပိုင်း် ပါေင်ပါတယ်။ ၁။ file သမဟို ို ဲ့ တ် directory ကို ြေ်တီ်းတဲဲ့ user အတွေက် သတ်မတ်ထာ်းတဲဲ့ permission >> -rw၂။ group ထဲမာ ပါေင်တဲဲ့ user နတွေ အတွေက် သတ်မတ်ထာ်းတဲဲ့ permission >> -r၃။ file ကို ြေ်တီ်းသူလည််း မဟိုတ်၊ group ထဲမာလည််း မပါတဲဲ့ other user နတွေ အတွေက် သတ်မတ်ထာ်းတဲဲ့ permission >> -r- ေသဖြင်ဲ့ ၃ ပိုင်း် ခွေဲဖခာ်းထာ်းပါတယ်။ မတ်ရလွေယ်နအာင် အတိုနဖပာရရင် ၁။ user (u) ၂။ group (g) ၃။ other (o) ဆတ ို ဲဲ့ အပိုင်း် ၃ ပိုင်း် နပါ။ဲ့ ဥပမာ၊ tom ေဲ ဲ့ jerry ဆတ ို ဲဲ့ user နေ်ဦ်းဟာ hackergroup ဆတ ို ဲဲ့ group ထဲမာ member အဖြေ်ပါတယ်။ user >> အဲဒ ီ tom ဆတ ို ဲဲ့ user က readme.txt ဆတ ို ာနလ်းကို တည်နဆာက်လိုက်မယ် ဆပ ို ါေ။ို ဲ့ tom ဆတ ို ဲဲ့ user ဟာ အဲဒ ီ file နလ်းရဲ owner အဖြေ် readme.txt ကို access လိုပ်နင ို မ ် ယ်။ ဲ့



47



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



group >> jerry သည်လည််း hackergroup ဆတ ို ဲဲ့ group ထဲမာ ပါတဲဲ့ အတွေက် member တေ်ဦ်း အဖြေ် readme.txt ကို access လိုပ်နင ို မ ် ယ်။ other >> owner လည််း မဟိုတ် group ထဲမာလည််း မပါတဲဲ့ other user နတွေသည်လည််း သူတို ဲ့ အတွေက် သတ်မတ်နပ်းထာ်းတဲဲ့ permission အရ readme.txt ကို access လိုပ်နင ို မ ် ယ်။ ဒီသနဘာပါ။ ဥပမာ၊ အဲဒ ီ readme.txt ဆတ ို ာနလ်းကို ls –l readme.txt ဆပို ပီ်း နခေါ် ကကညဲ့်လိုက်ရင်၊ rw-r--r-ဆပို ပီ်း နတွေျို့ရပါမယ်။ နရ ျို့ဆ်းို က rw- က ြေ်တီ်းတဲဲ့ user (tom) အတွေက် သတ်မတ်ထာ်းတဲဲ့ permission ပါ။ ဒိုတယ r-- က group ထဲမာပါတဲဲ့ user နတွေ (jerry) အတွေက် သတ်မတ်ထာ်းတဲဲ့ permission ပါ။ တတယ r-- ကနတာဲ့ owner လည််း မဟုတ် group ထဲမာလည််း မ ါတဲ၊ဲ့ other user နတွေ အတွေက် သတ်မတ်ထာ်းတဲဲ့ permission ပါ။ ဒါကို permission သတ်မတ်ချက် လို နခေါ် ဲ့ ပါတယ်။ permission ၃ မျြု်းရပါတယ်။ အဲဒါနတွေကနတာ၊ဲ့ ၁။ read (r) >> numeric တေ်ြို်းအာ်းဖြင်ဲ့ 4 ၂။ write (w) >> numeric တေ်ြို်းအာ်းဖြင်ဲ့ 2 ၃။ execute (x) >> numeric တေ်ြို်းအာ်းဖြင်ဲ့ 1 ေသဖြင်ဲ့ ရပါတယ်။ အတို ဖပေ်ချြုပ်ရရင် permission တေ်နကကာင််းမာ user,group,other ဆတ ို ဲဲ့ အပိုင်း် ၃ ပိုင်း် ရပပီ်း၊ permission က read, write, execute ဆပို ပီ်း ၃ မျြု်း ရတာပါ။ permission နပ်းတဲအ ဲ့ ခါ chmod ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုပါတယ်။ chmod permission နပ်းေည််းကနတာဲ့ ၁။ symbolic ေဲ ဲ့ ၂။ numeric ဆပို ပီ်း ၂ ေည််း ရပါတယ်။ #synbolic_method ၁။ symbolic method :: symbolic ဖြင်ဲ့ permission နပ်းတယ် ဆတ ို ာကနတာဲ့ read (r), write (w), execute (x) ေတဲဲ့ သတ်မတ်ချက်နတွေကို rwx ေသဖြင်ဲ့ အတိုနကာက် သတ်မတ်ပပီ်း နပ်းတဲဲ့ ေည််းပါ။



48



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



file တေ်ခိုကို user အတွေက်သာ သမဟို ို ဲ့ တ် group အတွေက်သာ သမဟို ို ဲ့ တ် other အတွေက်သာ၊ permission တတကျကျ သတ်မတ်နပ်းချင်တဲဲ့ အခါ = သနကေတကို သ်းို ပါတယ်။ ဥပမာ၊ readme.txt ကို user အတွေက် read write execute ဆတ ို ဲဲ့ permission, group အတွေက် read write ဆတ ို ဲဲ့ permission, other အတွေက် read only ဆတ ို ဲဲ့ permission၊ ေသဖြင်ဲ့ တေ်ခိုချင််း ကွေက်ပပီ်း တတကျကျ သတ်မတ်နပ်းမယ် ဆပ ို ါေ။ို ဲ့ = ေဲ ဲ့ တွေဲပပီ်း နအာက်ပါအတိုင်း် တေ်ဆငခ ်ဲ့ ျင််း သတ်မတ်သာွေ ်းရမာပါ။ user (u) အတွေက် >> chmod u=rwx readme.txt group (g) အတွေက် >> chmod g=rw readme.txt other (o) အတွေက် >> chmod o=r readme.txt အာ်းလို်း (a) အတွေက် >> chmod a+x readme.txt readme.txt ကို ls -l readme.txt ဆပို ပီ်း ဖပေ်နခေါ် ကကညဲ့်လိုက်တဲအ ဲ့ ခါ rwxrw-r-- လို နတွေ ျို့ရပါမယ်။ ဲ့ - သနကေတကနတာဲ့ permission တေ်ခိုမာ rwx ဆိုပပီ်း ရရမာဖြေ်ပပီ်း၊ ကွေက်လပ်ဖြေ်နေတဲဲ့ နေရာနတွေကို - ေဲ ဲ့ ဖြညဲ့်ထာ်းတဲသ ဲ့ နဘာပါ။ နပ်းထာ်းတဲဲ့ permission ထဲက ဖပေ်နလျှာခ ဲဲ့ ခါ ဲ့ ျင်တအ သနကေတကို သ်းို ပါတယ်။ ဥပမာ၊ နောနောက file1 မာ user အတွေက် read write execute လို ဲ့ နပ်းထာ်းခဲဲ့တယ်။ အဲဒထ ီ က ဲ မ execute ကို ဖပေ်ဖြြုတ်ချင်တယ် ဆပ ို ါေ။ို ဲ့ - ေဲ ဲ့တွေဲပပီ်း နအာက်ပါအတိုင်း် သတ်မတ်သာွေ ်းရမာပါ။ user (u) အတွေက် >> chmod u-x readme.txt ဥပမာ၊ နောနောက readme.txt မာ group အတွေက် read write လို နပ်းထာ်းခဲ ီ က ဲ မ ဲ့ ဲ့တယ်။ အဲဒထ write ကို ဖပေ်ဖြြုတ်ချင်တယ် ဆပ ို ါေ။ို ဲ့ - ေဲ တွေ ဲ့ ဲပပီ်း နအာက်ပါအတိုင်း် သတ်မတ်သာွေ ်းရမာပါ။ group (g) အတွေက် >> chmod g-w readme.txt ဥပမာ၊ နောနောက readme.txt မာ other အတွေက် read လို ဲ့နပ်းထာ်းခဲတ ီ က ဲ မ read ဲ့ ယ်။ အဲဒထ ကို ဖပေ်ဖြြုတ်ချင်တယ်၊ ဘာ permission မ မနပ်းနတာဘ ို ါေ။ို ဲ့ ဲ့ ်းူ ။ access လိုပ်ခွေင်ဲ့ မနပ်းနတာဘ ဲ့ ်းူ ဆပ - ေဲ ဲ့တွေဲပပီ်း နအာက်ပါအတိုင်း် သတ်မတ်သာွေ ်းရမာပါ။ other (o) အတွေက် >> chmod o-r readme.txt ဟိုတ်ပပီ။ readme.txt ကို ls -l readme.txt ဆိုပပီ်း ဖပေ်နခေါ် ကကညဲ့်လိုက်တအ ဲဲ့ ခါ rw--w---- လို ဲ့ နတွေျို့ရပါမယ်။



49



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



နပ်းထာ်းတဲဲ့ permission ထဲကို ထပ်နပါင််းနပ်းချင်တဲအ ဲ့ ခါ + သနကေတကို သ်းို ပါတယ်။ ဥပမာ၊ readme.txt မာ user (u) အတွေက် read write လို နပ်းထာ်းတာက ို execute (x) ဆတ ို ာနလ်း ဲ့ ထပ်နပါင််းထညဲ့်နပ်းချင်တယ် ဆပ ို ါေ။ို ဲ့ + ေဲ ဲ့တွေဲပပီ်း နအာက်ပါအတင ို ်း် သတ်မတ်သာွေ ်းရမာပါ။ user (u) အတွေက် >> chmod u+x readme.txt မတ်ေရာ အနေေဲက၊ ၁။ user (u) ၂။ group (g) ၃။ other (o) ဆတ ို ဲဲ့ အပိုင်း် ၃ ပိုင်း် လို်းကို ဲ့ တေ်ပပြုင်ေက် permission သတ်မတ်ချင်တဲအ ဲ့ ခါ a ဆတ ို ဲဲ့ symbol ကို သ်းို တယ် ဆတ ို ာပါပဲ။ ဥပမာ၊ readme.txt ဆိုတဲဲ့ file ကို၊ user (u) အတွေက် read, write and execute (rwx) ၊ group အတွေက် rwx ၊ other (o) အတွေက်လည််း rwx သတ်မတ်မယ် ဆပ ို ါေ။ို ဲ့ a ေဲ ဲ့တွေဲပပီ်း နအာက်ပါအတိုင်း် သတ်မတ်နင ို ပ ် ါတယ်။ အာ်းလို်း အတွေက် >> chmod a=rwx readme.txt ဥပမာ၊ readme.txt ဆတ ို ဲဲ့ file ကို၊ user (u) အတွေက် execute၊ group အတွေက် execute၊ other (o) အတွေက်လည််း execute ထပ်နပါင််း သတ်မတ်မယ် ဆပ ို ါေ။ို ဲ့ a ေဲ ဲ့ တွေဲပပီ်း နအာက်ပါအတင ို ်း် သတ်မတ်နင ို ပ ် ါတယ်။ chmod a+x readme.txt သမဟို ို ဲ့ တ် chmod +x readme.txt ကဲ ! ခိုနလာက်ဆို symbolic ေည််းကို သ်းို ပပီ်း permission နပ်းတာကို သနဘာနပါက်လမ်မ ဲ့ ယ် ထင်ပါတယ်။ ၂ နခါက်နလာက် ထပ်ြတ်ကကညဲ့်ြို အဆ ဖို ပြုပါရနေ။ ဲ့ #numeric_method ၂။ numeric method :: numeric ဖြင်ဲ့ permission နပ်းတယ်ဆတ ို ာကနတာဲ့ နောနောက အသ်းို ဖပြုတဲဲ့ rwx နေရာမာ numeric တေ်ြို်း နတွေ အော်းထ်းို ပပီ်း သတ်မတ်တာကို ဆလ ို ိုတာပါ။ အေဖပေ်နကာက်ရရင်၊ permission ၃ မျြု်းရပါတယ်။ အဲဒါနတွေကနတာ၊ဲ့ read (r) numeric တေ်ြို်းအာ်းဖြင်ဲ့ 4 write (w) numeric တေ်ြို်းအာ်းဖြင်ဲ့ 2 execute (x) numeric တေ်ြို်းအာ်းဖြင်ဲ့ 1 ေသဖြင်ဲ့ ရပါတယ်။ အဲဒ ီ 4 (r) … 2 (w) … 1 (x) ဆတ ို ဲဲ့ numeric တေ်ြို်းနတွေကို နပါင််းေပ်ပပီ်း permisson သတ်မတ်တာကို numeric method လို နခေါ် ဲ့ တာပါ။



50



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ဥပမာ A၊ readme.txt မာ user အတွေက် full control သတ်မတ်ချက် ကို symbolic method ေဲ ဲ့ နပ်းမယ်ဆို rwx လို သတ် မတ်နပ်းရမာပါ။ အဲဒအ ီ ော်း numeric method ကို သ်းို မယ်ဆ၊ို 4 (r) + 2 ဲ့ (w) + 1 (x) =7 ရတာနကကာင်ဲ့ rwx အော်း 7 လို နရ်းရပါတယ် ။ ဲ့ ဥပမာ B၊ readme.txt မာ group အတွေက် read write သတ်မတ်ချက် ကို symbolic method ေဲ ဲ့ နပ်းမယ်ဆို rw လို ဲ့ သတ်မတ်နပ်းရမာပါ။ အဲဒအ ီ ော်း numeric method ကို သို်းမယ်ဆ၊ို 4 (r) + 2 (w) =6 ရတာနကကာင်ဲ့ rw အော်း 6 လို နရ်းရပါတယ် ။ ဲ့ ဥပမာ C၊ readme.txt မာ other အတွေက် read only သတ်မတ်ချက် ကို symbolic method ေဲ ဲ့ နပ်းမယ်ဆို r လို ဲ့ သတ်မတ်နပ်းရမာပါ။ အဲဒအ ီ ော်း numeric method ကို သ်းို မယ်ဆ၊ို 4 (r) = 4 ရတာနကကာင်ဲ့ r အော်း 4 လို နရ်းရပါတယ် ။ ဲ့ ဥပမာ ABC သ်းို ခိုနပါင််းပပီ်း readme.txt ကို numeric method ေဲ ဲ့ permission သတ်မတ်နပ်း ရမယဲ့် command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ user, group, other သ်းို ခိုလို်း အတွေက် >> chmod 764 readme.txt ဆက်နလဲ့လာ ကကညဲ့်ရနအာင်။ numeric method အရ၊ 4 (r) … 2 (w) … 1 (x) ေတဲ၊ဲ့ တေ်ြို်းနတွေကို နပါင််းေပ်လိုက်တဲဲ့ အခါ နအာက်ပါအတင ို ်း် permission (၈) မျြု်း ရရပါတယ်။ 7 : full control, read, write, execute >> rwx = 4+2+1 = 7 6 : read and write >> rw = 4+2 = 6 5 : read and execute >> rx = 4+1 = 5 4 : read only >> r = 4 = 4 3 : write and execute >> wx = 2+1 = 3 2 : write only >> w = 2 = 2 1 : execute only >> x = 1 = 1 0 : none >> - = - = 0 ##### symbolic VS numeric ##### ဥပမာ၊ numeric method ကို အသ်းို ဖပြုပပီ်း၊ readme.txt ကို user အတွေက် read and write (rw), group အတွေက် read and execute (rx), other အတွေက် read only (r) နပ်းမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ chmod 654 readme.txt



51



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ဥပမာ၊ symbolic method ကို အသ်းို ဖပြုပပီ်း၊ readme.txt ကို user အတွေက် read and write (rw), group အတွေက် read and execute (rx), other အတွေက် read only (r) နပ်းမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ user (u) အတွေက်



>> chmod u=rw readme.txt



group (g) အတွေက်



>> chmod g=rx readme.txt



other (o) အတွေက်



>> chmod o=r readme.txt



permission သတ်မတ်နပ်းပပီ်းရင် ls -l readme.txt လို ဲ့ ရို က် enter နခါက်ပပီ်း ေေ်နဆ်းကကညဲ့် လိုက်ပါဦ်း။ ဒီနေရာမာ၊ method နေ်ခိုရဲ ကွေ ဲ့ ာဖခာ်းချက်အနေေဲက၊ ဲ့ symbolic method သ်းို ရင် user, group, other ေတာနတွေကို တေ်နကကာင််းချင််း ခွေဲနပ်းရတာဖြေ်ပပီ်း၊ numeric method သ်းို ရင်နတာဲ့ တေ်နကကာင််းတည််းေဲ ဲ့ကေစ ပပီ်းနဖမာက်နင ို တ ် ာပါပဲ။ ##### permission for directory ##### file နတွေေ ဲ ဲ့ အလာ်းတူပါပဲ၊ directory နတွေကိုလည််း symbolice method ေဲ ဲ့ numeric method သ်းို ပပီ်း permission သတ်မတ်နပ်းနင ို ပ ် ါတယ်။ permission နပ်းပပီ်းရင် directory နတွေကို ဖပေ်ေေ်ရမယဲ့် command ကနတာဲ့ ls -ld dirname ပါ။ နောက်တေ်ချက်က၊ directory တေ်ခိုကို permission နပ်းတဲအ ဲ့ ခါ သူနအာက် မာ ရတဲဲ့ file နတွေ sub ဲ့ directory နတွေကိုပါ သက်နရာက်သာွေ ်းနေချင်ရင် chmod ကို -R ဆတ ို ဲဲ့ option ေဲ တွေ ို ပ ် ါတယ်။ ဲ့ ဲသ်းို နင chmod -R 750 directoryname ေသဖြငန ်ဲ့ ပါ။ဲ့ file နတွေ directory နတွေကို permission သတ်မတ်နပ်းပိုနပ်းေည််းနတွေကနတာဲ့ ဒီနလာက်ပါပဲ။ အေည််းငယ် ရှု ြုပ်နထွေ်းသလို ရတာနကကာင်ဲ့ တေ်ကကမ်တည််းေဲ ဲ့ မရင််းလင််းရင်၊ အေအဆ်းို ၃ ကကမ်နလာက် ဖပေ်ြတ်ပါ။ ေမ််းသပ်ကကညဲ့်ပါ လို အဆ ိုဖပြုပါရနေ။ ဲ့ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (25-5-2018)



52



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



Red Hat Linux Exam နတွေနဖြတဲအ ဲ့ ခါ အရင်ဆ်းို ေနဖြရတာ၊ RHCSA ( Red Hat Certified System Administrator ) ဆတ ို ဲဲ့ Exam ပါ . . နဖြဆြ ို ိုအတွေ က် OS level administration ပိုင်း် နတာ်နတာ်မျာ်းမျာ်းကို ော်းလည်ထာ်းပပီ်း ကျွမ််း ဲ့ ကျင်ြိုလ ဲ့ ိုပါတယ် . . File System . . File path နတွေကေလို File Editng အနကကာင််းနတွေ User and Group အနကကာင််း ဲ့ နတွေ Permission အနကကာင််းနတွေကို ကျွမ််းကျင်ပိုငန ် င ို ရ ် ပါတယ် . . ( Permission ဆတ ို ဲန ဲ့ ေရာမာလည််း Read Write Execute နလာက်နပ်းတတ်ရို , chmod 777 နလ်း နပ်းတတ်ရို ေ ဲ ဲ့မရပါဘူ်း။ ) Access Control Lists (ACLs) အနကကာင််းနတွေပါ ကျွမ််းကျင်ော်းလည်ထာ်းရပါတယ် . . Service Daemon အနကကာင််းနတွေလည််းသထာ်းြလ ို ဲ့ ိုပါတယ်။ Service တခို start stop လိုပ်ြိုနတွေ ဲ့ services နတွေကို control လိုပ်နင ို ြ ် ိုနတွေ ဲ့ လိုပါတယ်။ နောက်ပိုင်း် Logs အနကကာင််းနတွေ System Process အနကကာင််းနတွေ software Packages manage အနကကာင််းနတွေပါ ထဲထေ ဲ င်ေင်သြိုလ ဲ့ ိုပါတယ် . . ( yum install နလ်း run တတ်ရို ေ ဲ ဲ့ မရပါဘူ်း . . local repo နဆာက်တတ်ြိုပါ ဲ့ လိုအပ်ပါတယ်။ ) ဒါနတာင် အနဖခခအပိုင်း် ပဲရပါနသ်းတယ် . . နောက်ထပ် Future Schedule Tasks run တာနတွေ SELinux အနကကာင််းနတွေ LDAP server အနကကာင််းနတွေ သြိုလ ဲ့ ိုပါတယ် ။ Partitions ဆရ ို င်လည််း ထဲထေ ဲ င်ေင်သြိုလ ဲ့ ိုပါတယ်။ Command Line ကနေ partitions ပိုင်း် တာနတွေ LVM ပင ို ်း် တာနတွေ Swap partition ပင ို ်း် တာနတွေ File System Mounting အပိုင်း် နတွေပါ သြိုလ ဲ့ ိုပါတယ်။ Mounting အပိုင်း် မာဆရ ို င်လည််း mount command တခိုထဲ သ်းို တတ်ရို ေ ဲ ဲ့မရနသ်းပါဘူ်း . . Temporary mount , Permanent mount, auto mount ပိုင်း် နတွေကအေ ထဲထေ ဲ င်ေင်သြိုက ဲ့ ို လိုတာပါ . . Network File System ( NFS ) အနကကာင််းနတွေ Server Message Block (SMB) အနကကာင််းနတွေ ကိုပါ ထဲထေ ဲ င်ေင် ကျွမ််းကျင်နေြိုလ ို ည််း အနတာ် ဲ့ ိုပါတယ် ။ Boot Troubleshooting ပိုင်း် ဆလ ကျွမ််းကျင်ြိုလ ဲ့ ခါ မနဖြရင််းနင ို လ ် ို ဲ့ကျသွော်း ဲ့ ိုပါတယ်။ တခါတနလ Exam မာ Boot error တတ်တဲအ တဲဲ့ လူနတွေလည််းမေည််းပါဘူ်း။ Boot Troubleshooting က အဖပင် Real World မာဆလ ို ည််း အနတာ်ကိုလိုအပ်တဲဲ့ ကဏ္ဍတခိုပါ။ ( ဒါနတာင် ောရည်မာဆတ ို ာနကကာင်ဲ့ တချြုျို့ဟာနတွေ ထညဲ့်မနရ်း ထာ်းပါဘူ်း . .



53



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



အဓက ဆလ ို ိုချင်တဲဲ့ ရည်ရွေယ်ချက်က RHCSA exam နဖြြိုဆ ို င် OS level Administration ပိုင်း် ကို ဲ့ ရ နနေပ်ေပ် ကျွမ််းကျင်ြို ော်းလည် ြို practice ရြိုနတွေ အမျာ်းကကီ်းလိုပါတယ်။ ဲ့ ဲ့ ဲ့ ဒါမလည််း certified ဖြေ်သာွေ ်းတာေဲအညီ skill ပါရသွော်းမာပါ ။ . . ) ဲ့ RHCSA exam နဖြနင ို ြ ် ိုဆ ို င် Web server configure ချတတ်ြို DHCP DNS Mail . . etc . .server ဲ့ ရ ဲ့ ပိုင်း် install , configure ချတတ်ြိုဆ ို ာထက် OS level administration ပိုင်း် ကျွမ််းကျင်မ ဲ့ တ နဖြလရတာပါ ို ဲ့ .. ( ဒါနတာင် တချြုျို့ နကျာင််းသာ်းနတွေက Linux နပေါ်မာ Web,DHCP,DNS,Mail server နတွေသာ install configure ချတတ်တာပဲရတာပါ . . ဘယ် command ကဘာကိုဆလ ို ိုတယ် file path နတွေက ဘယ်လိုညွှေ်း် ရတယ် . . configuration file က ဘယ်ော်းမာဆတ ို ာနတွေနတာင် မသပါဘူ်း . . သင်တေ််းတချြုျို့ ရဲနကာင် ်းမှုနကကာင်ဲ့ Linux administration အနဖခခမရပဲ ဒီ cmd ရို က်, ဒါ run, ဲ့ ပပီ်းရင် server up ပီ်းဆိုပပီ်း သင်လိုက်နတာဲ့ တိုငပ ် တ်ကိုေန ် ရာ . . ) တချြုျို့နေရာနတွေမာ နကကဖငာထာ်းနတွေကကညဲ့်ရတာ အဆင်မနဖပလို နဖပာဖပတာပါ .. ဲ့ Web



Server,



DNS,



DHCP



နတွေသင်ပပီ်း



နအာက်မာနရ်းထာ်းနတာဲ့ RHCSA



နဖြဆလ ို ို ဲ့



ရပါတယ်ဆပို ပီ်း နရ်းထာ်းတာနတွေ နတွေျို့ရလပါ ို ဲ့ . . ( နဖြဆြ ို ို အနထာက် အကူဖပြုတယ်လို နရ်းရင် နတာင် အဆင်နဖပပါနသ်းတယ် ) ဲ့ ဲ့ Red Hat exam အနကကာင််းမသရင်လည််း Google မာရာပပီ်း ြတ်နေချင်ပါတယ်. . . မသတဲန ဲ့ ကျာင််းသာ်းနတွေဆရ ို င် ော်းလည်မှုလွေဲပပီ်း အမတ်မာ်းမာဆလ ို ပါ ို ဲ့ . . ကျေ်တဲဲ့ ဘာေတ်မနတာဲ့ မရပါဘူ်း . . ။ ( Certificate name နတာင် မေ်နအာင် မနပါင််းထာ်းပဲ နကကဖငာထာ်းတာနတွေလည််း အမျာ်းကကီ်းပါ . . xD ) ထာ်းပါ . . နောက်တခိုက Linux ကိုနလဲ့လာလိုတဲဲ့ သူနတွေဆရ ို င်လည််း Linux ရဲ ဲ့ system administration skill အရင်နလဲ့လာြို suggest လိုပ်ချင်တာပါ . . ဲ့ linux ကို install နတာင် နဖြာငန ်ဲ့ အာင်မလိုပ်နင ို န ် သ်းပဲ . . Linux command နတွေထက ဲ ဘယ် cmd ကဘာလဲ ဘာအဓပပါယ်လဲ . . Linux File System ကဘယ်လိုရတာလဲ . . ဆတ ို ာနတွေနတာင် မသပဲ Linux နပေါ်မာ Server install configure သွော်းလိုပ်ရင် နသချာနဖပာရဲပါတယ် . . ဘာမ ော်းမလည်ပဲ ေတ်ပျက် လက်ပျက်ဖြေ်သာွေ ်းမာပါ . . နဖပာချင်တာကနတာဲ့ ဒါပါပဲ . .တချြုျို့ လွေဲနေတာနလ်းနတွေရယ် Linux ကိုနလဲ့လာချင်နပမယဲ့် လမ််းမာ်းနေတဲသ ဲ့ န ူ လ်းနတွေရယ် နတွေျို့နတွေျို့နေရလို ဲ့ တတ်သနလာက် မတ်သနလာက် နထာက်ဖပတဲအ ဲ့ နေေဲ နရ်းလ က ို ်တာပါ . . မနကျေပ်လို နဆွေ ်းနနွေ်းချင်လည််း ရပါတယ် ဲ့ ဲ့ ac နလ်းကိုသာ report မထိုပါေဲ ဲ့. . . xD credit - #YeLinAung



54



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### Linux Shell Scripting ##### တချြုျို့က linux ရဲ ဲ့ shell scripting အနကကာင််း တင်နပ်းြို ဲ့ နတာင််းဆကို ကတယ်။ အာန ဲ့ တာဲ့ tuto တင်တာ ခဏ ော်းပပီ်း shell scripting အနကကာင််း အလာပသလာပ နဖပာကကညဲ့်ရနအာင်နော်။ shell scripting ဆတ ို ာ ဘာလဲဆန ို တာက က် ဲ့ ာ၊ တခါတနလမာ မမ လိုချင်တဲဲ့ result တေ်ခို ရြို အတွေ ဲ့ command တေ်နကကာင််းတည််းေဲ ဲ့အဆင်မနဖပဘူ်း။ အဲဒ ဲ့ အ ီ ခါ မမ သ်းို ေွေဲမယဲ့် command နတွေကို file တေ်ခိုတည််းမာ ရို က်ထညဲ့်ပပီ်း၊ အဲဒ ဲ့ ီ file ကို terminal ကနေတဆင်ဲ့ shell နပေါ်မာ run ခိုင်း် ရပါတယ်။ အဲဒ ဲ့ လ ီ ို run နင ို ြ ် ို ဲ့ command နတွေကို အေီေဉတကျ နရ်းသွေင်း် တာကို shell scripting လို ဲ့ နခေါ်ပါတယ်။ script နရ်းရာမာ work done ဖြေ်ြို ဲ့ အတွေက် programming concept နတွေကိုလည််း ဟေ်ချက်ညီညီ ထညဲ့်သင ွေ ်း် အသ်းို ဖပြုရပါတယ်။ ဥပမာ -> #!/usr/bin/bash echo "Enter your user name: $1 " if [ "$1" = "mg mg" ]; then printf "hello $1" else printf "The user name you entered is incorrect" ေသည်ဖြငန ်ဲ့ ပါနော် ဲ့ ။ ပပီ်းရင် file name နောက်မာ .sh ေဲ ဲ့အဆ်းို သတ်ပပီ်း save ရပါတယ်။ myfirstshell.sh ဆပ ို ါေ။ို ဲ့ run ချင်ရင်နတာဲ့ ./myfirstshell.sh ဆိုပပီ်း run ရပါတယ်။ ./myfirstshell.sh code နတွေ ဖြေ်နပမယဲ့် သူက ို တာ၊ဲ့ ဲ့ ို program လို ဲ့ မနခေါ် ပဲ ဘာလို ဲ့ shell script လို ဲ့ နခေါ်တာလဲဆန သူက ဘာလိုပ်ရင် ဘာဖြေ်မယ်ဆတ ို ဲဲ့ အသင်ဲ့ ရပပီ်းသာ်း command နတွေကို ယူသ်းို တာရယ်၊ instruction code အတိုနလ်းနတွေ ဖြေ်တာရယ်၊ shell ကို အာ်းဖပြုရတာရယ်နကကာင်ဲ့ shell script လို ဲ့ နခေါ်ရတာပါ။ shell script နရ်းနင ို ြ ် ို အတွေ က် ဘာနတွေ သထာ်းရမလဲ ဆန ို တာဲ့ --> ဲ့ ၁။ linux system administration ကို ဦ်းေွော ကျွမ််းကျင်ရပါမယ်။ ၂။ programming concept ရရပါမယ်။ variable အနကကာင််း, statement နတွေ အနကကာင််း, array နတွေအနကကာင််း ေသည်ဖြငန ်ဲ့ ပါ။ဲ့ ဘယ်လို နလဲ့လာမလဲ?



55



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၁။ linux system administration ကို နလဲ့လာချင်ရင်နတာဲ့ Linux Ninja - Myanmar က တင်နပ်းနေတဲဲ့ post နတွေကတဆင်ဲ့ google ရဲ ဲ့ အကူအညီနလ်းေဲ ဲ့ တွေြ ဲ က် နလဲ့လာနင ို ပ ် ါတယ်။ ဒါမမဟိုတ် သင်တေ််းနကျာင််းနတွေ တက်နပါ။ဲ့ ၂။ programming concept မရခဲဲ့ရင် javascript လို language တေ်ခိုကို နလဲ့လာမယ်ဆို concept နကာင််းနတွေ ရရမာပါ။ ဒါမမဟိုတ် linux shell scripting ောအိုပ်နတွေကနေလည််း နလဲ့လာ နင ို ပ ် ါတယ်။ ဟိုတ်ပပီ shell script နတွေ နရ်းတတ်ြို အနရ်းကကီ ်းလာ်း? ဲ့ ၁။ ဆန ို တာက ို င်နပါ။ဲ့ ဲ့ ာ အနရ်းမကကီ်းပါဘူ်း။ linux ကို normal user အဖြေ် အသ်းို ဖပြုမယ်ဆရ ၂။ professional အဖြေ် အသ်းို ဖပြုမယ်ဆရ ို င်နတာဲ့ အနရ်းကကီ်းပါတယ်။ shell script ကို ဘာအတွေက် သ်းို လဲ? ၁။ မျာ်းဖပာ်းလတဲဲ့ config နတွေကို server နတွေမာ ထညဲ့်သင ွေ ်း် ရမယဲ့်အခါ အချေ်ကေ ို ် သက်သာနေြို ဲ့ အတွေက်။ ၂။ auto backup အတွေက။် ၃။ plugin နတွေ နရ်းြို အတွေ က်။ ဲ့ ေသည်ဖြငန ်ဲ့ ပါ ဲ့ shell script ကို အသ်းို ဖပြုပါတယ်။ ကဲ ! ခိုနလာက်ဆို linux ရဲ shell scripting အနကကာင််း concept တချြုျို့ ရသွော်းမယ် ထင်ပါတယ်။ ဲ့ ပိုမို သချင်ရင်နတာဲ့ google နပါ။ဲ့ အလပသလာပ နဖပာတာနလ်း ဒီတင်ော်းပါရနေ။ အာ်းလို်း အဆင်နဖပပါနေ။ PS :: ောြတ်သတ ူ ရဲ ို ဲ့ ဲ့ knowledge နလ်းနတွေ၊ အဖမင်နလ်းနတွေ၊ အယူအဆနလ်းနတွေလည််း comment မာ ချေ်ရေ်နပ်းခဲဲ့ကကပါဦ်း။ အပေ််းမကကီ်းရင်နပါ။ဲ့ Yin Thu (26-5-2018)



56



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### special permission ##### file ေဲ ဲ့folder နတွေကို permission နပ်းတဲအ ဲ့ နကကာင််း ပပီ်းသွော်းနတာ၊ဲ့ ခိုတေ်ခါ special permission နတွေ အနကကာင််း ဆက်လိုက်ရနအာင်။ ခက်ခက်ခဲခဲနတာဲ့ မဟိုတပ ် ါဘူ်း။ chmod ဆတ ို ဲဲ့ command ေဲ ဲ့တွေဲလျက် --> ၁။ user (u) အတွေက် special permission (s) : u+s ၂။ group (g) အတွေက် special permission (s) : g+s ၃။ other (o) အတွေက် sticky (t) : o+t ဆပို ပီ်း ၃ မျြု်း ရပါတယ်။ ၁။ u+s >> အဲဒ ီ file ကို ပိုငဆ ် င ို တ ် ဲဲ့ user အဖြေ် run ပါတယ်။ ဥပမာ၊ tom ဆတ ို ဲဲ့ user က readme.txt ဆတ ို ဲဲ့ file ကို နဆာက်လိုက်တယ်။ ပပီ်းရင် chmod u+s readme.txt လို user ေဲ ဲ့ဆင ို တ ် ဲဲ့ special permission နပ်းလိုက်တယ် ဆပ ို ါေ။ို ဲ့ ဲ့ chmod u+s readme.txt jerry ဆတ ို ဲဲ့ user က အဲဒ ီ readme.txt ကို လာ run မယ် ဆပ ို ါေ။ို ဲ့ အဲဒ ီ file ဟာ tom ဆတ ို ဲဲ့ user အနေေဲပဲဲ့ run ပါတယ်။ ဒီသနဘာပါ။ ၂။ g+s >> group က ပိုငဆ ် င ို တ ် ဲဲ့ file အဖြေ် run ပါတယ်။ ဥပမာ၊ tom ဆတ ို ဲဲ့ user က dir1 ဆတ ို ဲဲ့ directory ကို နဆာက်လိုက်တယ်။ အဲဒ ီ directory ကို google ဆတ ို ဲဲ့ group က ပိုငတ ် ယ်နပါ။ဲ့ ပပီ်းရင် tom က chmod g+s dir1 လို ဲ့ group ေဲ ဲ့ ဆင ို တ ် ဲဲ့ special permission နပ်းလိုက်တယ် ဆပ ို ါေ။ို ဲ့ chmod g+s dir1 jerry ဆတ ို ဲဲ့ user က အဲဒ ီ dir1 ထဲမာ file တေ်ခို လာနဆာက်မယ် ဆပ ို ါေ။ို ဲ့ အဲဒ ီ file ဟာ google ဆတ ို ဲဲ့ group က ပိုငတ ် ဲဲ့ file အနေေဲပဲဲ့ run ပါတယ်။ ဒီသနဘာပါ။ ၃။ o+t >> နဆာက်လိုက်တဲဲ့ file တေ်ခိုကို chmod o+t လို ဲ့ special permission သတ်မတ် လိုက်တယ်ဆရ ို င်၊ root ေဲ ဲ့ owner ကလွေဲပပီ်း တေ်ဖခာ်း user နတွေ အနေေဲ ဲ့ full control (rwx) ရထာ်းရင်နတာင် အဲဒ ီ file ကို ြျက်လို မရန င ို ပ ် ါဘူ်း။ ဒီသနဘာပါ။ chmod o+t readme.txt ဲ့ တေ်ခို သထာ်းရမာက နပ်းလိုက်တဲဲ့ special permission s/g/t တေ်ခိုခိုဟာ၊ သာမေ် permission (rwx) က၊ x ရဲ နေရာက ို ေင်ယူတယ်ဆတ ို ာပါပဲ။ ဂိုမလ permission မာ execute (x) က ်းပပီ်းသာ်း ဲ့



57



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ဆရ ို င် small-letter အကသ်း ကဖေါ် ခ မာဖြေ်ပပီ်း၊ ဂိုမလ permission မာ execute (x) မက ်းထာ်း ဘူ်းဆရ ို င် capital-letter အကကီ်း ကဖေါ် ခ ပါလမ်မ ဲ့ ယ်။ ဥပမာ အနေေဲ ဲ့ ကကညဲ့်ချင်ရင်နတာ၊ဲ့ file သမဟို ို ဲ့ တ် folder တေ်ခိုကို special permission သတ်မတ်ပပီ်းတိုင်း် file အတွေက် ls -l folder အတွေက် ls -ld ေဲ ဲ့ နခေါ် ကကညဲ့်မယ်ဆရ ို င် နဖပာင််းလဲမှု နတွေကို နတွေျို့ ဖမင်ရပါလမ်မ ဲ့ ယ်။ special permission ေဲ သက် ဆင ို တ ် အ ဲဲ့ နကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ ဲ့ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (27-5-2018)



+ + [ Access Control List (ACL)] + + linux မာ chmod ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုပပီ်း file နတွေ directory နတွေကို r(4) w(2) x(1) ေဲ ဲ့ permission သတ်မတ်တအ ဲဲ့ နကကာင််းကနတာဲ့ နရ်းခဲဲ့ပပီ်းပါပပီ။ ခိုတခါ တင်ဆက်မာကနတာဲ့ ACL အနကကာင််းပါ။ ဟိုတ်ပပီ။ ACL ဆတ ို ာ ဘာလဲ?



58



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ACL ဆတ ို ာ ပိုပပီ်း အဆငဖ်ဲ့ မငတ ်ဲ့ ဲဲ့ permission နပ်းဖခင််းတေ်မျြု်းပါ။ ဥပမာ၊ dir1 ဆတ ို ဲဲ့ directory ရတယ် ဆပ ို ါေ။ို ဲ့ gogle ဆတ ို ဲဲ့ group ရပပီ်း tom ေဲ ဲ့ jerry ဟာ google group ထဲမာ ပါတဲဲ့ user နတွေ ဖြေ်တယ် ဆပ ို ါေ။ို ဲ့ အဲဒ ီ google ဆတ ို ဲဲ့ group ဟာ dir1 ကို rwx ေဲ ဲ့access လိုပ်ခွေငရ ်ဲ့ ထာ်းတယ် ဆပ ို ါေ။ို ဲ့ ဒါဆို google ဆတ ို ဲဲ့ group ထဲမာ ပါတဲဲ့ user အာ်းလို်း (tom ေဲ ဲ့ jerry) ဟာ dir1 ကို rwx ေဲ ဲ့access လိုပ်ခွေငရ ်ဲ့ ပပီနပါ။ဲ့ အဲဒ ဲ့ ီ အနဖခအနေမာ၊ tom ကိုပဲ access လိုပ်ခွေငန ်ဲ့ ပ်းမယ်။ jerry ကို access လိုပ်ခွေင်ဲ့ ပတ်ထာ်းချင်တယ် ဆပ ို ါေ။ို ဲ့ ဒီအခါမာ chmod ဆတ ို ဲဲ့ command ေဲ ဲ့ permission သတ်မတ်ြို ဲ့ မလိုနလာက်နတာပ ဲ့ ါဘူ်း။ ဒီနေရာမာ ACL ဟာ အနရ်းပါလာပါတယ်။ #################################### ကဲ ! ACL ကို နလဲ့လာကကညဲ့်ရနအာင်။ ေမ််းသပ်ြို အတွေ က် --> ဲ့ အရင်ဆ်းို tom ေဲ ဲ့ jerry ဆတ ို ဲဲ့ account ၂ ခို နဆာက်လိုက်ပါ။ useradd tom passwd tom useradd jerry passwd jerry google ဆတ ို ဲဲ့ group တေ်ခို နဆာက်ပါ။ tom ေဲ ဲ့jerry ကို gogle group ထဲ သွေင်း် ပါ။ groupadd google usermod -aG google tom usermod -aG google jerry ပပီ်းရင် dir1 ေဲ ဲ့dir2 ဆတ ို ဲဲ့ directory နလ်း နဆာက်လိုက်ပါ။ mkdir dir1 mkdir dir2 #################################### file သမဟို ို ဲ့ တ် directory တေ်ခိုဟာ ACL ကို အသ်းို ဖပြုထာ်းမထာ်း ဘယ်လို ကကညဲ့်မလဲ? file ကို ls -l ေဲ ဲ့ နခေါ် ကကညဲ့်လိုက်လို ဲ့permission အဆ်းို မာ + သနကေတပါရင်၊ directory ကို ls -ld ေဲ နခေါ် ကကညဲ့်လိုက်လို အဆ ်းို မာ + သနကေတပါရင်၊ ACL ကို အသ်းို ဖပြုထာ်းတယ်လို သ ို ပ ် ါတယ်။ ဲ့ ဲ့ ဲ့ နင



59



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ဥပမာ၊ dir1 ကို ACL အသ်းို ဖပြုထာ်းမထာ်း ကကညဲ့်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ ls -ld dir1 #################################### ACL ကို ြေ်တီ်းရာမာ getfacl ေဲ ဲ့setfacl ဆတ ို ဲဲ့ command ၂ ခိုကို အသ်းို ဖပြုရပါတယ်။ ၁။ getfacl ကို ACL သတ်မတ်ချက်နတွေကို ဖပေ်ကကညဲ့်ရာမာ အသ်းို ဖပြုရပါတယ်။ ဥပမာ၊ dir1 ကို သတ်မတ်ထာ်းတဲဲ့ ACL ကို ကကညဲ့်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ getfacl dir1 ၂။ setfacl ကိုနတာဲ့ ACL သတ်မတ်နပ်းရာမာ ဖပေ်ြျက်ရာမာ အသ်းို ဖပြုရပါတယ်။ ##################################### user tom ကို dir1 အတွေက် rwx နပ်းချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ setfacl -m u:tom:rwx dir1 google ဆတ ို ဲဲ့ group ကို dir1 အတွေက် rwx နပ်းချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ setfacl -m g:googler:rwx dir1 user jerry ကို dir1 ကို access လိုပ်ခွေင်ဲ့ ပတ်ထာ်းချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ setfacl -m u:jerry:--- dir1 ##################################### user tom ကို default အဖြေ် သတ်မတ်နပ်းချင်တယ် ဆပ ို ါဆ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ setfacl -m d:u:tom:rwx dir1 google ဆတ ို ဲဲ့ group ကို default အဖြေ် သတ်မတ်နပ်းချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ setfacl -m d:g:hr:rwx dir1 ##################################### ACL ထဲက permission နတွေကိုမ mask ဆတ ို ဲဲ့ option ေဲ ထပ် ပပီ်း ကေသ ် ဲ့ တ်ချင်တယ် ဆပ ို ါေ။ို ဲ့ ဘယ် ဲ့ user နတွေကို ဘာ permission နပ်းထာ်းပါနေ mask (m) ကို အသ်းို ဖပြုပီ်း r လို ဲ့ ထပ်မ ကေသ ် ဲ့ တ်လိုက်မယ်ဆရ ို င်



အဲဒ ီ



file/directory



ကို



readonly



ပဲ



လိုပ်ခွေငရ ်ဲ့ နတာမ ဲ့ ာပါ။



အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ setfacl -m m::r dir1 ##################################### ACL သတ်မတ်ချက်နတွေထက ဲ tom ေဲဆ ို တ ် ာကို ြျက်ထတ ို ်မယ် ဆပ ို ါေ။ို ဲ့ -x ဆတ ို ဲဲ့ option ေဲ တွေ ဲ့ င ဲ့ ဲ ပပီ်း အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ setfacl -x u:tom dir1 ACL သတ်မတ်ချက်နတွေထက ဲ google ဆတ ို ဲဲ့ group ကို ြျက်ထတ ို ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ setfacl -x g:hr dir1 #####################################



60



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ACL သတ်မတ်ချက်နတွေ အာ်းလို်းကို ြျက်ထတ ို ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ setfacl -b dir1 ##################################### ACL သတ်မတ်ချက်နတွေထက ဲ default နပ်းထာ်းတဲဲ့ user ေဲ group နတွေကိုပဲ ြျက်ထတ ို ်မယ် ဆပ ို ါေ။ို ဲ့ ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ setfacl -k dir1 ##################################### ဟိုတ်ပပီ။ mkdir dir2 ဆိုပပီ်း directory ၁ ခို ထပ်နဆာက်လိုက်ပါ။ dir1 ကို ACL သတ်မတ်နပ်းထာ်းတယ်။ အဲဒ ီ သတ်မတ်ချက်နတွေအတင ို ်း် dir2 ကို ပိုေတူ သတ်မတ်နပ်းချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ getfacl dir1 | setfacl --set-file=- dir2 ##################################### ကဲ ! ACL ေဲ ဲ့ ပတ်သက်တအ ဲဲ့ နကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ ေည််းေည််း ရှု ပ်သလို ထင်ရနပမယဲ့် ေမ််းလိုပ်သာွေ ်းရင် အဆင်နဖပသွော်းပါလမ်မ ဲ့ ယ်။ ACL တေ်ခို သတ်မတ်ပပီ်းတိုင်း် getfacl ေဲ ဲ့ ဖပေ်ကကညဲ့် ဖပေ်ေေ်ြိုလည် ်း မနမပ ဲ့ ဲ့ ါေဲ။ဲ့ getfacl dir1 directory အတွေက်ဆရ ို င် 777 (rwxrwxrwx) file အတွေက်ဆရ ို င် 666 (rw-rw-rw-) default permission ကို file အတွေက် umask အသ်းို ဖပြုပပီ်း နဖပာင််းလဲမယ်ဆို 666 ထက် ပိုပပီ်း နဖပာင််းလဲလို မရတဲ ဲ့ သနဘာပါ။ ဲ့ #FORMULA_to_change_default_permission နဖပာင််းလဲရမယဲ့် FORMULA ကနတာဲ့ နအာက်ပါ အတိုင်း် ပါ။ directory ရဲ default permission = (max default value) 777 - umask တေ်ြို်း ဲ့ file ရဲ default permission = (max default value) 666 - umask တေ်ြို်း ဲ့ ဥပမာ၊ root အနေေဲ ဲ့directory တေ်ခို နဆာက်တိုင်း် အလိုလို ပါလာမယဲ့် default permission 755 (rwxr-xr-x) ကို 744 (rwxr--4--) အဖြေ် နဖပာင််းလဲ သတ်မတ်မယ် ဆပ ို ါေ။ို ဲ့ လိုချင်တဲဲ့ default permission 744 ရတဲဲ့ အထ directory အတွေက် အမျာ်းဆ်းို ခွေငဖ်ဲ့ ပြုနပ်းထာ်းတဲဲ့ permission တေ်ြို်း 777 ထဲကနေ umask တေ်ြို်းကို နှုတ်နပ်းရပါမယ်။ နအာက်ပါအတင ို ်း် နပါ။ဲ့ လိုချင်သညဲ့် default permission 744 = 777 - 033 ဒါနကကာင ်ဲ့ root အနေေဲ ဲ့ directory တေ်ခို နဆာက်တိုင်း် အလိုလို ပါလာမယဲ့် default permission ဲ့ 755 (rwxr-xr-x) ကို 744 (rwxr--r--) အဖြေ် နဖပာင််းလဲြို ဲ့ အနပေါ်ဆ်းို မာ နတွေျို့ရမယဲ့် umask တေ်ြို်းကို 033 လို နဖပာင် ်းနပ်းရို နပါ။ဲ့ ဲ့ ဥပမာ၊ root အနေေဲ ဲ့ file တေ်ခို နဆာက်တိုင်း် အလလ ို ို ပါလာမယဲ့် default permission 664 (rwrw-r) ကို 644 (rw-r--r--) အဖြေ် နဖပာင််းလဲ သတ်မတ်မယ်ဆပ ို ါေ။ို ဲ့ လိုချင်တဲဲ့ default permission 644 ရတဲဲ့ အထ file အတွေက် အမျာ်းဆို်း ခွေငဖ်ဲ့ ပြုနပ်းထာ်းတဲဲ့ permission တေ်ြို်း 666 ထဲကနေ umask တေ်ြို်းကို နှုတ်နပ်းရပါမယ်။ နအာက်ပါအတိုင်း် နပါ။ဲ့ လိုချင်သညဲ့် default permission 644 = 666 - 022



63



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ဒါနကကာင ်ဲ့ root အနေေဲ ဲ့ file တေ်ခို နဆာက်တိုင်း် အလိုလို ပါလာမယဲ့် default permission 664 ဲ့ (rw-rw-r) ကို 644 (rw-r--r--) အဖြေ် နဖပာင််းလဲြို နအာက် ဆ်းို မာ နတွေျို့ရမယဲ့် umask တေ်ြို်းကို 022 ဲ့ လို နဖပာင် ်းနပ်းရို နပါ။ဲ့ ဲ့ ရှု ပ်နထွေ်းသနယာင် ရနပမယဲ့် တကယ်က လွေယ်လယ ွေ န ် လ်းပါ။ default permission ေဲ ဲ့umask အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (31-5-2018)



64



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### compression and decompression ##### ခိုတခါ linux နပေါ်မာ file နတွေ directory နတွေကို ချြုျို့ရာ၊ ဖပေ်ဖြည်ရာမာ အသ်းို ဖပြုရတဲဲ့ command နတွေအနကကာင််းကို နလဲ့လာကကညဲ့်ရနအာင်။ ဒီလို ချြုျို့ရာ၊ ဖြည်ရာမာ tar, zip, gzip ေတဲဲ့ command နတွေကို အသ်းို ဖပြုကကပါတယ်။ #tar_command အရင်ဆ်းို tar ဆတ ို ဲဲ့ command နလ်းေဲ ဲ့ ေြွေငလ ်ဲ့ ိုက်ကကတာနပါ။ဲ့ tar ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုပပီ်း ချြုျို့ နင ို ် ဖြည်နင ို တ ် ာနတွေက အနတာ်နလ်း ေိုပါတယ်။ linux နပေါ်မာ file နတွေ directory နတွေကို size နသ်းသွော်းနအာင် ချြုျို့ရာဖြည်ရာမာ tar ဟာ အသ်းို မျာ်းတဲဲ့ command တေ်ခိုပါ။ #options_for_tar ဒီလို ချြုျို့ရာ၊ ဖပေ်ဖြည်ရာမာ tar ေဲအတူ options နတွေကို တွေဲသ်းို ရပါတယ်။ ဲ့ tar ရဲ options ေဲ တွေ ဲ့ ဲ့ ဲဘက် အသ်းို ဖပြုပိုနတွေကို နလဲ့လာကကညဲ့်ရနအာင်။ -c : zip file နတွေကို create လိုပ်တဲအ ဲ့ ခါ -c (c အနသ်း) ကို ထညဲ့်နပ်းရပါတယ်။ -x : zip file နတွေကို ဖြည်တဲအ ဲ့ ခါ -x ကို ထညဲ့်နပ်းရပါတယ်။ -f : သူကနတာဲ့ မပါမဖြေ်ပါ။ file နတွေကို ချြုျို့တာပဲဖြေ်နေ ဖပေ်ဖြည်တာပဲဖြေ်နေ content နတွေကို ကကညဲ့်တာပဲဖြေ်နေ -f ကို အပမဲ ထညဲ့်နပ်းရပါတယ်။ -p : permission ေဲဆ ို တ ် ဲဲ့ option တေ်ခိုပါ။ ချြုျို့ရာမာဖြေ်နေ ဖပေ်ဖြည်ရာမာဖြေ်နေ ေဂိုမူလ ဲ့ င permission တေ်ြို်းနတွေကို ထေ််းသမ််းနပ်းပါတယ်။ -v : ချြုျို့တဲဲ့ ဖြည်တဲဲ့ လိုပ်ငေ််းေဉ အနဖခအနေကို visual mode ေဲ ဲ့ဖပနပ်းတဲဲ့ option တေ်ခိုပါ။ -t : ချြုျို့ထာ်းတဲဲ့ အထဲက ပါေင်တဲဲ့ file နတွေကို ကကညဲ့်ြိုသ ဲ့ ်းို ပါတယ်။ -C : compress လိုပ်ထာ်းတဲဲ့ file ကို တေ်ဖခာ်း directory နေရာတေ်ခိုမာ ဖြည်ချနပ်းချင်တဲအ ဲ့ ခါ location ကို ညွှေ်း် ြို သ ဲ့ ်းို ပါတယ်။ အထက်မာ နြေါ် ဖပထာ်းတာနတွေကနတာဲ့ compress/decompress လိုပ်ငေ််းေဉေဲ ဲ့ သက်ဆင ို တ ် ဲဲ့ option နတွေပါ။ #format compress လိုပ်တဲဲ့ format ေဲ ဆ ို တ ် ဲဲ့ option က ၄ မျြု်း ရပါတယ်။ နအာက်ပါအတိုင်း် နပါ။ဲ့ ဲ့ င ၁။ -z : gz လို အတ ိုနကာက် နခေါ် ပပီ်း gzip format ေဲ ဲ့ချြုျို့ရာ ဖြည်ရာမာ အသ်းို ဖပြုပါတယ်။ ဲ့



65



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ဥပမာ၊ hacker ဆတ ို ဲဲ့ directory ကို gz ေဲ ဲ့ ချြုျို့မယ် ဆပ ို ါေ။ို ဲ့ command syntax က နအာက်ပါအတင ို ်း် ပါ။ tar -zcf hacker.gz hacker (သ)ို ဲ့ tar -zcf hacker.tar.gz hacker ဖပေ်ဖြည်မယ်ဆ၊ို tar -zxf hacker.gz (သ)ို ဲ့ tar -zxf hacker.tar.gz နပါ။ဲ့ tgz လို ဲ့ နတွေျို့ရင်လည််း tar.gz ဆတ ို ဲဲ့ format ေဲ ချ ဲ့ ြုျို့ထာ်းတာလို သ ဲ့ ရပါမယ်။ ၂။ -j : bz2 လို အတ ိုနကာက်နခေါ် ပပီ်း bzip2 format ေဲ ချ ဲ့ ဲ့ ြုျို့ရာ ဖြည်ရာမာ အသ်းို ဖပြုပါတယ်။ ဥပမာ၊ hacker ဆတ ို ဲဲ့ directory ကို bz2 ေဲ ဲ့ ချြုျို့မယ် ဆပ ို ါေ။ို ဲ့ command syntax က နအာက်ပါ အတိုင်း် ပါ။ tar -jcf hacker.bz2 hacker (သ)ို ဲ့ tar -jcf hacker.tar.bz2 hacker ဖပေ်ဖြည်မယ်ဆ၊ို tar -jxf hacker.bz2 (သ)ို ဲ့ tar -jxf hacker.tar.bz2 နပါ။ဲ့ ၃။ -J : xz လို အတ ိုနကာက်နခေါ် ပပီ်း xzip format ေဲ ဲ့ချြုျို့ရာ ဖြည်ရာမာ အသ်းို ဖပြုပါတယ်။ ဲ့ ဥပမာ၊ hacker ဆတ ို ဲဲ့ directory ကို xz ေဲ ဲ့ ချြုျို့မယ် ဆပ ို ါေ။ို ဲ့ command syntax က နအာက်ပါအတင ို ်း် ပါ။ tar -Jcf hacker.xz hacker (သ)ို ဲ့ tar -Jcf hacker.tar.xz hacker ဖပေ်ဖြည်မယ်ဆ၊ို tar -Jxf hacker.xz (သ)ို ဲ့ tar -Jxf hacker.tar.xz နပါ။ဲ့ ၄။ တေ်ခို နဖပာပါရနေ။ ချြုျို့ရာမာ zip format ေဲ ဲ့ ဆိုငတ ် ဲဲ့ format နတွေ မထညဲ့်ပဲ -c ေဲ ဲ့ -f ပဲ သ်းို ပပီ်း ချြုျို့မယ် ဆပ ို ါေ။ို ဲ့ ဒီအခါ tar ဆတ ို ဲဲ့ format ကို အသ်းို ဖပြုနပ်းရပါလမ်မ ဲ့ ယ်။ နအာက်ပါအတင ို ်း် နပါ။ဲ့ tar -cf hacker.tar hacker ဒါဆို tar format ေဲ ချ ဲ့ ြုျို့သာွေ ်းပါလမ်မ ဲ့ ယ်။ ဖပေ်ဖြည်မယ်ဆို tar -xf hacker.tar နပါ။ဲ့ #viewing_contents_of_zipfile zip file ထဲမာ ပါေင်တာနတွေကို ကကညဲ့်ချင်ရင် -t ေဲ ဲ့-f ကို တွေဲသ်းို ရပါတယ်။ ဥပမာ၊ hacker.xz ထဲမာ ဘာနတွေပါလဲ သချင်တယ် ဆပ ို ါေ။ို ဲ့ command syntax က နအာက်ပါ အတိုင်း် ပါ။ tar -tf gacker.xz #extracting_into_other_directory တေ်ခို ထပ်နဖပာဖပပါရနေဦ်း။ ဥပမာ၊ current location ~/ နအာက်မာ ရတဲဲ့ hacker.xz ဆတ ို ဲဲ့ zip file ကို တေ်ဖခာ်းတေ်နေရာဖြေ်တဲဲ့ /opt/ နအာက်မာ ဖြည်ချချင်တယ် ဆပ ို ါေ။ို ဲ့ tar -Jxf hacker.xz /opt/ ဒီလို ညွှေ်း် မယ်နပါ။ဲ့ ဒါဆို error တက်ပါလမ်မ ဲ့ ယ်။



66



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ဒီနေရာမာ -C (C အကကီ်း) ဆတ ို ဲဲ့ option က အနရ်းပါလာပါပပီ။ ညွှေ်း် နပ်းရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ tar -Jxf hacker.xz -C /opt/ -C အော်း --directory လိုလည် ်း သ်းို နင ို ပ ် ါတယ်။ ဲ့ #size file နတွေ directory နတွေကို ချြုျို့လိုက်ပပီ်း မူလ size ထက် ဘယ်နလာက် ပိုကကြုျို့သာွေ ်းလဲ သချင်ရင် du -h ေဲ ဲ့ကကညဲ့်နင ို ပ ် ါတယ်။ ဥပမာ၊ hacker.xz ရဲ ဲ့size ကို သချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ du -h gacker.xz ခိုနလာက်ဆို tar ေဲ ဲ့options နတွေကို လိုအပ်သလို တွေဲြက်ပပီ်း အသ်းို ဖပြုနင ို မ ် ယ် ထင်ပါတယ်။ tar အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ #zip_cmmand zip ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုပိုနလ်း ဆက်နဖပာကကတာနပါ။ဲ့ zip : zip format ေဲ ဲ့ချြုျို့မယ်ဆရ ို င် zip -r ကို သ်းို ပါတယ်။ ဥပမာ၊ dir1 ဆတ ို ဲဲ့ directory ကို zip format ေဲ ဲ့ချြုျို့မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command က နအာက်ပါအတိုင်း် ပါ။ zip -r dir1.zip dir1 ဖပေ်ဖြည်မယ်ဆရ ို င် unzip ကို သ်းို ပါတယ်။ command က နအာက်ပါ အတိုင်း် ပါ။ unzip dir1.zip dir1 zip ကို အသ်းို ဖပြုပပီ်း ချြုျို့တာ၊ ဖြည်တာကနတာဲ့ ဒီနလာက်ပါပဲ။ တိုတိုရင််းရင််းပါပဲနော်။ #gzip_command gzip အသ်းို ဖပြုပိုနလ်းအနကကာင််း ဆက်သာွေ ်းကကတာနပါ။ဲ့ gzip : gzip format ေဲ ဲ့ ချြုျို့မယ်ဆရ ို င် gzip -v ကို သ်းို ပါတယ်။ gzip ကို အသ်းို ဖပြုပပီ်း directory နတွေကို ချြုျို့လို မရပါဘူ ်း။ သူက file နတွေပဲ သီ်းသေ ် ဲ့ချြုျို့လရပါတယ် ို ဲ့ ။ ဲ့ ဥပမာ၊ file1 ဆတ ို ဲဲ့ file ကို gzip format ေဲ ဲ့ချြုျို့မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command က နအာက်ပါအတိုင်း် ပါ။ gzip -v file1.gz file1 ဖပေ်ဖြည်မယ်ဆရ ို င် gunzip ကို သ်းို ပါတယ်။ command က နအာက်ပါအတင ို ်း် ပါ။ gunzip file1.gz



67



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



linux နပေါ်မာ tar, zip, gzip ေတဲဲ့ command နတွေ အသ်းို ဖပြုပပီ်း file နတွေ directory နတွေကို ချြုျို့တဲဲ့ ဖြည်တဲဲ့ အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (1-6-2018)



##### password management ##### password management ဆတ ို ာကနတာဲ့ password ေဲ ဲ့ သက်ဆင ို တ ် ာနတွေကို ေီမတဲဲ့ အပိုင်း် ပါ။ နလဲ့လာကကညဲ့်ရနအာင်။ သထာ်းရမာ ၁ ခိုက၊ password နတွေကို manage လိုပ်မယ်ဆရ ို င် root account ေဲမဲ့ အဆင်နဖပ ပါမယ်။ ကဲ ! linux machine ကို ြွေငပ်ဲ့ ပီ်း root account ေဲ ဲ့login ေင်လိုက်ရနအာင်။ password ေဲဆ ို တ ် ာနတွေ၊ password နပ်းခဲဲ့တဲဲ့ ရက်ေဲွေနတွေ၊ password တေ်ခို အတွေက် အဖမငဆ ်ဲ့ ်းို ဲ့ င သက်တမ််း သတ်မတ်ချက်နတွေ၊ သက်တမ််းကိုေဆ ် ်းို မယဲ့် expire date,… ေတာနတွေကို ေီမချင်တဲဲ့ အခါ၊ chage ဆတ ို ဲဲ့ command ကို option နတွေေ ဲ ဲ့တွေဲသ်းို ရပါတယ်။ password ေဲ သက် ဆင ို တ ် ဲဲ့ အချက် ၇ ချက် ရပါတယ်။ အဲဒ ီ အချက်နတွေကို ေီမ သတ်မတ်နပ်းရမာပါ။ ဲ့ အဲဒါနတွေကနတာဲ့ နအာက်ပါအတိုင်း် ပါပဲ။ ၁။ Last password change (password နပ်းခဲဲ့တဲဲ့ ရက်ေဲ)ွေ



68



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၂။ Password expires (password သက်တမ််းကိုေမ ် ယဲ့် ရက်ေဲွေ) ၃။ Password inactive (password အသက်ကင််းမဲဲ့မယဲ့် နေ)ဲ့ ၄။ Account expires (account သက်တမ််းကိုေမ ် ယဲ့် ရက်ေဲွေ) ၅။ Minimum number of days between password change (password နဖပာင််းလဲရမယဲ့် အေမ်ဆ ဲ့ ်းို ကာလ သတ်မတ် ရက်နပါင််း) ၆။ Maximum number of days between password change (password နဖပာင််းလဲရမယဲ့် အဖမငဆ ်ဲ့ ်းို ကာလ သတ်မတ် ရက်နပါင််း) ၇။ Number of days of warning before password expire (password သက်တမ််း မကိုေဆ ် ်းို မီ ကကြုတင်သတနပ်းမယဲ့် ရက်နပါင််း) ဒီနေရာမာ ရက်စွ (date) ေဲ ဲ့ရက်က ါင််း (number of days)၊ မတူတာကို သတဖပြုြို မ ဲ့ ာပါရနေ။ ကဲ ! command အသ်းို ဖပြုပိုနလ်းနတွေ ေလိုက်ရနအာင်။ password ေဲ ဲ့ သက်ဆင ို တ ် ဲဲ့ သတ်မတ်ချက်နတွေကို ကကညဲ့်ချင်တဲအ ဲ့ ခါ၊ chage -l ကို သ်းို ပါတယ်။ နောောက နဖပာထာ်းတဲဲ့ အချက် ၇ ချက်ကို ဖမင်ရပါလမ်မ ဲ့ ယ်။ ဥပမာ၊ tom လို ဲ့ အမည်ရတဲဲ့ user ရဲ password ဆိုငရ ် ာ သတ်မတ်ချက်နတွေကို ကကညဲ့်မယ်ဆပ ို ါေ။ို ဲ့ ဲ့ command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ chage -l tom ၁။ password နောက်ဆ်းို တေ်နခါက် နဖပာင််းလဲခဲဲ့တဲဲ့ ရက်ေဲွေ (Last password change) ကို ဖပြုဖပင်ြို ဲ့ chage -d ကို သ်းို ပါတယ်။ chage -d 2018-06-4 tom ၂။ password သက်တမ််းကိုေမ ် ယဲ့် ရက်ေဲွေ (Password expires) ကို ဖပြုဖပင်ြို ဲ့ chage -E ကို သ်းို ပါတယ်။ date ရဲ နောက် မာ username ထညဲ့်ြို မနမ ဲ့ ဲ့ ဲ့ပါေဲ။ဲ့ chage -E 2018-06-30 tom ၃။ နယဘိုယျအာ်းဖြင၊်ဲ့ သက်တမ််းကိုေ ် ပပီ်းနောက်၊ password အသက်ကင််းမဲဲ့မယဲ့် ရက်နပါင််း၊ (Password inactive) ဟာ expire date ထက် အပမဲ တေ်ြို်းတေ်ခိုကကီ်းနလဲ့ ရပါတယ်။ password inactive ဖြေ်မယဲ့် ရက်နပါင််းကို နဖပာင််းလဲချင်ရင် chage -I ( i အကကီ်း) ကို သ်းို တယ်။ chage -I 1 tom ၄။ Account expires ဆိုတာကိုနတာဲ့ ဒီနေရာမာ အနထွေအထူ်း သတ်မတ်နပ်းေရာ မလိုပါဘူ်း။



69



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၅။ password အသေ် နဖပာင််းလဲရမယဲ့် အေမ်ဆ ဲ့ ်းို ကာလ သတ်မတ်ချက် (Minimum number of days between password change) ကို ဖပြုဖပင်ြို ဲ့ chage -m ကို သ်းို ပါတယ်။ ရက်နပါင််း ရဲ ဲ့ နောက်မာ username ထညဲ့်နပ်းြို မနမ ဲ့ ဲ့ပါေဲ။ဲ့ chage -m 20 tom ၆။ password အသေ် နဖပာင််းကိုနဖပာင််းလဲနပ်းရမယဲ့် အဖမငဆ ်ဲ့ ်းို ကာလ သတ်မတ်ချက် (Maximum number of days between password change) ကို ဖပြုဖပင်ြို chage -M ကို သ်းို ပါတယ်။ chage ဲ့ -M ရဲ နောက် မာ username ထညဲ့်သင ွေ ်း် နပ်းြို လ ဲ့ ဲ့ ိုပါတယ်။ ဥပမာ၊ password ေဲ ဲ့ သက်ဆင ို တ ် ဲဲ့ user က tom ဆပ ို ါေို ဲ့ maximum ကာလ ရက်နပါင််း ၃၀ နပ်းမယ်ဆပ ို ါေ။ို ဲ့ chage -M 30 tom နပါ။ဲ့ chage -M 30 tom နယဘိုယျအာ်းဖြင၊်ဲ့ Maximum number of days between password change မာ တေ်ြို်း ထညဲ့်သင ွေ ်း် နပ်းလိုက်ရင် password expire ဖြေ်မယဲ့် date က အလိုလို သတ်မတ်ပပီ်းသာ်း ဖြေ်သာွေ ်းပါတယ်။ အလာ်းတူ၊ password ရဲ ဲ့ inactive ဖြေ်မယဲ့် date သည်လည််း အလိုလို သတ်မတ်ပပီ်းသာ်းဖြေ်သာွေ ်းပါတယ်။ သထာ်းသငတ ်ဲ့ ာ ၁ ခို ကနတာ၊ဲ့ Maximum number of days between password change မာ default အနေေဲ အဖမင ဆ ်ဲ့ ်းို သတ်မတ်ထာ်းတဲဲ့ တေ်ြို်းက 99999 ပါ။ အကယ်၍ maximum number ဲ့ of days ကို 99999 လို ဲ့ သတ်မတ်နပ်းလိုက်ရင်၊ password expires ေဲ ဲ့ password inactive ရက်ေဲွေနတွေ နေရာမာ never လို နဖပာင် ်းသွော်းပါလမ်မ ဲ့ ဲ့ ယ်။ expire မဖြေ်နတာတ ဲ့ ဲဲ့ သနဘာနပါ။ဲ့ chage -M 99999 tom #calculating_date ဒီနေရာမာ



maximum



ရက်နပါင််း



သတ်မတ်လိုက်တဲဲ့



အခါ၊



ခို



ဒီနေကနေ ဲ့



ဘယ်နေထ ဲ့



အကကြု်းေင်မလဲဆတ ို ဲဲ့ ရက်ေဲွေကို date ဆတ ို ဲဲ့ command သ်းို ပပီ်း တွေက်ကကညဲ့်နင ို ပ ် ါတယ်။ ဥပမာ၊ ခိုကနေ ရက်နပါင််း ၃၀ သတ်မတ်လိုက်တယ် ဆပ ို ါေ။ို ဲ့ နေရက် တွေက်ြို၊ ဲ့ ခိုကနေ နောက်လာ ဲ့ မယဲ့် ရက် ၃၀ ဟာ၊ ဘယ် date ဖြေ်မလဲ သြို date -d ကို သ်းို ရို ပါပဲ။ နအာက်ပါအတိုင်း် နပါ။ဲ့ ဲ့ date -d +30days ၇။ password နဖပာင််းလဲြို warning message ေဲ ဲ့သတနပ်းမယဲ့် ရက်နပါင််းကို သတ်မတ်ြို chage ဲ့ ဲ့ -W ကို သ်းို ပါတယ်။ ရက်နပါင််း ရဲ နောက် မာ username ထညဲ့်နပ်းြို မနမ ပ ဲ့ ဲ့ ဲ့ ါေဲ။ဲ့ ဥပမာ၊ ၅ ရက် သတ်မတ်မယ် ဆပ ို ါေ။ို ဲ့ chage -W 5 username နပါ။ဲ့ chage -W 5 tom



70



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



password management ေဲ ဲ့သက်ဆင ို တ ် ဲဲ့ အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (4-6-2018)



##### rpm (redhat package manager) ##### ဒီတေ်ခါနတာဲ့ linux နပေါ်မာ application ေဲ ဲ့ သက်ဆင ို တ ် ာနတွေကို ေီမတဲအ ဲ့ ခါ အသ်းို ဖပြုတဲဲ့ rpm command အနကကာင််း နလဲ့လာကကညဲ့်ကကတာနပါ။ဲ့ rpm ရဲ ဲ့အရည်နကာက်က redhat package manager ပါ။ rpm ဟာ red hat, centos, fedora ေတဲဲ့ linux distro နတွေမာ ပါရပါတယ်။ မမ အတွေက် လိုအပ်တဲဲ့ package နတွေကို offline install လိုပ်ရာမာ rpm ကို အမျာ်းဆ်းို အသ်းို ဖပြု ပါတယ်။ ကဲ ! ေလိုက်ရနအာင်။ ၁။ application package တေ်ခိုကို install လိုပ်ချင်တဲအ ဲ့ ခါ rpm -ivh ကို သ်းို ပါတယ်။ command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ rpm -ivh packagename.rpm အသ်းို မျာ်းတဲဲ့ command တေ်ခိုပါ။ ၂။ application တေ်ခိုကို ြယ်ရာ်းချင်တအ ဲဲ့ ခါ rpm -e ကို အသ်းို ဖပြုပါတယ်။ command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ rpm -e applicationname ၃။ application တေ်ခိုကို update လိုပ်ချင်တအ ဲဲ့ ခါ rpm -Uvh ကို သို်းပါတယ်။ command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ rpm -Uvh applicationname ၄။ application ရဲ version ကို ကကညဲ့်ချင်တဲအ ဲ့ ခါ rpm -q ကို သ်းို ပါတယ်။ command ကနတာဲ့ ဲ့ နအာက်ပါအတင ို ်း် ပါ။ rpm -q applicationname



71



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၅။ application တေ်ခိုရဲ information နတွေကို သချင်တဲအ ဲ့ ခါ rpm -qi ကို သ်းို ပါတယ်။ command ဲ့ ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ rpm -qi applicationname ၆။ application ေဲ ဲ့ သက်ဆင ို တ ် ဲဲ့ file နတွေ ရရာ လမ််းနကကာင််းနတွေကို သချင်တဲအ ဲ့ ခါ rpm -ql ကို သ်းို ပါတယ်။ command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ rpm -ql applicationname ၇။ application ေဲ ဲ့ သက်ဆင ို တ ် ဲဲ့ အဓက package ကို သချင်တဲအ ဲ့ ခါ rpm -qa ကို သ်းို ပါတယ်။ command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ rpm -qa applicationname ၈။ application ေဲ ဲ့ သက်ဆင ို တ ် ဲဲ့ package နတွေ အာ်းလို်းကို သချင်တအ ဲဲ့ ခါ သမဟို ို ဲ့ တ် အဲဒ ီ application ရမရ သချင်တဲအ ဲ့ ခါ၊ rpm -qa ကို grep ေဲ ဲ့ တွေဲသ်းို ပါတယ်။ command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ rpm -qa | grep applicationname အသ်းို မျာ်းတဲဲ့ command တေ်ခိုပါ။ ၉။ file တေ်ခိုသည် ဘယ် application ေဲ ဲ့ သက်ဆင ို သ ် လဲ၊ သချင်တအ ဲဲ့ ခါ rpm -qf ေဲ ဲ့ နခေါ် ကကညဲ့် နင ို ပ ် ါတယ်။ command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ rpm -qf filename ၁၀။ application ရဲ ဲ့ configuration file ကို သီ်းသေ ် ဲ့ ကကညဲ့်ချင်ရင် rpm -qc သ်းို ပါတယ်။ command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ rpm -qc applicationname ၁၁။ application ရဲ documentation နတွေကို ကကညဲ့်ချင်ရင် rpm -qd ကို သ်းို ပါတယ်။ command ဲ့ ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ rpm -qd applicationname ၁၂။ package တေ်ခိုေတေ် ဲ ဲ့ ခိုကကာ်း နဖပာင််းလဲမှုကို ကကညဲ့်ချင်ရင် -q --changelog ကို rpm ေဲ ဲ့ တွေဲသ်းို ရပါတယ်။ command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ rpm -q --changelog packagename.rpm ၁၃။ package install လိုပ်သာွေ ်းမယဲ့် script ကို ကကညဲ့်ချင်ရင် -q --script ကို rpm ေဲ ဲ့ တွေဲသ်းို ရ ပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ rpm -q --script packagename.rpm ၁၄။ package ကို မသွေင်း် ပဲ ပါေင်တဲဲ့ file ကို ထိုတ်ကကညဲ့်ချင်ရင် rpm2cpio ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုရပါတယ်။ ဥပမာ၊ sample.rpm ထဲက readme.txt ဆတ ို ဲဲ့ file ကို ထိုတ်ကကညဲ့်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ rpm2cpio sample.rpm | cpio -id *.txt တိုတိုရင််းရင််းပါပဲနော်။ rpm အသ်းို ဖပြုပပီ်း application နတွေကို ကိုငတ ် ွေယတ ် အ ဲဲ့ နကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (6-6-2018)



72



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### yum (yellow-dog update & modify) ##### linux မာ application package နတွေေ ဲ သက် ဆင ို တ ် ာနတွေကို ေီမတဲအ ဲ့ ခါ debian base ဆရ ို င် aptဲ့ get, red hat base ဆရ ို င် rpm, yum ေတဲဲ့ command နတွေကို သ်းို ရပါတယ်။ ဒီနေရာမာနတာဲ့ yum ေဲ သက် ဆင ို တ ် ဲဲ့ command နတွေကို တင်ဆက်သာွေ ်းမာပါ။ yum ရဲ အရ ဲ့ ဲ့ ည် နကာက်က yellowdog update and modify ပါ။ online ေဲ ချ ဲ့ တ်ဆက်ပပီ်း application နတွေကို သွေင်း် ယူရာမာ yum ကို အမျာ်းဆ်းို အသ်းို ဖပြုပါတယ်။ local မာ ရတဲဲ့ rpm package နတွေကိုလည််း yum ေဲ ဲ့ သွေင်း် ယူနင ို ် ပါတယ်။ ကဲ ! ေလိုက်ရနအာင်။ ၁။ offline ဖြေ်တဲဲ့ မမ ရဲ ေက် ထက ဲ application package ကို install လိုပ်ချင်တဲအ ဲ့ ခါ yum -y ဲ့ localinstall ကို အသ်းို ဖပြုပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ yum localinstall -y application.rpm ၂။ online နပေါ်မာ ရတဲဲ့ application ကို install လိုပ်ချင်တဲအ ဲ့ ခါ yum -y install ကို အသ်းို ဖပြု ပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ yum -y install applicationame ၃။ application တေ်ခိုကို ြယ်ရာ်းချင်တဲအ ဲ့ ခါ yum -y remove ကို သ်းို ပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ yum -y remove applicationname ၄။ application တေ်ခိုကို update လိုပ်ချင်တဲအ ဲ့ ခါ yum update ကို သ်းို ပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ yum update applicationname ၅။ system ကို update လိုပ်ချင်ရင် yum update ကို အသ်းို ဖပြုပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ yum update ၆။ update ရမရ ေေ်နဆ်းချင်ရင် yum check-update ကို သ်းို ပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ yum check-update ၇။ online database ထဲက application နတွေရဲ ဲ့ ောရင််းကို ကကညဲ့်ချင်တအ ဲဲ့ ခါ yum list ကို အသ်းို ဖပြုပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ yum list ၈။ local မာ သွေင်း် ထာ်းပပီ်းသာ်း application နတွေရဲ ောရင် ်းကို ကကညဲ့်ချင်တအ ဲဲ့ ခါ yum list installed ဲ့ ကို သ်းို ပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ yum list installed | less ၉။ application တေ်ခိုေ ဲ သက် ဆင ို တ ် ဲဲ့ package နတွေကို ကကညဲ့်ချင်တဲအ ဲ့ ခါ yum list ကို သ်းို ပါတယ်။ ဲ့ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ yum list applicationname ၁၀။ group လိုက် သွေင်း် ရတဲဲ့ application နတွေရဲ ောရင် ်းကို ကကညဲ့်ချင်တအ ဲဲ့ ခါ yum grouplist ကို ဲ့ သ်းို ပါတယ်။ command syntax က နအာက်ပါအတင ို ်း် ပါ။ yum grouplist



73



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၁၁။ group လိုက်သင ွေ ်း် ရတဲဲ့ application တေ်ခိုကို install လိုပ်ချင်တဲအ ဲ့ ခါ yum groupinstall ကို သ်းို ပါတယ်။



command



syntax



ကနတာဲ့



နအာက်ပါအတင ို ်း် ပါ။



yum



groupinstall



applicationname ၁၂။ group လိုက်သင ွေ ်း် ထာ်းတဲဲ့ application တေ်ခိုကို ြယ်ရာ်းချင်တဲအ ဲ့ ခါ yum groupremove ကို သ်းို ပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ yum groupremove applicationname ၁၃။ group လက ို ် application တေ်ခိုကို update လိုပ်ချင်တဲအ ဲ့ ခါ yum groupupdate ကို သ်းို ပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ yum groupupdate applicationname ၁၄။ repositroy ရဲ ောရင် ်းကို ကကညဲ့်ချင်တအ ဲဲ့ ခါ yum repolist ကို သ်းို ပါတယ်။ command syntax ဲ့ ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ yum repolist ၁၅။ enabe နပ်းထာ်းတဲဲ့ repo နရာ disable နပ်းထာ်းတဲဲ့ repo နရာ ကကညဲ့်ချင်တဲအ ဲ့ ခါ yum repolist all ကို သ်းို ပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ yum repolist all ၁၆။ disable နပ်းထာ်းတဲဲ့ repo ထဲက application တေ်ခိုကို install လိုပ်ချင်တဲအ ဲ့ ခါ yum -enablerepo ကို သ်းို ပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ yum --enablerepo=epel install applicationname ၁၇။ application တေ်ခက ို ို ရာနြွေလတ ို ဲအ ဲ့ ခါ yum search ကို သ်းို ပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ yum search applicationname ၁၈။ application တေ်ခိုရဲ ဲ့ information ကို ကကညဲ့်ချင်တဲအ ဲ့ ခါ yum info ကို သ်းို ပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ yum info applicationname ၁၉။ group လိုက် သွေင်း် ရတဲဲ့ application group တေ်ခိုရဲ information ကို ကကညဲ့်ချင်တဲအ ဲ့ ခါ yum ဲ့ groupinfo ကို သ်းို ပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ yum groupinfo “applicationgroupname” ၂၀။ yum ေဲ ဲ့သက်ဆင ို တ ် ဲဲ့ history ကို ကကညဲ့်ချင်တအ ဲဲ့ ခါ yum history ကို သို်းပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ yum history ၂၁။ file တေ်ခိုဟာ ဘယ် application ေဲ ဲ့ သက်ဆင ို သ ် လဲ ကကညဲ့်ချင်ရင် yum provides ကို သ်းို ပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ yum provides /usr/filename ၂၂။ history ကို ရင််းလင််းချင်တဲအ ဲ့ ခါ yum clean ကို သ်းို ပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ yum clean all ၂၂။ yum အတွေက် custom shell ကို ြွေငခ ်ဲ့ ျင်တအ ဲဲ့ ခါ yum shell ကို သ်းို ပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ yum shell



74



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ခိုနလာက်ဆို yum ကို အသ်းို ဖပြုပပီ်း application ေဲ ဲ့ သက်ဆင ို တ ် ာနတွေကို ကင ို တ ် ွေယ်နင ို ပ် ပီ ထင်ပါ တယ်။ yum ေဲ ဲ့သက်ဆင ို တ ် အ ဲဲ့ နကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (6-6-2018)



##### rpm Vs yum ##### red hat, centos, fedora linux ေတာနတွေရဲ application ေဲ ဲ့ဆင ို တ ် ဲဲ့ အပိုင်း် နတွေကို ေီမရာမာ rpm, ဲ့ yum ေတဲဲ့ command နတွေကို အသ်းို ဖပြုတဲအ ဲ့ နကကာင််း တင်ဆက်ပပီ်းသွော်းပါပပီ။ အခိုတေ်ခါ ဒီ command နေ်ခိုရဲ အာ်းသာချက် ၊ အာ်းေည််းချက်နတွေကို ယဉကကညဲ့်ကကေို။ဲ့ ဲ့ #rpm ဥပမာ A >> ေက်မာ zimbra mail server ကို rpm command အသ်းို ဖပြုပပီ်း install လိုပ်မယ် ဆပ ို ါေ။ို ဲ့ rpm -ivh zimbra....rpm နပါ။ဲ့ အဲဒအ ီ ခါ perl package လိုနေပါတယ်ဆပို ပီ်း ဆက်သင ွေ ်း် လို ဲ့ မရနတာပ ို ါေ။ို ဲ့ တေ်ခါ zimbra ဲ့ ဲ error ဖပပါလမ်မ ဲ့ ယ်။ ဟိုတ်ပပီ perl package သွေင်း် ပပီ်းသွော်းပပီဆပ ကို အေကနေ rpm ေဲ ဲ့ ဖပေ်သင ွေ ်း် ။ rpm -ivh zimbra....rpm နပါ။ဲ့ အဲဒမ ီ ာ sysstat package လိုနေ တယ် ဆပို ပီ်း ထပ် error ဖပဖပေ်နရာ။ sysstat ကို အရင်ထပ်သင ွေ ်း် ၊ ပပီ်းမ zimbra ကို အေကနေ rpm ေဲ ဲ့ဖပေ်သင ွေ ်း် ရဖပေ်နရာ။ rpm -ivh zimbra....rpm နပါ။ဲ့ $ရမ််း အာရို နောက်ပါတယ်နော်။ ကဲ ! rpm အော်း yum ကို အသ်းို ဖပြုကကညဲ့်ရနအာင်။ #yum ဥပမာ B >> yum localinstall zimbra....rpm နပါ။ဲ့ ဒီနေရာမာ yum ဟာ လိုအပ်နေတဲဲ့ perl ေဲ ဲ့ sysstat package နတွေကို ဘာ error မ မဖပပဲ၊ အလို နလျာက် သွေင်း် ယူပပီ်း zimbra ကို သွေင်း် နပ်းသွော်းပါလမ်မ ဲ့ ယ်။ online ဖြေ်နေြိုနတာ ဲ့ ဲ့ လိုတာနပါ။ဲ့ ဘယ်နလာက် အာရို နောက် သက်သာလဲ? ခိုနလာက်ဆို rpm ေဲ ဲ့ yum ဘယ်ဟာပိုလေ််းသလဲ သ နလာက်ပါပပီနော်။ဒါနပမယဲ့် သူနေရာေဲ သူ ို က် ကပါနေ။ ဲ့ ဲ့ နပါနော် ဲ့ ။ ကာလနဒသ အလိုက် သ်းို ေွေဲနင အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (7-6-2018)



75



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### adding repo link ##### linux မာ yum, rpm ေတဲဲ့ command နတွေကို သ်းို ပပီ်း application နတွေ install, update လိုပ်နင ို ြ ် ၊ို ဲ့ repo link နတွေ ရမ အဆင်နဖပပါတယ်။ အဲဒ ီ repo link နတွေကို /etc/yum.repos.d/ နအာက်မာ .repo ေဲ ဲ့ဆ်းို တဲဲ့ file နတွေ အဖြေ် နတွေျို့ ရနင ို ပ ် ါတယ်။ cd /etc/yum.repos.d ls လိုအပ်ချက်အရ repo link နတွေ ထပ်မထညဲ့်သင ွေ ်း် လိုတအ ဲဲ့ ခါ /etc/yum.repos.d/ နအာက်မာ vim command line text editor ေဲ ဲ့ .repo ေဲ ဲ့ အဆ်းို သတ်တဲဲ့ file နတွေ အဖြေ် သွော်းနဆာက်နပ်း ရပါတယ်။ file အမည်ကို နေ်သက်သလို နပ်းနင ို ပ် ပီ်း extension က .repo ေဲ ဲ့ဆ်းို ြို လ ဲ့ ိုပါတယ်။ #adding_repo_link_manually repo file တေ်ခိုထမ ဲ ာ နအာက်ပါအချက်နတွေ ပါေင်ရပါမယ်။ [repo id] name=my repo baseurl="http://dl.fedoraproject.org/pub/epel/7/x86_x64/" enabled=1 gpgcheck=0 ရင််းရရင် --> […] ထဲက အရာကို repo id လို ဲ့ နခေါ်ပါတယ်။ နေ်သက်သလို နပ်းနင ို ပ ် ါတယ်။ နမဲ့မ သွော်းြိုပဲဲ့ လိုတာ ပါ။ name နေရာမာ မမ နေ်သက်သလို နရ်းနင ို ပ ် ါတယ်။ မနရ်းပဲ လွှတ်ထာ်းခဲဲ့လည််း အဆင်နဖပပါတယ်။ baseurl ကနတာဲ့ အနရ်းအကကီ်းဆ်းို ပါ။ သွော်းနရာက် ချတ်ဆက်မယဲ့် link ကို တတကျကျ ထညဲ့်သင ွေ ်း် နပ်းြို လ ဲ့ ိုပါတယ်။ enabled ဆတ ို ာကနတာဲ့ repo ကို enable နပ်းမလာ်း disable နပ်းမလာ်း သတ်မတ်တဲဲ့ အပိုင်း် ပါ။ 1 ဆရ ို င် enable ဖြေ်ပပီ်း 0 ဆရ ို င် disable လို သတ် မတ်ပါတယ်။ ဲ့ gpgcheck ဆတ ို ာကနတာဲ့ gpg key ထညဲ့်မထညဲ့် သတ်မတ်တဲဲ့ အပိုင်း် ပါ။ 1 ဆရ ို င် gpgkey ထညဲ့်မယ် လို ဲ့ သတ်မတ်ပပီ်း 0 ဆရ ို င် မထညဲ့်ဘ်းူ လို ဲ့ သတ်မတ်ပါတယ်။ ဒါနတွေကနတာဲ့ repo file တေ်ခိုကို manual တည်နဆာက်တဲဲ့ အပိုင်း် ပါ။ #adding_repo_link_via_command command line ကနေ တည်နဆာက်ချင်ရင် yum-config-manager ဆတ ို ဲဲ့ command ကို သ်းို ရပါတယ်။ ဥပမာ၊ repo file တေ်ခို နဆာက်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax က နအာက်ပါအတင ို ်း် ပါ။ yum-config-manager --add-repo http://dl.fedoraproject.org/pub/epel/7/x86_x64/



76



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



#enable repo တေ်ခိုကို enable နပ်းမယ် ဆပ ို ါေ။ို ဲ့ command syntax က နအာက်ပါအတိုင်း် ပါ။ yum-config-manager --enable repo_id repo id နေရာမာ repo file ထဲက […] ထဲမာ ရတဲဲ့ အရာကို နရ်းနပ်းရမာပါ။ file name ကို နရ်းနပ်း ရမာ မဟိုတ်ပါဘူ်း။ #disable repo တေ်ခိုကို disable နပ်းမယ် ဆပ ို ါေ။ို ဲ့ disable နပ်းတယ်ဆက ို တည််းက yum ေဲ application ဲ့ နတွေ install လိုပ်တဲအ ဲ့ ခါ ဒီ repo ကို မသ်းို ဘူ်းဆတ ို ဲဲ့ သနဘာပါပဲ။ command syntax က နအာက်ပါအတင ို ်း် ပါ။ yum-config-manager --disable repo_id #checking repo list နတွေ သူတရဲ ို ဲ့ repo_id နတွေကို yum command ေဲ နခေါ် ကကညဲ့်နင ို ပ ် ါတယ်။ အသ်းို ဖပြုရမယဲ့် ဲ့ ဲ့ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ yum repolist all all မထညဲ့်ပဲ yum repolist ေဲ ဲ့ နခေါ် ကကညဲ့်ရင်နတာဲ့ enable နပ်းထာ်းတဲဲ့ list နတွေကိုပဲ နတွေျို့ရပါ လမ်မ ဲ့ ယ်။ yum repolist ################################################ linux နပေါ်မာ application နတွေကို install, update လိုပ်နင ို ြ ် ို လ ဲ့ ိုအပ်ချက်အရ repo file နတွေ ထပ်မ တည်နဆာက်တအ ဲဲ့ ပိုင်း် ၊ enable or disable နပ်းတဲအ ဲ့ ပိုင်း် ၊ ဖပေ်ကကညဲ့်တအ ဲဲ့ ပိုင်း် ကနတာဲ့ ဒီနလာက် ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (8-6-2018)



77



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### controlling services (services မ ြော်းကို စီမခြင််း ) ##### linux နပေါ်မာ run နေတဲဲ့ services နတွေကို ကိုငတ ် ွေယ်ြို systemctl ဆတ ို ဲဲ့ command ကို သ်းို ပါတယ်။ ဲ့ application နတွေကို unit လို နခေါ် ပပီ်း၊ unit တေ်ခိုမာ ဲ့ ၁။ service ၂။ socket ၃။ path ဆပို ပီ်း ၃ ပိုင်း် ရပါတယ်။ ၁။ active ဖြေ်နေတဲဲ့ units နတွေရဲ ဲ့ service ကို ကကညဲ့်ချင်တဲအ ဲ့ ခါ systemctl list-units -type=service ကို သ်းို ပါတယ်။ command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ systemctl list-units --type=service ၂။ inactive ဖြေ်နေတဲဲ့ units နတွေရဲ ဲ့ service ကို ကကညဲ့်ချင်တဲအ ဲ့ ခါ systemctl list-units -type=service --all --state=inactive ကို သ်းို ပါတယ်။ command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ systemctl list-units --type=service --all --state=inactive ၃။ active ဖြေ်နေတဲဲ့ units နတွေရဲ service နရာ inactive ဖြေ်နေတဲဲ့ units နတွေရဲ service ကိုပါ ဲ့ ဲ့ ကကညဲ့်ချင်တဲအ ဲ့ ခါ systemctl list-units --type=service --all ကိုသ်းို ပါတယ်။ command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ systemctl list-units --type=service --all ၄။ units နတွေရဲ services နတွေ enable ဖြေ်နေလာ်း disabled ဖြေ်နေလာ်း သြို ဲ့systemctl listဲ့ unit-files --type=service ကို သ်းို ပါတယ်။ command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ systemctl list-unit-files --type=service ၅။ failed ဖြေ်နေတဲဲ့ units နတွေကို ကကညဲ့်ြို systemctl --failed --type=service ကို သ်းို ပါတယ်။ ဲ့ command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ systemctl --failed --type=service ၆။ unit တေ်ခိုရဲ ဲ့ status ကို ကကညဲ့်ြို ဲ့ systemctl status UNIT.service ကို သ်းို တယ်။ UNIT နေရာမာ application ကို ထညဲ့်နပ်းရမာပါ။ ဥပမာ၊ sshd ဆတ ို ဲဲ့ service ကို ကကညဲ့်မယ် ဆပ ို ါေ။ို ဲ့ command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ systemctl status sshd.service ၇။ unit တေ်ခိုရဲ status:full output ကို ကကညဲ့်ချင်ရင် systemctl status sshd.service -l ကို ဲ့ သ်းို တယ်။ command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ systemctl status sshd.service -l ၈။ unit တေ်ခို active ဖြေ်နေလာ်း သြို ဲ့systemctl is-active UNIT ကို သ်းို ပါတယ်။ command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ systemctl is-active sshd



78



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၉။ unit တေ်ခို boot time မာ run ြို ဲ့ (ေက်ေတက်တက်ချင််း run ြို)ဲ့ enable နပ်းခထာ်းရလာ်း သြို ဲ့ systemctl is-enabled UNIT ဆတ ို ဲဲ့ format ကိုသ်းို ပါတယ်။ command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ systemctl is-enabled sshd ခိုလိုမျြု်း အလာ်းတူ၊ Systemctl ေဲ ဲ့ တွေဲြက် အသ်းို ဖပြုနင ို တ ် ဲဲ့ command statement ၁၅ ခိုကို အတိုချြုပ် နြေါ် ဖပနပ်းလိုက်ပါတယ်။ UNIT နေရာမာ ေီမလိုတဲဲ့ application ကို ထညဲ့်နပ်းရမာပါ။ ရို ်းရို ်းရင််းရင််းပါပဲနော်။ ##### Summary of systemctl commands ##### 1.view detailed information about a unit state systemctl status UNIT 2.start a service on a running system s ystemctl start UNIT 3.stop a service on a running system systemctl stop UNIT 4.restart a service on a running system systemctl restart UNIT 5.reload configuration file of a running service systemctl reload UNIT 6.completely disable a service from being start systemctl mask UNIT 7.make a mask service available systemctl unmask UNIT 8.configure a service to start at boot time systemctl enable UNIT 9.disable a service from starting at boot time systemctl disable UNIT 10.to see the low-level properties of a unit systemctl show UNIT 11.list units which are required by the specified unit systemctl list-dependencies UNIT 12.to halt the system



79



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



systemctl halt 13.to shutdown the system systemctl poweroff 14.to reboot the system systemctl reboot 15. to hibernate the system systemctl hibernate linux 7 မတိုငခ ် င် old version နတွေမာနတာ၊ဲ့ systemctl အော်း service ဆတ ို ဲဲ့ command ကို သ်းို ပါတယ်။ သနဘာတရာ်းချင််းကနတာဲ့ အတူတူပါပဲ။ service ကို အသ်းို ဖပြုမယ်ဆို သူရဲဲ့ formant ဲ့ က service applicationcommand statement ပါ။ ဥပမာ၊ old version မာ sshd ကို restart လိုပ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command က နအာက်ပါအတင ို ်း် ပါ။ service sshd restart ကဲ ! systemctl ကို အသ်းို ဖပြုပပီ်း service နတွေကို ကိုငတ ် ွေယ်တအ ဲဲ့ နကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (12-6-2018)



80



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### (ssh အ ိုင်း် ၁) ssh ခဖင ် password ကို အကခြခ ြု၍remote login ဝင်ခြင််း ##### ဒီတေ်ခါ linux machine နတွေကို secure shell လို ဲ့ နခေါ်တဲဲ့ ssh ေဲ ဲ့ remote login ေင်ေည််းနလ်းကို နလဲ့လာရနအာင်ဗျာ။ တကယဲ့်ပါ်းပါ်းနလ်း နလဲ့လာကကညဲ့်ကကတာနပါ။ဲ့ ဥပမာ - server ဆတ ို ဲေ ဲ့ က်ကို client ဆတ ို ဲဲ့ ေက်ကနေ၊ remote login ေင်မယ် ဆပ ို ါေ။ို ဲ့ server နပေါ်မာ ကကြုတင်တည်နဆာက်ထာ်းတဲဲ့ account ရြလ ို ဲ့ ိုပါတယ်။ ဒါမ အာဒ ဲ့ ီ username ေဲ password ဲ့ ကို သ်းို ပပီ်း remote login ေင်လရမ ို ဲ့ ာပါ။ #requirement ssh ေဲ ဲ့ မေင်ခင် sshd ဆတ ို ဲဲ့ service ကို ေက်မာ run ထာ်းြို ဲ့ လိုပါတယ်။ command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ systemctl start sshd (or) systemctl enable sshd #log_in_with_hostname ဒီလို log in ေင်ြို ဲ့server ရဲ hostname ကိုလည််း သြို ဲ့လိုပါတယ်။ server ရဲ hostname ကို သြို ဲ့ ဲ့ ဲ့ server နပေါ်မာ hostname ဆတ ို ဲဲ့ command ကို run ပီ်း ကကညဲ့်နင ို ပ ် ါတယ်။ www.example.com လို ဲ့ ဆကို ကပါေ။ို ဲ့ server နပေါ်မာ root ဆတ ို ဲဲ့ account နလ်း ရတယ်ဆပ ို ါေ။ို ဲ့ သူက ဲ့ ို remote login ေင်ြိုက ို ဲဲ့ command နလ်းေဲ ဲ့ တွေဲပီ်း နအာက်ပါအတိုင်း် ရို က်နပ်း ဲ့ အရမ််းကို လွေယ်ပါတယ်။ ssh ဆတ ရို ပါပဲ။ ssh [email protected] yes or no နမ်းရင် yes လို ရ ဲ့ ို က် enter နခါက်ပါ။ password နတာင််းပါလမ်မ ို င် server ရဲ ဲ့ command line ထဲကို ဲ့ ယ်။ ထညဲ့်နပ်းလိုက်ပါ။ ဒါဆရ remote login ေဲ ဲ့ ေင်နရာက်သာွေ ်းပပီနပါ။ဲ့ ဖပေ်ထက ွေ ်မယ်ဆို exit လို ဲ့ ရို က် enter နခါက်ပပီ်း ဖပေ်ထက ွေ ် ပါ။ #log_in_with_ip server ရဲ hostname ကို မသလည််း ဖပသော မရပါဘူ်း။ ip address ကို သရင် အဆင်နဖပပါတယ်။ ဲ့ ဥပမာ - server ရဲ ip ို ါေ။ို ဲ့ ssh [email protected] နပါ။ဲ့ ဖပေ်ထက ွေ ်မယ်ဆို exit လို ဲ့ ဲ့ က 127.0.0.1 ဆပ ရို က် enter နခါက်ပပီ်း ဖပေ်ထက ွေ ်ပါ။ #remark တေ်ချက် သထာ်းြက ို ဲ့ ssh ကို အသ်းို ဖပြုတဲအ ဲ့ ခါ server ကနေ client ဆီကို encrypted လိုပ်ထာ်းတဲဲ့ publick key တေ်ခိုကို ပနပ်းပါတယ် ို ဲ့ ။ ~/.ssh/known_host ဆတ ို ဲဲ့ file နလ်းနပဲ့ါ။ သူက ို ပ ် ါတယ်။ server ဘက်ဖခမ််းမာနတာဲ့ ဲ့ ို ကကညဲ့်ချင်ရင် --> cd ~/.ssh ls –alt ေဲ ဲ့ ကကညဲ့်နင /etc/ssh/*key* နအာက်မာ သမ််းထာ်းပါတယ်။ server ကို ssh ေဲ login ေင်တိုင်း် အဲဒ ီ key နေ်ခိုကို ဲ့ တိုက်ဆင ို ် ေေ်နဆ်းပါတယ်။ server ဘက်က နဖပာင််းလိုက်လဖြေ် ို ဲ့ နေ အနကကာင််းတေ်ခိုနကကာင်ဲ့



81



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ဖြေ်နေ key pair မတူနတာရ ီ ခါ client ဘက်မာ ရတဲဲ့ ဲ့ င် ေင်လို ဲ့ မရနတာပ ဲ့ ါဘူ်း။ အဲဒအ ~/.ssh/known_host ဆတ ို ဲဲ့ file ကို ြျက်ပေ်ပီ်း ssh ေဲ ဲ့ထပ်မ login ေင်နပ်းြို လ ဲ့ ိုပါတယ်။ rm -rf ~/.ssh/known_host ဒါကနတာဲ့ သထာ်းြိုပါ။ ဲ့ လွေယ်ပါတယ်နော်။ ssh အပိုင်း် ၁ ကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (13-6-2018)



##### (ssh အ ိုင်း် ၂) ssh with private-public key ##### linux machine ကို ssh ကနေတေ်ဆင်ဲ့ password ေဲ ဲ့remote login ေင်တာကိုနတာဲ့ အပိုင်း် ၁ မာ အာလူ်း ြိုတ်ပပီ်းသွော်းပါပပီ။ ဒီတေ်ခါ password သ်းို ေရာမလိုပဲ private-public key အသ်းို ဖပြု ပပီ်း ေင်ေည််းကို နလဲ့လာကကညဲ့ရ ် နအာင်။ ဒီေည််းက ပိုပပီ်း လိုဖခြုမှု ရပါတယ်။ ဥပမာ >> client ဆတ ို ဲဲ့ ေက်ကနေ server နပေါ်မာ ရတဲဲ့ root ဆတ ို ဲဲ့ account ဆီ remote login ေင်မယ် ဆကို ကပါေ။ို ဲ့ လိုပ်ရမယဲ့် အဆငန ်ဲ့ တွေက ရို ်းရင််းပါတယ်။ client ေက်မာ private key ေဲ public ဲ့ key နေ်ခိုကို ြေ်တီ်းမယ်။ ပပီ်းရင် server ေက်ဆီ public key ကို လမ််းပမယ် ို ဲ့ ။ တေ်ခါပပပီ ို ဲ့ ်းသွော်းရင် နောက်တေ်ခါ remote login ေင်တဲအ ဲ့ ခါ ဘာမ password ထညဲ့်ေရာ မလို နတာဘ ဲ့ ်းူ နပါ။ဲ့ ဒီနလာက်နလ်းပါပဲ။ ကဲ ! client ေက်မာ private ေဲ ဲ့ public key နေ်ခိုကို ြေ်တီ်းြို ဲ့ နအာက်က command နလ်း run လိုက်ကကေ။ို ဲ့ ssh-keygen ဘာဘာညာညာ ဖြညဲ့်ခိုင်း် ရင် enter ပဲ နခါက်သာွေ ်းလိုက်ပါ။ ဒီလို run ပပီ်းတဲအ ဲ့ ခါ ~/.ssh/ နအာက်မာ private key ကို id_rsa ေဲ ဲ့ public key ကို id_rsa.pub ဆပို ပီ်း နတွေျို့ရပါမယ်။ key နတွေ ြေ်တီ်းပပီ်းသွော်းပပီဆန ို တာဲ့ public key ကို server ဆီ command နလ်းေဲ ဲ့နအာက်ကအတင ို ်း် ပနပ်းလ ို ဲ့ ိုက်ရို နပါ။ဲ့ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] ဒါဆရ ို င် လိုပ်ရမယဲ့် အဆငန ်ဲ့ တွေ ပပီ်းဆ်းို ပါပပီ။ server နပေါ်က root ဆတ ို ဲဲ့ account ဆီ ssh ေဲ ဲ့ login ေင်ကကညဲ့်လိုက်ပါ။ ssh [email protected] ဘာ password မ မနတာင််းနတာတ ဲ့ ာ နတွေျို့ရပါ လမ်မ ဲ့ ယ်။



82



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ssh အပိုင်း် ၂ ကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (14-6-2018)



## (ssh အ ိုင်း် ၃) root account ဆီသ ုိ ssh ခဖင ် remote login ဝင်ခြင််းမှ တြော်းဆီ်းခြင််း ## ဒီတေ်ခါနတာဲ့ linux server နပေါ်က root account ဆီကို ssh သ်းို ပပီ်း remote login ေင်လို ဲ့ မရနအာင် ပတ်ထာ်းကကေ။ို ဲ့ ဘာန ်ဲ့ ဲ ဆန ို တာဲ့ linux machine တေ်ခို မာ root account ဟာ ဲ့ ကကာငလ အနရ်းအပါဆ်းို မို ဲ့ သူက ဲ့ ို ssh ေဲ ဲ့ login ေင်ခွေင်ဲ့ နပ်းထာ်းတာဟာ အတေ်အသင်ဲ့ အနတရာယ်ကကီ်းလ ပါတယ်။ ဒါနကကာင ပ ်ဲ့ ါ။ လိုပ်ရမယဲ့် အဆငန ်ဲ့ တွေကနတာဲ့ ရို ်းရင််းပါတယ်။ ဲ့ server ေက်ထက ဲ /etc/ssh/sshd_config ဆတ ို ဲဲ့ file ထဲကို ေင်ဖပင်နပ်းရို ပါပဲ။ command ကနတာဲ့ နအာက်ပါအတင ို ်း် နပါ။ဲ့ vi /etc/ssh/sshd_config i key ကို နပ်ပပီ်း edit mode ထဲ ေင်ပါ။ ဘာနတွေ ဖပင်ရမလဲဆန ို တာဲ့ PermitRootLogin yes နေရာမာ no ... အာလ ဲ့ ခါ ဲ့ ို ဖပင်နပ်းလိုက်ပါ။ ပပီ်းတဲအ



83



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



escape key နပ်၊ :wq ရို က်ပပီ်း ထွေက်ပါ။ ဒါအဖပင် နအာက်က command နလ်းေဲ ဲ့sshd service ကို ဲ့ restart ချလိုက်ပါဦ်း။ service sshd restart ဒါမ ဖပင်ဆင်ထာ်းတာနတွေ အသက်ေင်မာပါ။ ကဲ ! client ေက်ဆသ ီ ာွေ ်း၊ server ရဲ root account ဆီကို ssh ေဲ remote login ေင်ကကညဲ့်ပါဦ်း။ ဲ့ ဲ့ ssh [email protected] ေင်လို ရပါနသ်းရဲ လာ်း? ဲ့ ဲ့ မမ server ရဲ root account ဆီကို ssh ေဲ ေင် ဲ့ ဲ့ မရနအာင် တာ်းဆီ်းတာကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (14-6-2018)



## (ssh အ ိုင်း် ၄) normal account အြော်း ssh ခဖင် remote login ဝင်ခြင််းမှ တြော်းဆီ်းခြင််း ## root account ကို တာ်းဆီ်းသလိုပါပဲ။ server ေက်ထက ဲ /etc/ssh/sshd_config ဆတ ို ဲဲ့ file ထဲကို ေင်ဖပင်နပ်းရမာပါ။ command ကနတာဲ့ နအာက်ပါအတိုင်း် နပါ။ဲ့ vi /etc/ssh/sshd_config i key ကို နပ်ပပီ်း edit mode ထဲ ေင်ပါ။ ဘာနတွေဖပင်ရမလဲဆန ို တာဲ့ PasswordAuthentication yes နေရာမာ no အာလ ဲ့ ခါ escape key နပ်၊ :wq ရို က်ပပီ်း ထွေက်ပါ။ ဒါအဖပင် ဲ့ ို ဖပင်နပ်းလိုက်ပါ။ ပပီ်းတဲအ ဲ့



84



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



နအာက်က command နလ်းေဲ ဲ့ sshd service ကို restart ချလိုက်ပါဦ်း။ systemctl restart sshd ဒါမ ဖပင်ဆင်ထာ်းတာနတွေ အသက်ေင်မာပါ။ ကဲ ! client ေက်ဆသ ီ ာွေ ်း၊ server နပေါ်က normal account ဆီကို ssh ေဲ ဲ့ remote login ေင်ကကညဲ့်ပါဦ်း။ ssh [email protected] ေင်လို ရပါနသ်းရဲ လာ်း? ဲ့ ဲ့ ဒီနေရာမာ တေ်ခို သထာ်းရမာက၊ ဒီလို မတာ်းဆီ်းခင် user account နတွေဟာ (Private-Public) key-based authentication ကကြုလိုပ်ထာ်းမယ်ဆရ ို င်၊ remote login ေင်လို ဲ့ ရနေမယ် ဆတ ို ာပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (15-6-2018)



### (ssh အ ိုင်း် ၅) ssh ၏ default port no. အြော်း ကခ ြောင််းလ ခြင််း ### ssh ေဲ ဲ့ပတ်သက်လို နောက် ဆ်းို အပိုင်း် ပါ။ ကဲ ! ခပ်ဖမေ်ဖမေ် သွော်းရနအာင်။ နဖပာချင်တာက --> ဲ့ ISP နတွေ Telecom နတွေမာ Data Center က server နတွေဆီ operation center ကနေ ssh ေဲ ဲ့ remote login ေင်ပပီ်း configure လိုပ်နလဲ့ ရကကတယ်။ ssh client ဘက်ကနေ server ဆီ ip ရယ် port no. ရယ်ေ ဲ ဲ့တွေဲေင်ရတယ်။ ssh ရဲ default port ေပါတ်က 22 ပဲ။ ဲ့



85



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



နဖပာရရင် hacker နတွေဆတ ို ာကလည််း အလေ်ကို နချာင််းနေကကတာ။ ssh ရဲ ဲ့ port ကို default အတိုင်း် 22 လို ထာ်းထာ်းရင် hacker နတွေ အတွေက် penetrate လိုပ်ြို ခေ ် ဲ့ ေ််းရ လွေယ်သာွေ ်းပပီ။ ဲ့ ဲ့ မ ဒါနကကာင ်ဲ့ real world မာ ssh ရဲ port ကို default အတိုင်း် ထာ်းနလဲ့ မရကကဘူ်း။ နသာက်သ်းို မကျတဲဲ့ ဲ့ ဲ့ နကာင်နတွေဆရ ို င်နတာဲ့ default အတိုင်း် ထာ်းရင်ထာ်းမာနပါနလ။ (ဤကာ်း အဆဲနတာင််းဖခင််း) ဲ့ အဲန ဲ့ တာဲ့ hacker နတွေ ခေမ ် ဲ့ ေ််းရ ခက်နအာင် ဘယ်လို လိုပ်မလဲ? မမ linux server ရဲ ssh port ကို ဲ့ တဖခာ်း တေ်ခိုခို နဖပာင််းထာ်းမယ်။ port no. နတွေက 65,535 အထ ရတယ်။ အဲအ ဲ့ ထဲက အဆင် နဖပတာ တေ်ခို နရွေ ်းပပီ်း နဖပာင််းထာ်းရမယ်။ ဘယ်လို နဖပာင််းမလဲ? မမ linux server ကို root accout ေဲ ဲ့login ေင်၊ ၁။ vi /etc/ssh/sshd_config ၂။ i key ကို နပ်ပပီ်း edit/insert mode ထဲ ေင် ၃။ #Port 22 ဆတ ို ာကို ရာ ၄။ ပပီ်းရင် # ဆတ ို ဲဲ့ သနကေတကို ဖြြုတ် ၅။ 22 နေရာမာ 50110 လို နဖပာင် ်း ( 50110 အော်း မမ အဆင်နဖပသလိုလည််း ထညဲ့်နင ို ပ ် ါသည် ) ဲ့ ၆။ Esc ကိုနပ် ၇။ :wq လို ရ port no. ကို နဖပာင််းလဲ ဖခင််း process ပပီ်းဆ်းို ပပီ။ ဲ့ ို က်သမ််းပပီ်း ထွေက် ဒါဆို ssh ရဲ default ဲ့ ထ်းို ေအတိုင်း် နဖပာင််းထာ်းတာနလ်း အသက်ေင်သာွေ ်းနအာင် --> systemctl restart sshd သမဟို ို ဲ့ တ် systemctl reload sshd အဲန ဲ့ တာဲ့ နောက်တခါ၊ operation center ကနေ data center က server ဆီ ssh client ေဲ ဲ့ ေင်မယ်ဆို port no. နေရာမာ 50110 လို ဲ့ ထညဲ့်နပ်းပပီ်း ေင်နပါ။ဲ့ ok ! အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (15-6-2018)



86



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### rsyslog ##### ကဲ ! ခိုတေ်ခါ linux မာ system ေဲဆ ို တ ် ဲဲ့ log နတွေအနကကာင််း နလဲ့လာကကညဲ့ရ ် နအာင်။ linux မာ ဲ့ င log နတွေကို ြတ်တတ်ြို ဲ့ အနရ်းကကီ်းပါတယ်။ မမ ရဲ service နတွေဟာ ပိုမေ် လည်ပတ်နေသလာ်း? ဲ့ server နတွေဆီ ဘယ်နေ ဘယ် အချေ်က ဘယ် user account နတွေ login ေင်သာွေ ်းသလဲ? ေသည်ဖြင၊်ဲ့ ဲ့ log မတ်တမ််းနတွေမာ ေင်ကကညဲ့်ရပါတယ်။ ဒါအဖပင် ၊ log နတွေဟာ problem နတွေကို နဖြရင််းရာမာ ဲ့ အသ်းို ေင်ပါတယ်။ ကိုယ် run လက ို ်တဲဲ့ service ဟာ ဘယ်နေရာမာ error တက်သာွေ ်းလဲ? error message က ဘာလဲ? solution ဘယ်လိုရာမလဲ? ဒီ error code ကို ယူပပီ်း onlie မာ solution ရာမယ်။ ေသည်ဖြငန ်ဲ့ ပါနော် ဲ့ ။ log file နတွေကို ြတ်ရာမာ root account ေဲ ဲ့ေင်ြတ်ရပါတယ်။ log ပိုင်း် မာ rsyslog ေဲ ဲ့ systemd-journal လို ဲ့ log အမျြု်းအော်း ၂ ခို ရပပီ်း၊ ဒီနေရာမ rsyslog အနကကာင််းကို တင်ဆက်သာွေ ်းမာပါ။ #rsyslog rsyslog ဆတ ို ာက အတိုနဖပာရရင် system, service ေတာနတွေေ ဲ ဲ့သက်ဆင ို တ ် ဲဲ့ message နတွေ၊ log မတ်တမ််းနတွေကို မတ်သာ်းနပ်းတဲဲ့ open-source software utility တေ်ခိုပါပဲ။ #log_rotation ဒီနေရာမာ log rotation အနကကာင််း ေည််းေည််း ကကာ်းဖြတ် နဖပာပါရနေ။ log rotation ဆတ ို ာက log file နတွေကို ဘယ်နေရက် ဲ့ အချေ်ကနေ ဘယ်အထထာ်းရမယ်၊ ဘယ်အချေ်နရာက်ရင်နတာဲ့ log အနဟာင််းနတွေကို ြျက်ပေ်မယ်၊ အဲဒလ ီ ို သတ်မတ ထာ်းတာကို နဖပာတာပါ။ logrotate ဆတ ို ဲဲ့ utility ကို အသ်းို ဖပြုပပီ်း ေီမရပါတယ်။ #rsyslog ဆက်ရရင်၊ rsyslog ဟာ အဲဒ ဲ့ ီ log rotation လိုပ်ချေ်က လွေဲပပီ်း system ေဲ ဲ့ ဆင ို တ ် ဲဲ့ log နတွေကို /var/log ဆတ ို ဲဲ့ directory နအာက်မာ မတ်သာ်းထာ်းပါတယ်။ /var/log အဲဒထ ီ က ဲ ို ေင်ပပီ်း console, mail, message, secure, cron, .. ေသဖြင်ဲ့ log နတွေကို ကကညဲ့်ရှုနင ို ် ပါတယ်။ ဥပမာ၊ system အနကကာင််း message ေဲ ဲ့ ဆင ို တ ် ဲဲ့ log ကို ကကညဲ့်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command က နအာက်ပါအတိုင်း် ပါ။ less /var/log/messages log message နတွေရဲ ဲ့ လမ််းနကကာင််း ေဲ rules နတွေကိုနတာဲ့ /etc/rsyslog.conf မာ ကကညဲ့်ရှုနင ို ပ ် ါတယ်။ ဲ့ #log_priority_code 0 ကနေ 7 ထ log ရဲ priority code နတွေကနတာဲ့ နအာက်ပါအတင ို ်း် ပါပဲ။ ဲ့ 0 >> emerg [system is unusable] 1 >> alert [action must be taken immediately]



87



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



2 >> crit [critical condition] 3 >> err [non-critical error condition] 4 >> warning [warning condition] 5 >> notice [normal but significant event] 6 >> info [informational event] 7 >> debug [debugging-level message] #how_to_read_log log တေ်နကကာင််းမာ အပင ို ်း် ၄ ခို ပါရပါတယ်။ log file နတွေကို ြတ်တအ ဲဲ့ ခါ အဲဒ ီ အပိုင်း် ၄ ခိုကို မူတည်ပပီ်း ြတ်ရမာပါ။ အဲဒါနတွေကနတာ၊ဲ့ 1. log ေတင် မတ်သာ်းတဲအ ဲ့ ချေ် 2. log message ေဲ ဲ့ဆင ို တ ် ဲဲ့ host ရဲ name ဲ့ 3. log message ကို နပ်းပလ ို ဲ့ ိုက်တဲဲ့ program သမဟို ို ဲ့ တ် process 4. message ထဲမာပါတဲဲ့ ောသာ်း တို ဖြေ် ဲ့ ပါတယ်။ log file နတွေကို tail -f အသ်းို ဖပြုပပီ်း live ကကညဲ့်နင ို ပ ် ါတယ်။ ဥပမာ၊ security ေဲ ဲ့ဆင ို တ ် ဲဲ့ log ကို live ကကညဲ့်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax က နအာက်ပါအတင ို ်း် ပါ။ tail -f /var/log/secure logger ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုပပီ်း log message နတွေကို log file ဆီ နပ်းပန ို ဲ့ င ို ပ ် ါ နသ်းတယ်။ ဥပမာ၊ user ေဲဆ ို တ ် ဲဲ့ error message ကို နပ်းပမယ် ို ဲ့ ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ဲ့ င က နအာက်ပါအတိုင်း် ပါ။ logger -p user.err "this is testing" #customizing log code နတွေေ ဲ ဲ့ ေင်နရာက်ရမယဲ့် လမ််းနကကာင််းကို ေတ်ကကြုက် နဖပာင််းလဲ သတ်မတ်နပ်းနင ို ပ ် ါ နသ်းတယ်။ ဥပမာ၊ error code နတွေေ ဲ ဲ့ သူရဲဲ့ ဲ့ လမ််းနကကာင််းကို သတ်မတ်နပ်းမယ် ဆပ ို ါေို။ဲ့ error ေဲ ဲ့ ဆင ို တ ် ဲဲ့ message နတွေကို /var/log/new-err ဆတ ို ဲဲ့ file ထဲမာ သမ််းနေချင်တယ် ဆပ ို ါေ။ို ဲ့ ဖပြုလိုပ်ရမယဲ့် အဆငန ်ဲ့ တွေကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ ၁။ /etc/rsyslog.d/ နအာက်မာ new-err.conf ဆတ ို ဲဲ့ file နလ်း နဆာက်ပါ။ ၂။ new-err.conf ထဲမာ *.err /var/log/new-err လို နရ်းသာ်း သတ်မတ်နပ်းလိုက်ပါ။ ဲ့ ဒီအချက် ၂ ချက်ကို command တေ်ကကာင််းတည််းေဲ နရ်းန င ို ပ ် ါနသ်းတယ်။ နအာက်ပါအတိုင်း် နပါ။ဲ့ ဲ့ echo "*.err /var/log/new-err" > /etc/rsyslog.d/new-err.conf ကဲ ! ဟိုတ်ပါပပီ။ အထက်က အဆငန ်ဲ့ တွေအတိုင်း် ပပီ်းသွော်းရင် rsyslog ကို restart ချနပ်းရပါမယ်။



88



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



systemctl restart rsyslog ဒါဆို error ေဲ ဲ့ သက်ဆင ို တ ် ဲဲ့ message နတွေဟာ /var/log/new-err ဆတ ို ဲဲ့ file ထဲ နရာက်သာွေ ်း ပါလမ်မ ဲ့ ယ်။ #testing_log_customization အထက်ကအတိုင်း် log location ကို ေတ်ကကြုက် သတ်မတ်ပပီ်းရင်၊ မေ်ကေ်မှု ရမရ၊ logger -p user.err "testing error log" လို log message နပ်းပို ပပီ ို ပ ် ါတယ်။ ဲ့ ဲ့ ်းေမ််းကကညဲ့်နင logger -p user.err "testing error log" error code ပပပီ ို ဲ့ ်းရင် cat /var/log/new-err လို ရ ဲ့ ို က်ပပီ်း နရာက်မနရာက် ဖပေ်ေေ်ရို နပါ။ဲ့ cat /var/log/new-err ကဲ ! rsyslog ေဲ ဲ့သက်ဆင ို တ ် အ ဲဲ့ နကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (19-6-2018)



##### systemd-journal ##### linux system တေ်ခိုမာ log file နတွေေ ဲ ဲ့ ပတ်သက်လို ဲ့ rsyslog ေဲ ဲ့ systemd-journal ဆပို ပီ်း ၂ မျြု်း ရပါတယ်။ rsyslog အနကကာင််း နရ်းတင်ပပီ်းပပီမို ဲ့ အခို နဖပာမာကနတာဲ့ systemd-journal အနကကာင််းပါ။ systemd-journal ဟာ log နတွေကို /run/log ထဲမာ မတ်သာ်းပါတယ်။ system boot လိုပ်ချေ်ကနေ ေပပီ်း log နတွေကို မတ်သာ်းထာ်းပပီ်း system reboot လိုပ်တာေဲ ဲ့ log နတွေကို ြျက်ပေ်ပါတယ်။ ဒါဟာ systemd-journal ရဲ သနဘာသဘာေပါပဲ ။ ဲ့ ၁။ systemd-journal log နတွေကို ကကညဲ့်ြို ဲ့ journalctl ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ journalctl ၂။ log နတွေကို အနရအတွေက်ေ ဲ သတ် မတ်ပပီ်း ကကညဲ့်ြို -n ို ဲဲ့ option ကို တွေဲသ်းို ရပါတယ်။ ဥပမာ၊ ဲ့ ဲ့ ဆတ ၅ နကကာင််းပဲ ကကညဲ့်မယ်ဆိုရင် >> journalctl -n 5



89



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၃။ log နတွေကို priority အလိုက် ခွေဲဖခာ်းပပီ်း ကကညဲ့်ြို -p ို ဲဲ့ option ေဲ တွေ ဲ့ ဆတ ဲ့ ဲသ်းို ရပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ journalctl -p err ဒီနေရာမာ သထာ်းြိုက၊ ဲ့ 0 ကနေ 7 ထ log ရဲ ဲ့priority code နတွေ ရပါတယ်။ အဲဒါနတွေကနတာဲ့ နအာက်ပါအတင ို ်း် ပါပဲ။ 0 >> emerg [system is unusable] 1 >> alert [action must be taken immediately] 2 >> crit [critical condition] 3 >> err [non-critical error condition] 4 >> warning [warning condition] 5 >> notice [normal but significant event] 6 >> info [informational event] 7 >> debug [debugging-level message] ၄။ log နတွေကို live အနေေဲ ဲ့ြတ်ချင်ရင် -f ဆတ ို ဲဲ့ option ကို တွေဲသ်းို ရပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ journalctl -f ၅။ အချေ်ကေသ ် ဲ့ တ်ချက်တေ်ခိုအတွေင်း် က log နတွေကို ြတ်ချင်ရင် --since ေဲ --until ဆတ ို ဲဲ့ options ဲ့ နတွေကို သ်းို ေွေဲရပါတယ်။ format ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ --since Y-M-D H:M:S --until Y-N-D H:M:S ဥပမာ၊ 2017-02-19 05:00:00 အချေ်ကနေ 2017-02-19 06:00:00 အချေ်ကကာ်းက log နတွေကို သချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax က နအာက်ပါအတိုင်း် ပါ။ journalctl --since 2017-02-19 05:00:00 --until 2017-02-19 06:00:00 ၆။ log တေ်နကကာင််းချင််းကို အနသ်းေတ် verbose mode ေဲ ဲ့ ကကညဲ့်ချင်ရင် -o ဆတ ို ဲဲ့ option ကို သ်းို ရပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါပဲ။ journalctl -o #saving_journalctl log နတွေကို reboot လိုပ်တိုင်း် ြျက်မဖပေ်နေချင်ဘ်းူ ။ file တေ်ခိုဆီ redirect လိုပ်ထာ်းမယ်ဆလ ို ည််း အဆင်နဖပပါတယ်။ ဖပြုလိုပ်ရမယဲ့် အဆငန ်ဲ့ တွေကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ ၁။ /var/log/ နအာက်မာ journal-log အမည်ေ ဲ ဲ့directory တေ်ခို နဆာက်နပ်းပါ။ ၂။ chown :systemd-journal journal-log လို ဲ့ ရို က်ပပီ်း journal-log ကို systend-journal ဆတ ို ဲဲ့ group က ပိုငဆ ် င ို န ် ကကာင််း သတ်မတ်နပ်းလိုက်ပါ။ ၃။ chmod g+s journal-log လို ရ ဲ့ ို က်ပပီ်း special permission သတ်မတ်နပ်းလိုက်ပါ။ ၄။ killall _USR1 systemd-journald လို ရ ဲ့ ို က်ပပီ်း restart လိုပ်နပ်းလိုက်ပါ။



90



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ဒါဆို log နတွေကို reboot လိုပ်တာေဲ ဲ့ ြျက်မပေ်ပဲ /var/log/ နအာက်က journal-log ဆတ ို ဲဲ့ directory ထဲမာ မတ်သာ်းနပ်းသွော်းပါလမ်မ ဲ့ ယ်။ ကဲ ! systemd-journal အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (21-6-2018)



🍁 The True Happiness is Playing with Linux linux system administration ပိုင်း် ကို နလဲ့လာမယ်ဆရ ို င် GUI (graphical user interface) မသ်းို မယဲ့်တူတူ centos linux ကို minimal ေဲ ဲ့ တင်တာ ပိုနကာင််းတယ်။ CLI (command line interface) နပါ။ဲ့ RAM လည််း ော်းတာ အရမ််း သက်သာမယ်။ ပိုလည််း ဖမေ်မယ်နလ။ အဓက က linux ဆတ ို ာ တင်ပပီ်း run ထာ်းရို ေ ဲ ဲ့ ကေစ ပပီ်းတာ မဟိုတ်ဘ်းူ ။ os version အလိုက် package installation procedure/server configuration method နတွေက နဖပာင််းနေတာ။ virtual box မာ ေမ််းနေရင််း တေ််းလေ််း online နလ်းပါ တက်ပပီ်း how to install ဘာညာ၊ how to configure ဘာညာ၊ ရာရနြွေရဦ်းမာ။ ေက်နလ်းနေရင် အဆင်မနဖပဘူ်း။ေက်ကို RAM ဖမြှငြ ်ဲ့ ိုကလည် ်း ပိုက်ဆက ဲ့ မရဘူ်း။ဒီနတာဲ့ နပါပါ်းမယဲ့ ် ေည််းလမ််း သ်းို ြိုလ ဲ့ ဲ့ ိုတယ်နလ။ Admin က fedora linux သ်းို တယ်။ virtual box ထပ်သင ွေ ်း် ပပီ်း centos vm ၂ ခို နဆာက်ထာ်းတယ်။ centos 7-1 ေဲ ဲ့centos 7-2 ဆပို ပီ်း ၂ ခိုလို်း minimal ေဲ ဲ့သွေင်း် ထာ်းတယ်။ အဖပင်က host os ေဲ ဲ့vbox နပေါ်က os ၂ ခိုကို virtual network ချတ်ထာ်းတယ်။ ေက် ၃ လို်း connection မနေတဲဲ့ သနဘာနပါ။ဲ့ ဘယ်လို သ်းို လဲဆန ို တာဲ့ --> ၁။ nfs server, samba server, web, dhcp ေသည်ဖြင်ဲ့ ေမ််းမယ်ဆို centos 7-1 vm မာ တင်ပပီ်း ေမ််းတယ်။ သူက server နပါ။ဲ့ centos 7-2 vm က client နပါ။ဲ့ ၂။ os level administration ေမ််းမယ်ဆို centos 7-2 vm တေ်ခိုတည််းကို သ်းို တယ်။



91



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ဆလ ို ိုချင်တာက ကိုယ်ေ ဲ့ က်မာ RAM ေည််းနေတဲဲ့ အချေ် virtual box or vmware မာ linux ကို GUI ေဲ vm ၂ ခို သွေင်း် မယ်။ ၂ ခိုလို်း run မယ်ဆို ေက်နလ်းသွော်းမာပါ။ အဲဒ ဲ့ အ ီ ော်း၊ minimal installation ေဲ ဲ့ ဲ့ သွေင်း် ပပီ်း ေမ််းရတာဟာ အနတာ် အဆင်နဖပပါတယ်။ GUI ထက်လည််း အဆမျာ်းေွော ပိုဖမေ်ပါတယ်။ ောနတွေ ေမ််းြို၊ ဲ့ အလိုပ်ေဆ ဲ ဲ့ င ို တ ် ဲဲ့ POC နတွေ ေမ််းြို အတွေ က် အသ်းို ေင်ပါတယ်။ Admin ရဲ ေည် ဲ့ ဲ့ ်းလမ််းကို မျှနေရို ပါ။ ပိုနကာင််းတာနတွေလည််း ရရင် ရမာနပါ။ဲ့ ဒီနလာက်ပါပဲ။ linux ကို နလဲ့လာ ေမ််းသပ် ကလရင််း နပျာ်ေရာနတွေ ြေ်တီ်းနင ို ပ ် ါနေ လ။ို ဲ့ Yin Thu (21-6-2018)



######network configuration with nmcli ##### linux မာ network setting ကို configure လိုပ်တအ ဲဲ့ နကကာင််း နလဲ့လာကကရနအာင်။ network card မာ သတ်မတ်နပ်းထာ်းတဲဲ့ ip, mac address ေတာနတွေကို ifconfig ဆတ ို ဲဲ့ command ေဲ ဲ့နခေါ် ကကညဲ့် နင ို ပ ် ါတယ်။ ifconfig မရရင် yum -y install net-tools ေဲ ဲ့သွေင်း် ယူပါ။ #how_to_configure network setting နတွေကို သတ်မတ်နပ်းြို အတွေ ကက ် နတာဲ့ ေည််းလမ််း ၂ ခို ရပါတယ်။ ဲ့ ၁။ တေ်ခိုက nmcli (network manager command line interface) ဆိုတဲဲ့ command ကို အသ်းို ဖပြု ပပီ်း command line ကနေ တေ်ဆငခ ်ဲ့ ျင််း သတ်မတ်သာွေ ်းတဲဲ့ ေည််းလမ််းပါ။ ၂။ နောက်တေ်ခိုက network file ထဲကို vim ဆိုတဲဲ့ command line text editor ေဲ ဲ့ manually ေင်ဖပင်တဲဲ့ ေည််းလမ််းပါ။ ဒီနေရာမာ အရင်ဆ်းို nmcli အနကကာင််းကို တင်ဆက်ပါမယ်။



92



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



#nmcli ၁။ nmcli ကို အသ်းို ဖပြုပပီ်း configure လိုပ်မယ်ဆရ ို င် terminal ထဲမာ nmcli လို ရ ဲ့ ို က်ပပီ်း tab key ကို ၂ ချက် ဆက်တိုက် နပ်နပ်းလိုက်ပါ။ nmcli ေဲ ဲ့ ဆက်ေပ် သ်းို ေွေဲရမယဲ့် options နတွေကို ဖပနပ်းပါ လမ်မ ဲ့ ယ်။ ၂။ ကျလာတဲဲ့ options နတွေထက ဲ မ connection ကို configure လိုပ်မာဆို connection ကို နရွေ ်း tab key ၂ ချက် ထပ်နပ်၊ connection ေဲ ဲ့ ဆက်နယ ွေ ်တဲဲ့ add modify show ေသဖြင်ဲ့ options နတွေ ထပ်ကျလာပါလမ်မ ဲ့ ယ်။ ၃။ connection အသေ် နဆာက်မာဆို add ကို နရွေ ်းပပီ်း tab key ၂ ချက် ထပ်နပ်၊ setting နတွေ ဖြညဲ့်။ ၄။ ရပပီ်းသာ်း connection ကို ဖပြုဖပင်မာဆို modify ကို နရွေ ်းပပီ်း tab key ၂ ချက် ထပ်နပ်၊ setting နတွေ ဖြညဲ့်။ ၅။ connection အနဖခအနေကို ကကညဲ့်မာဆို show ကို နရွေ ်း enter နခါက်။ ဒီလို တေ်ဆငခ ်ဲ့ ျင််း သွော်းရပါတယ်။ nmcli ေဲ ဲ့ ဆိုငတ ် ဲဲ့ options နတွေကို အလွေတ်ကျက်နေေရာ မလိုအပ်ပါဘူ်း။ ဒါက nmcli ကို သ်းို ပပီ်း network ကို configure လိုပ်တဲဲ့ သနဘာတရာ်းပါပဲ။ #example ဥပမာ အနေေဲ nmcli ကို သ်းို ပပီ်း connection အသေ် ၁ ခို create လိုပ်ကကညဲ့်ကကေ။ို ဲ့ ဲ့ IP >> 192.168.100.10 NETMASK >> 255.255.255.0 GATEWAY >> 192.168.100.254 DNS >> 8.8.8.8 အထက်ပါ အချက်နတွေ အတိုင်း် conection တေ်ခို create လိုပ်ကကညဲ့်ကကမယ်နော်။ လွေယ်လယ ွေ ် နလ်းပါ။ command တေ်နကကာင််းတည််းေဲ ကေူ ေပပီ်းပါတယ်နော်။ တေခိုခို အေပျြု်းပပီ်းတိုင်း် Tab key ဲ့ နလ်းကို ခိုေက် ကညဲ့်နေချင်တယ်။ ပိုလွေယ်တာနပါ။ဲ့ nmcli connection add ifname test type Ethernet ipv4.addresses 192.168.100.10/24 ipv4.gateway 192.168.100.254 ipv4.dns 8.8.8.8 ပပီ်းရင် enter နခါက်ရို နပါ။ဲ့ မမ နရ်းသွေင်း် တာနတွေက မေ်တယ် ဆရ ို င် Connection 'ethernet-test' (d64a1a32-6fdd-47ee-9f15-ed891fffdb1f) successfully added. လို ဖပပါလ မ်မ ဲ့ ဲ့ ယ်။ မမ တည်နဆာက်လိုက်တဲဲ့ connection ကို nmcli connection show ဆတ ို ဲဲ့ command ေဲ ဖပေ် ဲ့ ေေ် နင ို ပ ် ါနသ်းတယ်။ nmcli connection show



93



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



မမ တည်နဆာက်လိုက်တဲဲ့ connection ကို တေ်ခိုခို ထပ်မ ဖပင်ဆင်မယ် (ဥပမာ၊ ip နဖပာင််းမယ်) ဆို nmcli connection modify လို ဲ့ ရို က် Tab key ၂ ချက် ခိုေပ် ပီ်း ကျလာတာနတွေထက ဲ modify လိုပ်မယဲ့် connection name ကို ထညဲ့်နပ်းပပီ်း ဖပင်ေရာရတာ ဖပင်နပါ။ဲ့ ဖပေ်ြျက်မယ် ဆရ ို င်နတာဲ့ nmcli connection delete connection-name နပါ။ဲ့ ဒီနေရာမာ connection-name က ethernet-test ဆန ို တာဲ့ ြျက်မယ်ဆို နအာက်ပါအတိုင်း် နပါ။ဲ့ nmcli connection delete ethernet-test #path မမ တည်နဆာက်လိုက်တဲဲ့ connection က ဘယ်နေရာမာလဲ? ဆန ို တာဲ့ >> /etc/sysconfig/network-scripts/ နအာက်မာ ifcfg-ethernet-test ဆတ ို ဲဲ့ connection အသေ် ၁ ခို အဖြေ် ရနေပါလမ်မ ဲ့ ဲ ဘာနတွေ ရလဲ သချင် vi ေဲ ြွေ ဲ့ ယ်။ အဲထ ဲ့ ငက်ဲ့ ကညဲ့်နပါနော် ဲ့ ။ vi /etc/sysconfig/network-scripts/ifcfg-ethernet-test ကဲ ! nmcli ကို အသ်းို ဖပြုပပီ်း connection တေ်ခို တည်နဆာက်တအ ဲဲ့ နကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ တွေဲတင်ထာ်းတဲဲ့ photo ကို zoom ေဲ ဲ့ကကညဲ့်မယ်ဆို ပိုသ ပိုလွေယ်ကူသာွေ ်းပါလမ်မ ဲ့ ယ်နော်။ nmcli အနကကာင််း ပိုပပီ်း သချင်ရင် နအာက်ပါ link မာ သွော်းနရာက် နလဲ့လာနင ို ပ ် ါတယ်။ https://www.tecmint.com/configure-network-connections-using-nmcli-tool-in-linux/ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (22-6-2018)



94



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### network configuration (manually) ##### nmcli ကို အသ်းို ချပပီ်း network configuration အနကကာင််း ပပီ်းတဲန ဲ့ ောက်၊ ခိုတခါ network ကို vi ေဲ ဲ့manually ေင်ဖပင်တဲအ ဲ့ နကကာင််း နဖပာရနအာင်။ #concept network config ကို vi ေဲ ဲ့ ေင်ဖပင်တဲဲ့ ေည််းကနတာဲ့ ရို ်းရင််းပါတယ်။ network file နတွေဟာ /etc/sysconfig/network-scripts ဆတ ို ဲဲ့ directory နအာက်မာ တည်ရပါတယ်။ cd /etc/sysconfig/network-scripts



ls



connection အသေ် ၁ ခို နဆာက်ချင်ရင်၊ နပ်းချင်တဲဲ့ အမည်နရ ျို့ မာ ifcfg- ခပပီ်း touch ေဲ ဲ့ တည် နဆာက်နပ်းရပါတယ်။ ifcfg ေဲ ေတဲ ဲ့ file နတွေဟာ network config file နတွေလို ော်းလည် ရပါမယ်။ ဲ့ ဲ့ ဥပမာ၊ eth0 ဆတ ို ဲဲ့ အမည်ေ ဲ ဲ့ connection အသေ် ၁ ခို နဆာက်ချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ touch ifcfg-eth0 ရပပီ်းသာ်း connection ကို ဖပင်ဆင်ချင်ရင်နတာဲ့ network file ( ဥပမာ ifcfg-eth0 ကို vi ေဲ ဲ့ြွေငပ်ဲ့ ပီ်း ေင်နရာက် ဖပင်ဆင်နင ို ပ ် ါတယ်။ vi ifcfg-eth0 အဲဒအ ီ ခါ ifcfg-eth0 ထဲမာ network setting နတွေ၊ TYPE, DEVICE, NAME, HWADDR, ONBOOT, BOOTPROTO, IPADDR, NETMASK, GATEWAY, DNS1, DNS2 ေတာနတွေရဲ ဲ့ တေ်ြို်းနတွေကို ထညဲ့်သင ွေ ်း် နပ်းရပါမယ်။ ဒါကနတာဲ့ nmcli မသ်းို ပဲ network file နတွေကို manually ြေ်တီ်း၊ vi ေဲ ဲ့ ေင် ဖပြုဖပင်တဲဲ့ သနဘာ တရာ်းပါပဲ။ #example IP >> 192.168.100.10 NETMASK >> 255.255.255.0 GATEWAY >> 192.168.100.254 DNS1 >> 8.8.8.8 DNS2 >> 8.8.4.4 အထက်ပါ နပ်းထာ်းချက်နတွေအတိုင်း် network connection တေ်ခိုကို vi ေဲ ဲ့create လိုပ်ရနအာင်။ ၁။ network config file နတွေ ရတဲဲ့ /etc/sysconfig/network-scripts ဆီကို သွော်းပါ။ cd /etc/sysconfig/network-scripts



ls



၂။ ifcfg-eth0 (new version မာ ifcfg-enp0s2 or ifcfg-enp0s3) ဆတ ို ဲဲ့ file ကို vi ေဲ ဲ့ြွေငပ ်ဲ့ ါ။ vi ifcfg-eth0 ၃။ ပပီ်းရင် နအာက်ပါအတိုင်း် အေဉလိုက် ထညဲ့်နပ်းပါနော်။



95



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



TYPE=Ethernet (connection အမျြု်းအော်း) DEVICE=eth0 (device အမည်) NAME="local NIC" (မမ နေ်သက်သလို နပ်းနင ို သ ် ည်) HWADDR=fe80::800:27ff:fe00:0 (hardware id or mac address) BOOTPROTO=static (ip ကို မမကိုယ်တိုင် သတ်မတ်မာဆို ဒီနေရာမာ static လို ထညဲ့ ်။ dhcp ေဲ ဲ့ ဲ့ auto သတ်မတ်မာဆို dhcp လို ထညဲ့ ်။) ဲ့ ONBOOT=yes (ေက်ြွေငြ ်ဲ့ ွေငခ ်ဲ့ ျင််း အလိုပ်လိုပ်ြို)ဲ့ NM_CONTROLLED=yes (GUI network manager ကနေ လမ််းဖပင်နင ို န ် ေချင်ရင် yes .. မဖပင်နေချင်ရင် no) IPADDR=192.168.100.10 (မမ နပ်းချင်တဲဲ့ ip) NETMASK=255.255.255.0 GATEWAY=192.168.100.254 (gateway ip .. လိုရင်ထညဲ့် မလို မထညဲ့်ေနပါ ဲ ဲ့ ။)ဲ့ DNS1=8.8.8.8 (domain name server 1 ရဲ ip) ဲ့ DNS2-8.8.4.4 (domain name server 2 ရဲ ip) ဲ့ ၄။ ဒါနတွေ ဖြညဲ့်ပပီ်းပပီဆရ ို င် Esc key နပ် :wq ရို က် enter နခါက်ပပီ်း ထွေက်ရို နပါ။ဲ့ ဒါဆို မမ လိုအပ်ချက်နတွေေ ဲ ဲ့အညီ connection ၁ ခို ကို manually တည်နဆာက်လို ပပီ ဲ့ ်းပါပပီ။ #remark network ကို ဖပင်ြို root account သမဟို ို ဲ့ တ် administrator account ကို သ်းို ြို မနမ ဲ့ ဲ့ ဲ့ပါေဲ။ဲ့ connection အသေ်တည်နဆာက်တာဖြေ်နေ ရပပီ်းသာ်းကို ဖပြုဖပင်တာဖြေ်နေ၊ ကေစပပီ်းသွော်းရင် configuration နတွေ အသက်ေင်နေြို network service ကို restart ချနပ်းြိုမနမ ပ ဲ့ ဲ့ ဲ့ ါေဲ။ဲ့ systemctl restart network သမဟို ို ဲ့ တ် service network restart network setting ရဲ IPADDR နေရာမာ ထညဲ့်ထာ်းတဲဲ့ IP မေ်မမေ် သြို ဲ့ ping ကို သ်းို ပပီ်း ေေ်နဆ်း ဲ့ နင ို ပ ် ါတယ်။ ping 192.168.100.10 network setting ရဲ ဲ့ DNS1 နေရာမာ ထညဲ့်ထာ်းတဲဲ့ dns ရဲ ဲ့ ip ေင်မေင်၊ /etc/resolv.conf ကို ေင်နရာက် ကကညဲ့်ရှုနင ို ပ ် ါတယ်။ cat /etc/resolv.conf နပါ။ဲ့ ကဲ ! network config ကို vi ေဲ ဲ့manually ေင်နရ်းတဲအ ဲ့ နကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (22-6-2018)



96



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### hostname ##### မမေက်ရဲ ip ို ဲ့ ြေ်တီ်းနင ို ပ ် ါတယ်။ ဲ့ ကို network နပေါ်မာ host name ေဲ ဲ့ping လရနအာင် host name ဆတ ို ာက ip အော်း သ်းို နင ို တ ် ဲဲ့ ေက်ရဲ အမည် နပါ။ဲ့ ဲ့ ေည််းလမ််းနလ်းနတွေကို ကကညဲ့်ရ နအာင်။ #method_1 /etc/hosts ဆတ ို ဲဲ့ file မာ ေင်နရာက် ဖပင်ဆင်ရို ပါ။ ဥပမာ၊ ip က 192.168.100.10 ၊ ဒါကို www.example.com လို ဲ့ ping ရင်လည််း reply ဖပေ်နေချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ echo "192.168.1.254 www.example.com" >> /etc/hosts ဒါဆို ping www.example.com လို ping ရင်လည််း reply ဖပေ်ပါပပီ။ ဲ့ #method_2 ဒါအဖပင် linux machine ရဲ hostname ကို နဖပာင််းလဲမယ်ဆရ ို င် hostnamectl set-hostname ဲ့ ဲ့ ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုနင ို ပ ် ါတယ်။ ဥပမာ၊ hostname ကို test.comလို ဲ့ နဖပာင််းလဲမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ hostnamectl set-hostname test.com #method_3 vim command line text editor ေဲ ဲ့ /etc/hostname ဆတ ို ဲဲ့ file ြွေငပ်ဲ့ ပီ်း ေင်နရာက် နဖပာင််းလဲနပ်း နင ို ပ ် ါတယ်။ ဥပမာ၊ hostname ကို linux.com လို နဖပာင် ်းလဲမယ် ဆပ ို ါေ။ို ဲ့ vi /etc/hostname ဲ့ i ကို နပ် insert mode နဖပာင််း၊ linux.com လို နရ်း၊ Esc key ကို နပ်၊ :wq ေဲ save and exit လိုပ်ပပီ်း ဲ့ ဲ့ ထွေက်။ ကဲ ! ip အော်း hostname သတ်မတ်နပ်းတဲဲ့ အပိုင်း် ကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (22-6-2018)



97



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



### root password recovery (redhat, centos, fedora) ### linux မာ root account ရဲ password ဟာ အနရ်းကကီ်းပါတယ်။ အဲဒ ီ root password ကို နမဲ့သာွေ ်းပပီ ဲ့ ဆပ ို ါနတာ။ဲ့ ဘယ်လို လိုပ်ကကမလဲ? ဒီနေရာမာ root password recovery ဟာ အနရ်းပါလာ ပါတယ်။ ကဲ ! ေလိုက်ကကရနအာင်။ root account ရဲ password ကို နမဲ့သာွေ ်းပပီပဲ ထာ်းပါ။ ဲ့ လိုပ်ရမယဲ့် အဆငန ်ဲ့ တွေက --> ၁။ system ကို reboot ချပါ။ ၂။ ဖပေ်တက်လာလboot ို ဲ့ menu နပေါ်လာရင် ကကြုက်တဲဲ့ key တေ်ခိုကို နပ်ပပီ်း brake ြမ််းလိုက်ပါ။ ၃။ keyboard နပေါ်က e ကို နပ်ပါ။ ၄။ systemctl reboot လို ဲ့ ရို က် enter နခါက်ပါ။password အသေ်ေ ဲ ဲ့ boot ဖပေ်တက်လာ ပါလမ်မ ် ဲ အဆ ်းို ကိုသာွေ ်းပါ။ ဲ့ ယ်။ ောပိုဒရ ဲ့ ၅။ console=tty1 rd.break လို ရ ဲ့ ို က်ပါ။ ၆။ ctrl+x ကို နပ်ပပီ်း နရ ျို့ဆက်ပါ။ ၇။ root အနေေဲ ဲ့login ေင်သာွေ ်းပါလမ်မ ဲ့ ယ်။ ၈။ mount -o remount,rw /sysroot/ လို ရ ဲ့ ို က် enter နခါက်ပါ။ ၉။ chroot /sysroot/ လို ရ ဲ့ ို က် enter နခါက်ပါ။ ၁၀။ sh shell ထဲကို ေင်သွော်းပါလမ်မ ဲ့ ယ်။ ၁၁။ passwd root လို ရ ဲ့ ို က် enter နခါက်ပါ။ ၁၂။ password အသေ် ထညဲ့်နပ်းလိုက်ပါ။ ၁၃။ / (root directory) နအာက်မာ နအာက်ပါအတိုင်း် file ၁ ခို နဆာက်နပ်းလိုက်ပါ။ touch /.autorelabel ၁၄။ ပပီ်းရင် exit လို ရ ဲ့ ို က် enter နခါက်ပပီ်း ထွေက်ပါ။ ၁၅။ systemctl reboot လို ရ ဲ့ ို က် enter နခါက်ပါ။ ၁၆။ password အသေ်ေ ဲ ဲ့ boot ဖပေ်တက်လာပါလမ်မ ဲ့ ယ်။ ဒါပါပဲ။ root account ရဲ ဲ့password နမဲ့သာွေ ်းရင် ဒီေည််းနလ်းကို သတရကကပါလ။ို ဲ့ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (22-6-2018)



98



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### scp (secure copy) ##### ဒီတေ်ခါ နဖပာမာကနတာဲ့ copy ကူ်းတဲအ ဲ့ နကကာင််းပါပဲ။ ဒါနပမယဲ့် သူက ရို ်းရို ်း copy မဟိုတ်ပါဘူ်း။ secure copy ပါ။ scp နပါ။ဲ့ scp ကို network ချတ်ထာ်းတဲဲ့ linux system တေ်ခိုေတေ် ဲ ဲ့ ခို အကကာ်း file နတွေကို ကူ်းယူရာမာ လိုဖခြုမှု ရနေြို ဲ့ သ်းို ပါတယ်။ network နပေါ်က ေက်အချင််းချင််း file အပ/အယူ ို ဲ့ လိုပ်ရာမာ အချေ်ကိုေ ် သက်သာနေပါတယ်။ ssh service ကို run ထာ်းြိုနတာ ဲ့ ဲ့ လိုတာ နပါနော် ဲ့ ။ ဥပမာ A၊ tom ဆတ ို ဲဲ့ user သည် network နပေါ်က တေ်ဖခာ်းေက်တေ်လို်းရဲ ဲ့ jerry ဆတ ို ဲဲ့ user ဆီက /home/jerry/ နအာက်မာရတဲ၊ဲ့ file1 ကို လမ််းကူ်းယူမယ်။ jerry ရဲ ip ို ါေ။ို ဲ့ ဲ့ က 192.168.100.3 ဆပ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ scp [email protected]:/home/jerry/file1 /home/tom jerry ရဲ password ကို နတာင််းပါလမ်မ ဲ့ ဲ့ ယ်။ ထညဲ့်နပ်းလိုက်နပါ။ဲ့ ဥပမာ B၊ tom ဆတ ို ဲဲ့ user သည် သူရဲဲ့ /home/tom/ နအာက်က file1 ကို network နပေါ်က jerry ဲ့ ဆတ ို ဲဲ့ user ရဲ /home/jerry ဆီကို လမ််းပမယ် ို ဲ့ ဆိုပါေ။ို ဲ့ command syntax ကနတာဲ့ နအာက်ပါ ဲ့ အတိုင်း် ပါ။ scp /home/tom/file1 [email protected]:/home/jerry jerry ရဲ password နတာင််းပါလမ်မ ို ရင် ..... ဲ့ ဲ့ ယ်။ ထညဲ့်နပ်းလိုက်နပါ။ဲ့ ကဲ ! ဟိုတ်ပါပပီ။ ဆရ အထက်မာ ဖပခဲတ ပ်လိုပ်ပိုကနတာဲ့ ဒီနလာက်ပါပဲ။ ဲ့ ဲဲ့ ဥပမာ ၂ ခိုအတိုင်း် နပါ။ဲ့ scp ရဲ အလို ဲ့ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (27-6-2018)



99



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### rsync ခဖင ် က်းယခြင််း ##### rsync ...။ သူက copy ကူ်းသလိုပါပဲ။ ဒါနပမယဲ့် ရို ်းရို ်း copy ေဲ ဲ့ မတူတာက၊ သူက synchronize လိုပ်ပပီ်း ကူ်းတာပါ။ ဒါနကကာင ်ဲ့ သူက ဲ့ ဲ့ ို rsync (remote synchronization) လို နခေါ် ဲ့ တာပါ။ ဥပမာ၊ file 10 ခိုကို menory stick ထဲ ကူ်းထညဲ့်တယ်။ ရိုတ်တရက် ကူ်းရင််းတေ််းလေ််း memory stick ဖပြုတ်သာွေ ်းတယ် ဆပ ို ါေ။ို ဲ့ ဒီနေရာမာ rsync ဟာ file နတွေကို အေအဆ်းို ဖပေ်ကူ်း၊ file ထပ်နေရင် replace လိုပ်ေရာ မလိုပဲ၊ လိုအပ်တဲန ဲ့ ေရာကနေ synchronize လိုပ်ပပီ်း ကူ်းသွော်းပါလမ်မ ဲ့ ယ်။ အချေ်ေည််းေည််း ပိုကကာနပမယဲ့် save ဖြေ်ပါတယ်။ ဒါကနတာဲ့ rsync ရဲ ဲ့ အလိုပ်လိုပ်တဲဲ့ သနဘာ တရာ်းပါပဲ။ rsync ကို အသ်းို ဖပြုချင်တဲအ ဲ့ ခါ သမာ်းရို ်းကျ cp ဆတ ို ဲဲ့ command အော်း rsync ကို -av ဆတ ို ဲဲ့ option ေဲ ဲ့အသ်းို ဖပြုလိုက်ရို ပါပဲ။ ဥပမာ၊ current directory ထဲက saisai.mp3 ဆိုတဲဲ့ file ကို /mnt/ နအာက်က songdrive ဆီ rsync ေဲ ဲ့ကူ်းမယ် ဆပ ို ါေ။ို ဲ့ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ rsync -av snow.mp3 /mnt/songdrive ဥပမာ၊ tom ဆတ ို ဲဲ့ user သည် network နပေါ်က တေ်ဖခာ်းေက်တေ်လို်းရဲ ဲ့ jerry ဆတ ို ဲဲ့ user ဆီက /home/jerry/ နအာက်မာရတဲ၊ဲ့ file1 ကို လမ််းကူ်းမယ် ဆပ ို ါေ။ို ဲ့ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ rsync [email protected]:/home/jerry/file1 /home/tom/ jerry ရဲ password ကို နတာင််းပါလမ်မ ဲ့ ဲ့ ယ်။ ထညဲ့်နပ်းလိုက်နပါ။ဲ့ ယခင် သ်းို နေကျ cp/scp အော်း rsync -av ကို အသ်းို ဖပြုသွော်းတဲဲ့ သနဘာပါပဲနော်။ rsync အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (28-6-2018)



100



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### sftp (secure file transfer protocol) ##### ခိုတေ်ခါ နဖပာမာကနတာဲ့ file transfer protocol အနကကာင််းပါ။ ရို ်းရို ်း ftp မဟိုတ်တဲဲ့ secure ဖြေ်တဲဲ့ sftp နပါ။ဲ့ copy ကူ်းတာထက် ပိုအဆင်နဖပပါတယ်။ ဒါနပမယဲ့်လည််း အသ်းို ေည််းပါတယ်နော်။ filezilla တဘာတ ို ဲ့ ို ဲ့ client နတွေကိုပဲ အသ်းို မျာ်းပါတယ်။ ဒါနပမယဲ့် သထာ်းသငလ ftp ်ဲ့ ို ဲ့တင်နပ်းလက ို ် ပါတယ်နော်။ #installation sftp ကို အသ်းို ဖပြုနင ို ြ ် ို vsftpd ကို install လိုပ်ရပါတယ်။ မရခဲဲ့ရင်နပါ။ဲ့ yum install vsftpd ဲ့ ပပီ်းရင် systemctl enable vsftpd systemctl start vsftpd #concept network နပေါ်က ေက်နတွေ တေ်ခိုေ ဲ ဲ့ တေ်ခို အကကာ်း sftp အသ်းို ဖပြုပပီ်း file နတွေကို transfer လိုပ်ရာမာ file upload | file download ပိုေေဲသွေ ို ဲဲ့ ဲ့ ာ်းပါတယ်။ upload လိုပ်ချင်ရင် put ဆတ command ကို သ်းို ေွေဲရပါတယ်။ download လိုပ်ချင်ရင် get ဆတ ို ဲဲ့ command ကို သ်းို ေွေဲရပါတယ်။ #examples ဥပမာ၊ jerry ရဲ ေက် ထက ဲ ို မမရဲ current directory နအာက်က file1 ဆတ ို ဲဲ့ file ကို ပမယ် ို ဲ့ ဆပ ို ါေ။ို ဲ့ ဲ့ ဲ့ jerry ရဲ ip ဲ့ က 192.168.100.1 ထာ်းပါနတာ။ဲ့ jerry ေဲ ဲ့ ချတ်ဆက်မြို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax က နအာက်ပါအတိုင်း် ပါ။ sftp [email protected] ဒါဆရ ို င် sftp ရဲ custom shell နလ်း ကျလာပါလမ်မ ဲ့ ဲ့ ယ်။ နအာက်ပါပိုေမျြု်းေဲနပါ ဲ့ ။ဲ့ sftp> အဲဒ ီ shell ထဲမာ ls, mkdir ေတဲဲ့ command နတွေ အသ်းို ဖပြုနင ို ပ ် ါတယ်။ အေဖပေ်နကာက်ရရင်၊ jerry ဆီ file upload လိုပ်မာ ဖြေ်တဲအ ဲ့ တွေက် put ဆတ ို ဲဲ့ command ကို သ်းို ရပါမယ်။ sftp> put file1 နပါ။ဲ့ ဒီအခါ file1 ဟာ jerry ဆီ နရာက်သာွေ ်းပါလမ်မ ို ဲ့ ဲ့ အပိုင်း် ပါ။ ဲ့ ယ်။ ဒါက file ပတဲ file ကို download ဆွေခ ဲ ျင်ရင် get ဆတ ို ဲဲ့ command ကို သ်းို ရပါတယ်။ ဥပမာ၊ jerry ဆီက file2 ဆတ ို ာနလ်းကို download ဖပေ်ဆမ ွေဲ ယ် ဆပ ို ါေ။ို ဲ့ download ဆွေမ ဲ ာ ဖြေ်လို ဲ့ အသ်းို ဖပြုရမယဲ့် command က get ပါ။ sftp> get file2 နပါ။ဲ့ ဒါဆို jerry ဆီက file2 ဟာ ကိုယ်ရ ဲ့ ဲ current directory ထဲ နရာက်လာပါလမ်မ ဲ့ ဲ့ ယ်။ တိုတိုရင််းရင််းပါပဲနော်။ sftp အသ်းို ဖပြုပပီ်း network နပေါ်မာ file နတွေ နပ်းပို ဲ့ (put) ရယူ (get) တဲဲ့ အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (1-7-2018)



101



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### identifying file system and device ##### ခိုတခါ linux မာ file system ေဲ ဲ့device နတွေကို ေေ်နဆ်းတဲအ ဲ့ နကကာင််း နလဲ့လာကကညဲ့်ရနအာင်။ ောေဲေ ဲ ရှု ပ်သလို ထင်ရနပမယဲ့် နသချာနလ်း နအ်းနအ်းနဆ်းနဆ်း ြတ်သာွေ ်းနပ်းပါနော်။ linux မာ တပ်ဆင်ထာ်းတဲဲ့ hard disk, cd drive ေတဲဲ့ storage device နတွေကို /dev နအာက်မာ ကကညဲ့်ရှု နင ို ပ ် ါတယ်။ ပထမဆ်းို နေရာမာ ရတဲဲ့ hard drive ကို /dev/sda လို ဲ့ သတ်မတ်ပပီ်း ဒိုတယနေရာမာ ရတဲဲ့ hard drive ကို /dev/sdb လို သတ် မတ်ပါတယ်။ ဲ့ တေ်ြေ်၊ ပထမဆ်းို hard drive (/dev/sda) ရဲ ဲ့ primary partition ကို sda1 ၊ နောက်ထပ် partition ရနသ်းရင် sda2 လို သတ် မတ်ပပီ်း၊ ဲ့ ဒိုတယ hard drive (/dev/sdb) ရဲ ဲ့ primary partition ကို sdb1 ၊ နောက်ထပ် partition ရနသ်းရင် sdb2 လို သတ် မတ်ပါတယ်။ ဲ့ ls -l ေဲ ဲ့ နခေါ် ကကညဲ့်တအ ဲဲ့ ခါ permission ရဲ ဲ့ နရ ျို့ မာ file ဆရ ို င် - သနကေတ၊ directory ဆရ ို င် d သနကေတ၊ hard drive ဆရ ို င် block device ကို ကိုယ်ော်းဖပြုတဲဲ့ b သနကေတ ပါနလဲ့ရပါတယ်။ ဒါကို ls -l /dev/sda လို နခေါ် ကကညဲ့်နင ို ပ ် ါတယ်။ ဲ့ file system ေဲ storage device နတွေရဲ size၊ တပ်ဆင်ထာ်းတဲဲ့ mount point နတွေကို ကကညဲ့်ရှုချင်ရင် ဲ့ ဲ့ df ဆတ ို ဲဲ့ command ကို -h ဆတ ို ဲဲ့ option ေဲ တွေ ဲ့ ဲသ်းို ရပါတယ်။ နအာက်ပါအတိုင်း် နပါ။ဲ့ df -h file သမဟို ို ဲ့ တ် directory တေ်ခိုဟာ storage ပမာဏ ဘယ်နလာက် နေရာယူထာ်းသလဲ သချင်ရင် du ဆတ ို ဲဲ့ command ကို -h ဆတ ို ဲဲ့ option ေဲ ဲ့ တွေဲသ်းို ရပါတယ်။ဥပမာ၊ /root ဆတ ို ဲဲ့ directory ဟာ ဘယ် size ရသလဲ ဘယ်နလာက်နေရာ ယူထာ်းသလဲ ကကညဲ့်မယ် ဆပ ို ါေ။ို ဲ့ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ du -h /root မမေက်မာ storage device ဘယ်နေ်ခို ရသလဲ၊ size ဘယ်နလာက်လဲ၊ ဘယ်နေရာမာ mount လိုပ် ချတ်ဆက်ထာ်းသလဲ သလိုရင် lsblk ဆတ ို ဲဲ့ command ေဲ ဲ့ နခေါ် ကကညဲ့်နင ို ပ ် ါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ lsblk partition တေ်ခိုရဲ file system သတ်မတ်ချက်နတွေကို ကကညဲ့်ချင်ရင် file ဆိုတဲဲ့ command ကို -sL ဲ့ ေဲ ဲ့တွေဲသ်းို ရပါတယ်။ ဥပမာ၊ ပထမဆ်းို hard drive (sda) ရဲ ပထမဆ ်းို partition (sda1) ရဲ file ဲ့ ဲ့ system ကို ကကညဲ့်မယ် ဆပ ို ါေ။ို ဲ့ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ file -sL /dev/sda1



102



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



partition နတွေရဲ ဲ့ UUID (universal unique identifier) ေဲ ဲ့ file system သတ်မတ်ချက်နတွေကို ကကညဲ့်ချင်ရင် blkid ဆတ ို ဲဲ့ command ကို သ်းို ရပါတယ်။ terminal မာ blkid လို ဲ့ ရို က် enter နခါက်ရို ပါပဲ။ blkid storage device နတွေရဲ file system ကို ေေ်နဆ်းလိုတအ ဲဲ့ ခါ fsck ဆတ ို ဲဲ့ command ကို -N ဆတ ို ဲဲ့ ဲ့ option ေဲ တွေ ဲ့ ဲပပီ်း အသ်းို ဖပြုရပါတယ်။ ဥပမာ၊ ပထမဆ်းို hard drive (/dev/sda) ရဲ ပထမဆ ်းို partition (/dev/sda1) ကို ေေ်နဆ်းမယ် ဲ့ ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ fsck -N /dev/sda1 #mounting_concept cd drive နတွေ usb stick နတွေ partition နတွေကို /mnt/ နအာက်မာ directory တေ်ခို သတ်မတ်ပပီ်း ချတ်ဆက်နပ်းထာ်းလို ရပါတယ် ။ ဒါကို mount လိုပ်တယ်လို နခေါ် ဲ့ ဲ့ ပါတယ်။ ဥပမာ၊ ပထမဆ်းို hard drive (sda) ရဲ ဲ့ပထမဆ်းို partition (sda1) ကို /mnt/mydata ဆတ ို ဲဲ့ directory မာ ချတ်ဆက်မယ် ဆပ ို ါေ။ို ဲ့ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ mount /dev/sda1 /mnt/mydata ဥပမာ၊ cd drive (/dev/cdrom) ကို /mnt/mycd ဆတ ို ဲဲ့ directory မာ ချတ်ဆက်မယ် ဆပ ို ါေ။ို ဲ့ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ mount /dev/cdrom /mnt/mycd mount လိုပ် ချတ်ဆက်ထာ်းတာနတွေကို ဖပေ်ဖြြုတ်မယ်ဆရ ို င် umount ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုရပါတယ်။ ဥပမာ၊ /mnt/mycd မာ ချတ်ဆက်နပ်းထာ်းတဲဲ့ cd drive ကို ဖပေ်ဖြြုတ်မယ် ဆိုပါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ umount /mnt/mycd ဒီလို umount ေဲ ဲ့ ဖပေ်ဖြြုတ်တာ နအာင်ဖမင်မှု ရမရ ဖပြုတ်မဖပြုတ် ေေ်နဆ်းချင်တအ ဲဲ့ ခါ lsof ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုရပါတယ်။ ဥပမာ၊ /mnt/mycd မာ ချတ်ဆက်နပ်းထာ်းတဲဲ့ cd drive ကို umount /mnt/mycd ဆိုပပီ်း ဖြြုတ် လိုက်ပပီ။ ဒါကို ဖပြုတ်မဖပြုတ် ဖပေ်ကကညဲ့်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ lsof /mnt/mycd မမေက်မာ ဘယ် storage device နတွေ ဘယ်လို တပ်ဆင်ထာ်းသလဲ သလိုရင် mount ကို grep ေဲ ဲ့ တွေဲြက် အသ်းို ဖပြုနင ို ပ ် ါနသ်းတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။



103



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



mount | grep "^/dev" storage device နတွေကို system boot လိုပ်တာေဲ ဲ့ မမ အလိုရတဲဲ့ directory မာ auto ချတ်ဆက် နအာင် သတ်မတ်နပ်းထာ်းလရပါတယ် ို ဲ့ ။ ဒီလို သတ်မတ်ြိုအတွေ က်ကနတာဲ့ /etc/fstab ဆတ ို ဲဲ့ file ဲ့ ထဲမာ ေင်နရာက်ပပီ်း source drive/partition နတွေ mount point နတွေကို နရ်းသာ်းနပ်း ရပါတယ်။ mount ေဲ ဲ့ ပတ်သက်တာနတွေကို နောက်လာမယဲ့် သင်ခေ််းောမာ အနသ်းေတ် ရင််းဖပပါ မယ်နော်။နလာနလာဆယ် ဒီနလာက်ေ ဲ ဲ့ော်းပါရနေ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (2-7-2018)



104



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### how to set time with timedatectl command ##### linux မာ time ေဲ ဲ့ သက်ဆင ို တ ် ာနတွေကို ေီမြို ဲ့ အတွေက် date ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုတဲဲ့ အပိုင်း် ကို ယခင်က တင်ဖပခဲဲ့ဘ်းူ ပါပပီ။ အခိုတေ်ခါ linux 7 မာ ပါေင်လာတဲဲ့ timedatectl ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုတဲဲ့ အပိုင်း် ကို တင်ဖပပါမယ် ။ နလဲ့လာကကညဲ့်ကကတာနပါ။ဲ့ ဲ့ ၁။ system ရဲ ဲ့ current date ေဲ ဲ့ time ကို ကကညဲ့်ချင်ရင် timedatectl status ကို သ်းို ပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ timedatectl status ၂။ နေေွေဲ့ ဲ ေဲ အချ ေ်တိုက်ချင်ရင် timedatectl ကို set-time ေဲ တွေ ဲ့ ဲ့ ဲသ်းို ရပါတယ်။ ဥပမာ၊ current date ကို 2018-07-20 ရက်အဖြေ် သတ်မတ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ timedatectl set-time "2018-07-20" ဥပမာ၊ current time ကို 05:00:00 ောရီ အဖြေ် သတ်မတ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ timedatectl set-time "05:00:00" ဥပမာ၊ date ေဲ ဲ့ time ကို တေ်ပပြုင်တည််း သတ်မတ်ချင်တယ် ဆပ ို ါေ။ို ဲ့ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ timedatectl set-time "2018-07-20 05:00:00" ၃။ linux မာ hardware clock ကို real time clock (rtc) လို နခေါ် ဲ့ ပါတယ်။ rtc ကို local timezone ေဲ ဲ့ set လိုပ်ချင်ရင် set-local-rtc ေဲ ဲ့ တွေဲသ်းို ရပါတယ်။ set-local-rtc မာ 1 ေဲ ဲ့ 0 ဆပို ပီ်း တေ်ြို်း ၂ ခို ရပါတယ်။ 1 ဆရ ို င် yes ဖြေ်ပပီ်း 0 ဆရ ို င် no လို သတ် မတ်ပါတယ်။ rtc ကို local timezone ေဲ ဲ့set ဲ့ လိုပ်မယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ timedatectl set-local-rtc 1 rtc ကို local timezone ေဲ unset လိုပ်မယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ ဲ့ timedatectl set-local-rtc 0 ၄။ system ရဲ time ကို remote NTP Server ရဲ time ေဲ ဲ့ synchronizing လိုပ်ချင်ရင် မမေက်ရဲ ဲ့ ဲ့ ဲ့ network time protocol (ntp) ကို on ထာ်းြို ဲ့ လပ ို ါတယ်။ timedatectl ကို set-ntp ေဲ ဲ့ တွေဲသ်းို ရ ပါတယ်။ set-ntp မာ true ေဲ false ဆပို ပီ်း တေ်ြို်း ၂ ခို ရပါတယ်။ true ဆရ ို င် ntp သည် yes ဖြေ်ပပီ်း ဲ့ false ဆရ ို င် ntp သည် no ပါ။ ntp ကို NTP Server ေဲ synchronize လိုပ်မယ် ဆပ ို ါေ။ို ဲ့ command ဲ့ syntax က နအာက်ပါအတိုင်း် ပါ။ timedatectl set-ntp true ntp ကို NTP Server ေဲ ဲ့ synchronize မလိုပ်ဘ်းူ ဆပ ို ါေ။ို ဲ့ command syntax က နအာက်ပါ အတိုင်း် ပါ။ timedatectl set-ntp false ၅။ timezone ကို ကကညဲ့်ချင်ရင် timedatectl ကို grep ေဲ ဲ့ တွေဲသ်းို ရပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ timedatectl | grep Time timezones နတွေ အာ်းလို်းကို ဖပသနပ်းနေချင်ရင် list-timezones ေဲ ဲ့ တွေဲသ်းို ရပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ timedatectl list-timezones



105



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၆။ မမရဲ ဲ့ location ေဲ ဲ့ သက်ဆင ို တ ် ဲဲ့ timezone ကို ရာနြွေလိုရင် list-tinezones ကို grep -o ေဲ ဲ့ တွေဲသ်းို ရပါတယ်။ ဥပမာ၊ Asia က Y ေဲေတဲ ို ါေ။ို ဲ့ command syntax ကနတာဲ့ နအာက်ပါ ဲ့ ဲ့ timezone ကိုရာမယ်ဆပ အတိုင်း် ပါ။ timedatectl list-timezones | grep -o "Asia/Y.*" ၇။ local timezone ကို set လိုပ်ချင်ရင် set-timezone ေဲ တွေ ဲ့ ဲသ်းို ရပါတယ်။ ဥပမာ၊ Asia/Yangon ကို set လိုပ်မယ်ဆိုပါေ။ို ဲ့ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ timedatectl set-timezone "Asia/Yangon" ၈။ မမ အလိုရရာ location အတွေက် timezone ကို တေ်ဆငခ ်ဲ့ ျင််း သတ်မတ်သာွေ ်းချင်ရင် tzselect ကို အသ်းို ဖပြုနင ို ပ ် ါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ tzselect ၉။ UTC ကို set လိုပ်ြို command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ ဲ့ timedatectl set-timezone UTC linux နပေါ်မာ timedatectl ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုပပီ်း date and time ေဲ ဲ့ သက်ဆင ို တ ် ာ နတွေကို ေီမတဲဲ့ အပိုင်း် ကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (3-7-2018)



##### linking, hard link, soft link ##### windows system မာဆိုရင် file နတွေ folder နတွေကို shortcut ထိုတ်ထာ်းနင ို တ ် ာ သမယ် ထင်ပါ တယ်။ linux မာလည််း အလာ်းတူပဲ၊ file ေဲ ဲ့ directory နတွေကို shortcut ပိုေမျြု်း ထိုတ်ထာ်းလရပပီ ို ဲ့ ်း၊ ဒါကို linking လိုပ်တယ်လို သ ဲ့ ်းို နှုေ်း် ပါတယ်။ linking မာ ၁။ hard link ၂။ soft link လို ၂ဲ့ မျြု်း ရပါတယ်။



106



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၁။ hard link : file နတွေကို link ထိုတ်တာကို hard link လို ဲ့နခေါ်ပါတယ်။ ln ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုရပါတယ်။ ဥပမာ၊ current user က tom လို ဲ့ ထာ်းပါနတာ။ဲ့ /etc/named.conf ဆတ ို ဲဲ့ file ကို tom ရဲ ဲ့ Desktop ဆီ shortcut1 ဆတ ို ဲဲ့ အမည်ေ ဲ ဲ့ link ထိုတ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax က နအာက်ပါအတိုင်း် ပါ။ ln /etc/named.conf /home/tom/desktop/shortcut1 ဒီနေရာမာ တေ်ခို သထာ်းရမာက၊ link ထိုတ်နတာမ ို င် absolute path ကို အသ်းို ဖပြုနပ်းရမယ် ဲ့ ယ်ဆရ ဆတ ို ာပါပဲ။ ထူ်းဖခာ်းချက်အနေေဲ ဲ့ /etc/ နအာက်က named.conf ကို ြျက်လက ို ်ရင်နတာင် /home/tom/Desktop နအာက်က shortcut1 မှြော content ကတွ မ က်စ်းီ က ်ြပါလမ်မ ဲ့ ယ်။ ဒါက hard link ရ ထ်းခြြော်းြ က်နပါ။ဲ့ hard link ကိ၊ု file ကတွ link ထုတဖ ် ို အတွက် အသ်းု ခ ြုလိရ ု ါတယ်။ ၂။ soft link : directory နတွေကို link ထိုတ်တာကို soft link လို ဲ့ နခေါ်ပါတယ်။ soft link ထိုတ်ြို ဲ့ အတွေက် ln ကို -s ဆတ ို ဲဲ့ option ေဲ ဲ့တွေဲြက် အသ်းို ဖပြုနပ်းရို ပါပဲ။ ဥပမာ၊ current user က tom လို ထာ်းပါနတာ ။ဲ့ /var/ နအာက်က log ဆတ ို ဲဲ့ directory ကို tom ဲ့ ရဲ ဲ့ Desktop ဆီ shortcutoflog ဆတ ို ဲဲ့ အမည်ေ ဲ ဲ့ link ထိုတ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax က နအာက်ပါအတင ို ်း် ပါ။ ln -s /var/log /home/tom/desktop/shortcutoflog soft link မာနတာဲ့ မူလ directory ကို ြျက်လိုက်ရင် link ထိုတ်ထာ်းတဲဲ့ ditectory ပါ ပျက်ပါတယ်။ ဒါက soft link ရဲ အာ်းေည် ်းချက်နပါ။ဲ့ ဲ့ hard link ဖြေ်နေ soft link ဖြေ်နေ၊ တူညီတဲဲ့ file system တေ်ခိုတည််း နပေါ်မာပဲ link ထိုတလ ် ို ဲ့ ရပါတယ်။ link ထိုတ်မယဲ့် source ေဲ destination တဟာ ို ဲ့ တူညီတဲဲ့ file system တေ်ခိုတည််း နပေါ်မာ ဲ့ ရနေြို ဲ့ လိုပါတယ်။ ဆရ ို ရင်၊ linux system နပေါ်မာ file ေဲ ဲ့ directory နတွေကို linking လိုပ်တဲဲ့ အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (4-7-2018)



107



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### finding via linux terminal ##### တင်ြူ်းသမျှ ရည်လျာ်းပပီ်း လက်ေင်တဲဲ့ post တေ်ခိုပါပဲ။ ကဲ ! ေရနအာင် windows operating system မာ file နတွေ folder နတွေကို search ေဲ ဲ့ရာနြွေနင ို တ ် ာ သလမ်မ ဲ့ ယ်လို ဲ့ ယူဆပါတယ်။ linux မာလည််း အလာ်းတူ GUI ကနေ သက်သက်သာသာ ရာနြွေနင ို ပ ် ါတယ်။ အဲ ! terminal ကနေ တေ်ဆင်ဲ့ ဆရ ို င်နတာဲ့ find ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုပပီ်း ရာနြွေနင ို ် ပါတယ်။ ဒီလို ရာနြွေရာမာ -> ၁။ finding with name ၂။ finding based on type ၃။ finding based on their permissions ၄။ finding based on owner and group ၅။ finding based on date and time ၆။ finding based on size ဆပို ပီ်း ၆ ပိုင်း် ရပါတယ်။ ရှု ပ်နထွေ်းသနယာင် ရနပမယဲ့် တကယ်နတာဲ့ ရို ်းရင််းပါတယ်။ နလဲ့လာကကညဲ့်ရနအာင်။ ၁။ finding with name file တေ်ခိုကို ရာြိုအတွေ က် -name ဆတ ို ဲဲ့ option ကို တွေဲသ်းို ရပါတယ်။ ဲ့ ဥပမာ၊ sshd_config ဆတ ို ဲဲ့ file ကို root directory / ကနေ ေရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax နအာက်ပါအတိုင်း် ပါ။ find / -name sshd_config file နတွေကို ရာနြွေရာမာ အမည် အတအကျမသရင် wild card * နတွေေတွေ ဲ ဲ့ ဲြက်ပပီ်း ရာနြွေနင ို ် ပါတယ်။ ဥပမာ၊ .txt ေဲ ဆ ို ါေ။ို ဲ့ command syntax ကနတာဲ့ နအာက်ပါ ဲ့ ်းို တဲဲ့ file နတွေကို ရာမယ် ဆပ အတိုင်း် ပါ။ find / -name "*.txt" ဥပမာ၊ /etc/ နအာက်မာ passwd ဆတ ို ဲဲ့ file ကို ရာမယ်။ ဒါနပမယဲ့် file ကို အကိုေ ် မမတ်မဘူ်း။ pass ပဲ မတ်မတယ် ဆပ ို ါေ။ို ဲ့ နအာက်ပါအတိုင်း် wild card * ေဲ ဲ့တွေဲြက်ပပီ်း ရာနြွေနင ို ပ ် ါတယ်။ find /etc -name "*pass*" file နတွေကို ရာနြွေရာမာ capital letter, small letter မခွေဲဖခာ်းပဲ ရာနြွေမယ်ဆို -i ဆတ ို ဲဲ့ option ကို အသ်းို ဖပြုရပါတယ်။ ဥပမာ၊ /var/ နအာက်မာ messages ဆတ ို ဲဲ့ အမည်ပါတဲဲ့ file နတွေကို ရာချင်တယ်။ ောလို်း အကကီ်း အနသ်း မခွေဲဖခာ်းဘူ်း။ အမည်ကိုလည််း တတကျကျ မသဘူ်းဆပ ို ါေ။ို ဲ့ -i ေဲ wild card * ကို တွေဲြက်ပပီ်း ဲ့ နအာက်ပါအတင ို ်း် ရာနြွေနင ို ပ ် ါတယ်။ find /var -i -name *messages* file အမည်နတွေကို အနဖခဖပြုပပီ်း find ေဲ ဲ့ ရာနြွေတဲဲ့ ေည််းလမ််းနတွေကနတာဲ့ ဒီနလာက်ပါပဲ။ အသ်းို လည််း မျာ်းပါတယ်နော်။



108



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၂။ finding based on type type ကို အနဖခဖပြုပပီ်း ရာနြွေတဲအ ဲ့ ခါ -type option ကို အမျြု်းအော်းကိုကယ ို ်ော်းဖပြုတဲဲ့ ထပ်တို်း option ၅ မျြု်းေဲ ဲ့ တွေဲြက် အသ်းို ဖပြုရပါတယ်။ -type ေဲ ဲ့ တွေဲြက် အသ်းို ဖပြုရမယဲ့် ထပ်တို်း option နတွေကနတာဲ့ -> ၁။ file ကို ကိုယ်ော်းဖပြုတဲဲ့ f ၂။ directory ကို ကိုယ်ော်းဖပြုတဲဲ့ d ၃။ soft link ကို ကိုယ်ော်းဖပြုတဲဲ့ l ၄။ hard link ကို ကိုယ်ော်းဖပြုတဲဲ့ f -links ၅။ block device ကို ကိုယ်ော်းဖပြုတဲဲ့ b တပဲ ို ဲ့ ဖြေ်ပါတယ်။ ဥပမာ၊ / ကနေ ေပပီ်း .php ေဲ ဆ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ဲ့ ်းို တဲဲ့ file နတွေကို ရာမယ် ဆပ ကနတာ နအာက်ပါအတင ို ်း် ပါ။ find / -name -type f "*.php" ဥပမာ၊ /etc နအာက်မာ sysconfig ဆတ ို ဲဲ့ directory ကို ရာမယ် ဆိုပါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ find /etc -name -type d sysconfig ဥပမာ၊ / နအာက်ကနေ ေပပီ်း empty ဖြေ်နေတဲဲ့ file နတွေကို ရာမယ် ဆိုပါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ find -type f -empty ဥပမာ၊ / နအာက်ကနေ ေပပီ်း empty ဖြေ်နေတဲဲ့ directory နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ find -type d -empty ဥပမာ၊ / နအာက်ကနေေပပီ်း soft link ချတ်ထာ်းတဲဲ့ file နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ find / -type l (အယ်လအ ် ကသ်း) ဥပမာ၊ / နအာက်ကနေေပပီ်း hard link ၁ ခိုထက် ပိုချတ်ထာ်းတဲဲ့ file နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ find / -type f -links +1 ဥပမာ၊ /dev နအာက်က storage block device နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ find /dev -type b type ကို အနဖခဖပြုပပီ်း find ေဲ ရ ဲ့ ာနြွေတဲဲ့ ေည််းလမ််းနတွေနကနတာဲ့ ဒီနလာက်ပါပဲ။ ၃။ finding based on their permission ဒါကနတာဲ့ ရင််းပါတယ် မမ ရာလိုတဲဲ့ file ကို permission နပေါ် မူတည်ပပီ်း ရာနြွေတာပါ။ -perm ဆတ ို ဲဲ့ option ကို အသ်းို ဖပြုရပါတယ်။ ဥပမာ၊ / နအာက်ကနေ ေပပီ်း permission 750 နပ်းထာ်းတဲဲ့ file နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြု ရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ find / -type f -perm 750



109



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ဥပမာ၊ / နအာက်ကနေ ေပပီ်း permission 750 နပ်းထာ်းတဲဲ့ directory နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ find / -type d -perm 750 permission နပေါ်မူတည်ပပီ်း ရာနြွေရာမာ နြေါ် ဖပထာ်းတဲဲ့ permission ေဲ ဲ့ ဆေက ် ဲ့ ျင်ဘက် file ကို ရာချင်ရင် ! ဆတ ို ဲဲ့ ထပ်တို်း option နလ်းကို ထညဲ့်နပ်းရပါတယ်။ ဥပမာ၊ / နအာက်ကနေ ေပပီ်း permission 750 မဟိုတ်တဲဲ့ file နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ find / -type f -perm ! 750 ဥပမာ၊ / နအာက်ကနေ ေပပီ်း permission 750 မဟိုတ်တဲဲ့ directory နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ find / -type d -perm ! 750 ဥပမာ၊ user အတွေက် special permission နပ်းထာ်းတဲဲ့ file နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြု ရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ find / -perm /u=s ဥပမာ၊ group အတွေက် special permission နပ်းထာ်းတဲဲ့ file နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြု ရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ find / -perm /g=s ဥပမာ၊ other အတွေက် special permission နပ်းထာ်းတဲဲ့ file နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြု ရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ find / -perm /o=t ဥပမာ၊ user အတွေက် read only permission နပ်းထာ်းတဲဲ့ file နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြု ရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ find / -perm /u=r ဥပမာ၊ group အတွေက် read only permission နပ်းထာ်းတဲဲ့ file နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ find / -perm /g=r permission ကို အနဖခဖပြုပပီ်း find ေဲ ဲ့ရာနြွေတဲဲ့ ေည််းလမ််းနတွေနကနတာဲ့ ဒီနလာက်ပါပဲ။ ၄။ finding based on owner and group ဒါကနတာဲ့ user နတွေ group နတွေ user id (uid) နတွေ group id (gid) နတွေနပေါ် မူတည်ပပီ်း ရာနြွေ တဲဲ့ သနဘာပါ။ ဥပမာ၊ student ဆတ ို ဲဲ့ user ပိုငတ ် ဲဲ့ file နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ find -user student ဥပမာ၊ user id 1000 က ပိုငဆ ် င ို တ ် ဲဲ့ file နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ find / -uid 1000 ဥပမာ၊ hacking ဆတ ို ဲဲ့ group ထဲမာ ပါတဲဲ့ file နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ find -group hacking ဥပမာ၊ group id 1000 က ပိုငဆ ် င ို တ ် ဲဲ့ file နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ find / -gid 1000



110



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ဥပမာ၊ student ဆတ ို ဲဲ့ user ေဲ ဲ့ hacking ဆတ ို ဲဲ့ group က ပိုငတ ် ဲဲ့ file နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ find -user student -group hacking user ေဲ group နပေါ် မူတည်ပပီ်း ရာနြွေတဲဲ့ ေည််းလမ််းနတွေနကနတာဲ့ ဒီနလာက်ပါပဲ။ ဲ့ ၅။ finding based on date and time ဒါကနတာဲ့ ရက်ေဲေ ွေ ဲ ဲ့အချေ်နပေါ် မူတည်ပပီ်း ရာနြွေတဲဲ့ ေည််းလမ််းနပါ။ဲ့ ဥပမာ၊ ပပီ်းခဲဲ့တဲဲ့ ရက် ၅၀ က modify လိုပ်ထာ်းတဲဲ့ file နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ -mtime ဆတ ို ဲဲ့ option ကို သ်းို ရပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ find -mtime 50 ဥပမာ၊ ပပီ်းခဲဲ့တဲဲ့ ရက် ၅၀ က access လိုပ်ခထာ်းရတဲဲ့ file နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ -atime ဆတ ို ဲဲ့ option ကို သ်းို ရပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ find -atime 50 ဥပမာ၊ ပပီ်းခဲတ ဲ့ ဲဲ့ ရက် ၅၀ ေဲ ဲ့ ၁၀၀ ကကာ်းက modify လိုပ်ထာ်းတဲဲ့ file နတွေကို ရာမယ် ဆိုပါေ။ို ဲ့ mtime ဆတ ို ဲဲ့ option ကိုပဲ သ်းို ရပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ find -mtine +50 -mtime -100 ဥပမာ၊ ပပီ်းခဲတ ို ဲဲ့ ဲ့ ဲဲ့ ၁ ောရီက modify လိုပ်ခထာ်းရတဲဲ့ file နတွေကို ရာမယ် ဆိုပါေ။ို ဲ့ -mmin ဆတ option ကို သ်းို ရပါတယ်။ m က modify .. min က minute နပါ။ဲ့ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ find -mmin -60 ဥပမာ၊ ပပီ်းခဲတ ို ါေ။ို ဲ့ -amin ဆတ ို ဲဲ့ option ဲ့ ဲဲ့ ၁ ောရီက access လိုပ်ခထာ်းရတဲဲ့ file နတွေကို ရာမယ် ဆပ ကို သ်းို ရပါတယ်။ a က access .. min က minute နပါ။ဲ့ command syntax ကနတာဲ့ နအာက်ပါ အတိုင်း် ပါ။ find -amin -60 ဥပမာ၊ ပပီ်းခဲတ ို ဲဲ့ ဲ့ ဲဲ့ ၁ ောရီက change လိုပ်ခထာ်းရတဲဲ့ file နတွေကို ရာမယ် ဆိုပါေ။ို ဲ့ -cmin ဆတ option ကိုသ်းို ရပါတယ်။ c က change .. min က minute နပါ။ဲ့ command syntax ကနတာဲ့ နအာက်ပါ အတိုင်း် ပါ။ find -cmin -60 date and time ကို အနဖခဖပြုပပီ်း ရာနြွေတဲဲ့ ေည််းလမ််းနတွေနကနတာဲ့ ဒီနလာက်ပါပဲ။ ၆။ finding based on size size နပေါ် မူတည်ပပီ်း ရာနြွေတဲအ ဲ့ ခါ size သတ်မတ်ချက် ၃ မျြု်းကို ထညဲ့်သင ွေ ်း် နပ်းရပါတယ်။ size သတ်မတ်ချက် ၃ မျြု်းကနတာဲ့ ၁။ K (kilobyte) ၂။ M (megabyte) ၃။ G (gigabyte) တပါပဲ ို ဲ့ ။ ဥပမာ၊ 50 migabyte ရတဲဲ့ file နတွေကို ရာမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ find / -size 50M



111



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ဥပမာ၊ 50 migabyte ေဲ ဲ့100 megabyte ကကာ်း ရတဲဲ့ file နတွေကို ရာမယ် ဆိုပါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ find / -size +50M -size -100M size နပေါ် မူတည်ပပီ်း find ေဲ ဲ့ ရာနြွေတဲဲ့ ေည််းလမ််းနတွေနကနတာဲ့ ဒီနလာက်ပါပဲ။ find အသ်းို ဖပြုပပီ်း ရာနြွေတဲဲ့ ေည််းလမ််းနတွေကို တင်ဆက်ပပီ်းပါပပီ။ ဒီ ရာနြွေေည််းနတွေအဖပင် file နတွေကို ရာနြွေပပီ်းရလာ တဲဲ့ file နတွေကို ြျက်ပေ်နင ို ပ ် ါနသ်းတယ်။ -exec rm {} \; နလ်းကို ထညဲ့်သ်းို နပ်းရို ပါပဲ။ ဥပမာ၊ /home ဆတ ို ဲဲ့ directory နအာက်က .mp3 ေဲ ဆ ဲ့ ်းို တဲဲ့ 10 megabyte နကျာ်တဲဲ့ file နတွေကို ရာပပီ်း တေ််းြျက်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ find /home -type -f -name -size +10M "*.mp3" -exec rm {} \; find ေဲ ဲ့သက်ဆင ို တ ် အ ဲဲ့ နကကာင််းနတွေကနတာဲ့ ဒီနလာက်ပါပဲ။ ဖြည််းဖြည််းချင််း မတ်သာ်းပပီ်း ြတ်သာွေ ်း ရင် ော်းလည်ရ လွေယ်ကူသာွေ ်းမာပါ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (5-7-2018)



##### controlling jobs ##### အသ်းို ေဲနပမယဲ့် သထာ်းသငတ ်ဲ့ ဲဲ့ topic တေ်ခိုပါ။ အနရ်းအနကကာင််း လိုအပ်လာတဲအ ဲ့ ခါ အသ်းို ချလို ဲ့ ရတာနပါနော် ို ်တအ ဲဲ့ ခါ job ၁ ခို ဲ့ ။ linux ရဲ ဲ့ terminal ထဲမာ command တေ်ခိုကို run လက ဖြေ်နပေါ်လာပါတယ်။ အဲဒ ဲ့ ီ job တေ်ခိုမာ --> ၁။ job id ၂။ process id ၃။ state ေဲ ဲ့ ၄။ job ဆပို ပီ်း အပိုင်း် ၄ ခို ရပါတယ်။ ဥပမာ၊ sleep 1500 လို ရ ို ဲ့ ိုက်တယ် ဆပ ို ါေ။ို ဲ့ ဒါဆို sleep 1500 ဲ့ ို က်ပပီ်း shell ကို sleep mode ပလ သည် job တေ်ခို ဖြေ်သာွေ ်းပါပပီ။ ဒီ job .. run နေေဉမာ shell နပေါ်မာ တဖခာ်း command run လို ဲ့ မရပါဘူ်း။ ၁။ ဒီ job ကို kill ချင်ရင် keyboard နပေါ်က ctrl+c ကို နပ်ပပီ်း kill နင ို ပ ် ါတယ်။ ၂။ နောက်တေ်ခိုက၊ ဒီ job ကို မရင််းလင််းပဲ sleep 1500 ဆတ ို ဲဲ့ job ကို keyboard နပေါ်က ctrl+z ကို နပ်၊ stop လိုပ်ပပီ်း background ကို ပထာ်းလ ို ဲ့ ို ဲ့ ရပါတယ်။ ဒါဆို ဒီ job ရဲ state ဟာ stop ဲ့ ဖြေ်ပပီ်း background ကို နရာက်သာွေ ်းပါလမ်မ ဲ့ ယ်။ ctrl+z



112



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၃။ ctrl+z နပ်လိုက်လို background ကို နရာက်ပပီ်း stop ဖြေ်နေတဲဲ့ job တေ်ခိုကို background ဲ့ မာ run နေနေချင်ရင် bg %jobID ဆတ ို ဲဲ့ format ကို သ်းို ပပီ်း run နင ို ပ ် ါတယ်။ ဥပမာ၊ background မာ ရပပီ်း stop ဖြေ်နေတဲဲ့ sleep 1500 ဆတ ို ဲဲ့ job ရဲ ဲ့ id က 1 ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax က နအာက်ပါအတိုင်း် ပါ။ bg %1 ၄။ ctrl+z နပ်လိုက်လို background ကို နရာက်ပပီ်း stop ဖြေ်နေတဲဲ့ job တေ်ခိုကို foreground ဲ့ ဆီဖပေ်နခါပပီ်း run နေနေချင်ရင် fg %jobID ဆတ ို ဲဲ့ format ကို သ်းို ပပီ်း run နင ို ပ ် ါတယ်။ ဥပမာ၊ sleep 1500 ဆတ ို ဲဲ့ job ရဲ ဲ့ id က 1 ဆိုပါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax က နအာက်ပါအတင ို ်း် ပါ။ fg %1 ၅။ command တေ်ခိုကို ေေ run ချင််းမာပဲ background ကို ပပပီ ို ဲ့ ်း run နေနေချင်ရင် & ဆတ ို ဲဲ့ သနကေတကို command နောက်မာ ထညဲ့်နပ်းရို ေ ဲ ဲ့အဆင်နဖပပါတယ်။ ဥပမာ၊ sleep 1500 ဆတ ို ဲဲ့ conmand ကို ေေ run ချင််း background မာသွော်း run နေချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax က နအာက်ပါအတိုင်း် ပါ။ sleep 1500 & ၆။ ဒီလို ctrl+z နပ်လိုက်လို ဲ့ background ကို နရာက်သာွေ ်းတဲဲ့ job နတွေရဲ ဲ့အနဖခအနေကို jobs ဆတ ို ဲဲ့ command ေဲ ဲ့နခေါ် ကကညဲ့်နင ို ပ ် ါတယ်။ jobs -l လို ရ ို ဲဲ့ ဲ့ ို က် enter နခါက်လိုက်ရင် job id, process id, run နေလာ်း stop ဖြေ်နေလာ်းဆတ state (အနဖခအနေ), job အမျြု်းအော်း ေတာနတွေကို နတွေျို့ ဖမင်ရပါလမ်မ ဲ့ ယ်။ ဥပမာ၊ background မာရနေတဲဲ့ job အာ်းလို်းရဲ သတ် မတ်ချက်နတွေကို ကကညဲ့်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဲ့ ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ jobs -l ဥပမာ၊ background မာ run နေတဲဲ့ job နတွေရဲအနဖခအနေ သတ်မတ်ချက်နတွေကို သီ်းသေ ် ဲ့ ဲ့ ကကညဲ့်မယ်ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ jobs -r ဥပမာ၊ background မာ stop ဖြေ်နေတဲဲ့ job နတွေရဲအနဖခအနေ သတ်မတ်ချက်နတွေကို သီ်းသေ ် ဲ့ ဲ့ ကကညဲ့်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ jobs -s ောလည််း ေည််းေည််း ရည်သာွေ ်းပါပပီ။ terminal ကနေ jobs နတွေကို ကိုငတ ် ွေယတ ် အ ဲဲ့ နကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလ်းို အဆင်နဖပပါနေ။ Yin Thu (6-7-2018)



113



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



###### controlling processes ##### ဒီတေ်ခါကနတာဲ့ linux system နပေါ်မာ run နေတဲဲ့ process နတွေကို ကိုငတ ် ယ ွေ ်မယဲ့် အနကကာင််းပါ။ ဒီအပိုင်း် က လွေယ်နပမယဲ့် အနရ်းကကီ်းသလို ကျဉ်းထဲကျပ်တည််းကျရင် တကယ်လည််း သ်းို ရပါတယ် နော်။ linux နပေါ်မာ run နေတဲဲ့ process နတွေကို ၎င််းတရဲ ို ဲ့ process id ကနေတေ်ဆင်ဲ့ ထေ််းချြုပ်ရ ဲ့ ပါတယ်။ run နေတဲဲ့ process နတွေေ ဲ ဲ့ process id နတွေကို process -aux ဆတ ို ဲဲ့ command ေဲ ဲ့ နခေါ် ကကညဲ့်နင ို ပ ် ါတယ်။ ps -aux လို ဲ့ ရို က် enter နခါက်လိုက်ရင် process နတွေေ ဲ ဲ့ သူတရဲ ို ဲ့ id ဲ့ နတွေ ကျလာပါလမ်မ က် ဲ့ ယ်။ process တေ်ခိုကို ထေ််းချြုပ်ြို အတွေ ဲ့ ၁။ kill ၂။ killall ၃။ pkill ၄။ pgrep ၅။ pstree ေတဲဲ့ command နတွေကို အသ်းို ဖပြုရပါတယ်။ ဒီအထဲကမ အသ်းို အမျာ်းဆ်းို က kill ပါ။ process နတွေကို ထေ််းချြုပ်ရာမာ အနရ်းပါတဲဲ့ options နတွေေ ဲ ဲ့သူတရဲ ို ဲ့ code no. နတွေကနတာဲ့ ဲ့ (9) SIGKILL (15) SIGTERM (18) SIGCONT (19) SIGSTOP တပါပဲ ို ဲ့ ။ ဒီအထဲက အသ်းို အမျာ်းဆ်းို က 9 ပါ။ ဥပမာ၊ process id 1500 ဆတ ို ဲဲ့ process တေ်ခိုကို KILL မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ kill -SIGKILL 1500 သမဟို ို ဲ့ တ် kill -9 1500 ဥပမာ၊ process id 1500 ဆတ ို ဲဲ့ process တေ်ခိုကို TERMINATE လိုပ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြု ရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ kill -SIGTERM 1500 သမဟို ို ဲ့ တ် kill -15 1500 ဥပမာ၊ process id 1500 ဆတ ို ဲဲ့ process တေ်ခိုကို CONTINUE ေဲ ဲ့ ဆက် run မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ kill -SIGCONT 1500 သမဟို ို ဲ့ တ် kill -18 1500 ဥပမာ၊ process id 1500 ဆတ ို ဲဲ့ process တေ်ခိုကို STOP လိုပ် ရပ်ထာ်းမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြု ရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ kill -SIGSTOP 1500 သမဟို ို ဲ့ တ် kill -19 1500 ဒါအဖပင် လက်ရ account မာ run နေတဲဲ့ process နတွေသာမက မမေက်ကို ssh ကနေ တေ်ဆင်ဲ့ ဲ့ ဖြေ်နေေင်နရာက် အသ်းို ဖပြုနေတဲဲ့ user နတွေရဲ process နတွေကိုပါ ထေ််းချြုပ်နင ို ပ ် ါနသ်းတယ်။ မမ ဲ့



114



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ေက်ကို ဘယ်သန ူ တွေ login ေင်နေသလဲဆတ ို ာကိုနတာဲ့ w -f ဆတ ို ဲဲ့ command ေဲ ဲ့ ကကညဲ့်ရှုနင ို ် ပါတယ်။ ဥပမာ၊ w -f ေဲ ကကညဲ့ ်လိုက်တအ ဲဲ့ ခါ tom ဆတ ို ဲဲ့ user ဟာ မမ ေက်ကို login ေင်ထာ်းတယ်။ tom ရဲ ဲ့ ဲ့ process နတွေကိုကကညဲ့်မယ်ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါ အတိုင်း် ပါ။ pgrep -l -u tom မမ ေက်ကို login ေင်နေတဲဲ့ user ရဲ process နတွေကို pgrep အဖပင် pstree ဆတ ို ဲဲ့ command ဲ့ သ်းို ပပီ်းလည််း



ကကညဲ့်နင ို ပ ် ါနသ်းတယ်။



အသ်းို ဖပြုရမယဲ့်



command



syntax



ကနတာဲ့



နအာက်ပါအတင ို ်း် ပါ။ pstree -p tom tom ဆတ ို ဲဲ့ user ဆီမာ run နေတဲဲ့ process id 528 ကို လမ််း kill မယ် ဆိုပါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ pkill -u tom -SIGKILL 528 kill ေဲ ဲ့ သက်ဆင ို တ ် ဲဲ့ တေ်ဖခာ်း options နတွေကို ဆက်လက်နလဲ့လာလိုရင် kill -l လို ဲ့ ရို က် enter နခါက်ပပီ်း နလဲ့လာနင ို ပ ် ါတယ်။ linux system နပေါ်မာ process နတွေကို ထေ််းချြုပ်တဲဲ့ အပိုင်း် ကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလ်းို အဆင်နဖပပါနေ။ Yin Thu (9-7-2018)



##### monitoring the system with top ##### windows မာဆရ ို င် system ကို monitoring လိုပ်ြို ဲ့ task manager ပါတာ သကကမာပါ။ အလာ်းတူပါပဲ linux မာ top ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုပပီ်း system, cpu usage, memory အနဖခအနေ ေဲ process နတွေကို live နောငက်ဲ့ ကညဲ့်နင ို ပ ် ါတယ်။ ေလိုက်ရနအာင် ! ဲ့ ၁။ system ေဲ ဲ့ process အာ်းလို်းကို ကကညဲ့်ချင်ရင် terminal မာ top လို ဲ့ ရို က် enter နခါက်ရို ပါပဲ။ command syntax ကနတာဲ့ နအာက်ပါ အတိုင်း် ပါ။ top



115



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၂။ process id နတွေကိုပဲ သီ်းသေ ် ကကညဲ့ ်မယ်ဆရ ို င် -p ဆတ ို ဲဲ့ option ေဲ ဲ့တွေဲသ်းို ရပါတယ်။ top -p ဲ့ ၃။ user တေ်ဦ်းရဲ process နတွေကိုပဲ ကကညဲ့်ချင်တဲဲ့ အခါ -u ဆတ ို ဲဲ့ option ေဲ ဲ့တွေဲသ်းို ရပါတယ်။ ဲ့ ဥပမာ၊ tom ဆတ ို ဲဲ့ user ရဲ ဲ့process နတွေကိုပဲ သီ်းသေ ် ဲ့ ကကညဲ့်မယ် ဆပ ို ါေ။ို ဲ့ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ top -u tom ၄။ idle ဖြေ်နေတဲဲ့ process နတွေကို မကကညဲ့်ဘ်းူ active ဖြေ်နေတဲဲ့ process နတွေကိုပဲ ကကညဲ့်မယ် ဆရ ို င် -i ဆတ ို ဲဲ့ option ကို တွေဲသ်းို ရပါတယ်။ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ top -i ၅။ top ေဲ ဲ့နြေါ် ဖပထာ်းတဲဲ့ result နတွေကို သမ််းထာ်းချင်ရင် keyboard နပေါ်က shift+w ကို တွေဲနပ် နပ်းရပါတယ်။ ဒီအခါ result နတွေကို /etc/ နအာက်မာ .toprc ဆတ ို ဲဲ့ file အဖြေ် save လိုပ်သာွေ ်းပါ လမ်မ ဲ့ ယ်။ /etc/.toprc top ေဲ ကကညဲ့ ်ရှုနေရာကနေ ထွေက်ချင်ရင်နတာဲ့ keyboard နပေါ်က q ကို နပ်ပပီ်း ဖပေ်ထက ွေ ်နင ို ပ ် ါတယ်။ ဲ့ top ကို အသ်းို ဖပြုပပီ်း system ေဲ process နတွေကို monitoring လိုပ်တအ ဲဲ့ နကကာင််းကနတာဲ့ ဒီနလာက် ဲ့ ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (11-7-2018)



116



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### grep ခဖင ် စြောသြော်းမ ြော်းကို ဆွထုတခ် ြင််း ##### log file နတွေ text file နတွေ process output နတွေထက ဲ ောသာ်းနတွေကို ဆွေထ ဲ တ ို ်ချင်တဲအ ဲ့ ခါ grep command ကို အသ်းို ဖပြုရပါတယ်။ အရင်ဆ်းို linux machine ကို root account ေဲ ဲ့login ေင်ပါ။ current user's home directory နအာက်မာ touch file1 ေဲ ဲ့file နလ်း ၁ ခို နဆာက်လိုက်ပါ။ touch file1 vi file1 command ေဲ ဲ့ file1 ကို vim text editor ေဲ ဲ့ ြွေငပ်ဲ့ ပီ်း နအာက်က ောနကကာင််းနလ်းနတွေကို ရို က်ထညဲ့်ပါ။ sky fly cat table blue ကဲ ! ခိုဆို grep ကို ေမ််းသပ်ြို အသင ဖ်ဲ့ ြေ်နေပါပပီ။ ဲ့ ၁။ ောလို်းအတအကျနပေါ် မူတည်ပပီ်း ောနကကာင််းကို ဆွေထ ဲ တ ို ်ချင်တဲအ ဲ့ ခါ grep နရ ျို့ မာ ောလို်း အတ အကျကို expression အနေေဲ ဲ့ထညဲ့်နပ်းရပါတယ်။ ဥပမာ၊ file1 ထဲက cat ဆတ ို ဲဲ့ ောလို်းကို ဆွေထ ဲ တ ို ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ grep "cat" file1 ၂။ ထပ်ဆ်းို ောလို်းနပေါ် မူတည်ပပီ်း ဆွေထ ဲ တ ို ်လိုတဲအ ဲ့ ခါ ^ သနကေတကို အသ်းို ဖပြုရပါတယ်။ ဥပမာ၊ c ေဲ ဲ့ ေတဲဲ့ ောနကကာင််းကို ဆွေထ ဲ တ ို ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါမတိုင်း် ပါ။ grep "^c" file1 ၃။ နောက်ဆ်းို ောလို်းနပေါ် မူတည်ပပီ်း ဆွေထ ဲ တ ို ်လိုတဲအ ဲ့ ခါ $ သနကေတကို အသ်းို ဖပြုရပါတယ်။ ဥပမာ၊ t ေဲ ဆ ဲ တ ို ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ ဲ့ ်းို တဲဲ့ ောနကကာင််းကို ဆွေထ နအာက်ပါမတိုင်း် ပါ။ grep "t$" file1 ၄။ expression ထဲမာ . * ေတဲဲ့ wild card နတွေကို အသ်းို ဖပြုပပီ်း ောနကကာင််းနတွေကို ဆွေထ ဲ တ ို ် နင ို ပ ် ါတယ်။ ဥပမာ၊ table ကို wild card သ်းို ပပီ်း ဆွေထ ဲ တ ို ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ grep "t.*e" file1 ၅။ အေ ောလို်းေဲ ဲ့ အဆ်းို ောလို်း ကကာ်းက ောလို်းနတွေကို ခေမ ် ဲ့ ေ််းပပီ်း ဆွေထ ဲ ိုတ်လိုတအ ဲဲ့ ခါ [ ] ကို အသ်းို ဖပြုရပါတယ်။



117



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ဥပမာ၊ table ဆတ ို ဲဲ့ ောလို်းမာ t ေဲ ဲ့e ကကာ်းက ောလို်းနတွေကို ခေမ ် ဲ့ ေ််းပပီ်း ဆွေထ ဲ တ ို ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ grep "t[lba]e" file1 ၆။ အေ ောလို်းေဲ ဲ့အဆ်းို ောလို်း ကကာ်းက ောလို်း အနရအတွေက်နပေါ် မူတည်ပပီ်း ဆွေထ ဲ တ ို ်ချင်တအ ဲဲ့ ခါ .\{ \} ကို အသ်းို ဖပြုရပါတယ်။ ဥပမာ၊ table ဆတ ို ဲဲ့ ောလို်းမာ t ေဲ ဲ့ e ကကာ်းက အနရအတွေက်နပေါ် မူတည်ပပီ်း ဆွေထ ဲ တ ို ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ grep "t.\{3\}e" file1 ၇။ ဆွေထ ဲ တ ို ်လိုက်တဲဲ့ ောသာ်းေဲ ဲ့ သူနအာက် က ၂ နကကာင််းကိုပါ ကကညဲ့်ချင်ရင် -A2 ဆတ ို ဲဲ့ option ကို ဲ့ သ်းို ရပါတယ်။ ဥပမာ၊ cat ေဲ ဲ့ သူနအာက် က ၂ နကကာင််းကိုပါ ကကညဲ့ခ ် ျင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ဲ့ syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ grep -A2 "cat" file1 ၈။ ဆွေထ ဲ တ ို ်လိုက်တဲဲ့ ောသာ်းေဲ ဲ့ သူအနပေါ် က ၂ နကကာင််းကိုပါ ကကညဲ့်ချင်ရင် -B2 ဆတ ို ဲဲ့ option ကို ဲ့ သ်းို ရပါတယ်။ ဥပမာ၊ cat ေဲ ဲ့ သူအနပေါ် က ၂ နကကာင််းကိုပါ ကကညဲ့်ချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ဲ့ syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ grep -B2 "cat" file1 ၉။ ောလို်းကို case-sensitive မဖြေ်ပဲ ဆွေထ ဲ တ ို ်လိုတဲအ ဲ့ ခါ -i ဆတ ို ဲဲ့ option ကို အသ်းို ဖပြုရပါတယ်။ ဥပမာ၊ cat ကို case-sensitive မဖြေ်နေပဲ ဆွေထ ဲ ိုတ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ grep -i "CAT" file1 ၁၀။ ဆွေထ ဲ တ ို ်လိုတဲဲ့ ောသာ်းကို current directory နအာက်မာ ရတဲဲ့ file တိုင်း် ကနေ ရာနြွေ ဆွေထ ဲ တ ို ်လိုတဲအ ဲ့ ခါ -r ဆိုတဲဲ့ option ကို အသ်းို ဖပြုရပါတယ်။ ဥပမာ၊ cat ကို file တိုင်း် ကနေ ရာနြွေ ဆွေထ ဲ တ ို ်နပ်းနေချင်တယ် ဆပ ို ါေ။ို ဲ့ အသို်းဖပြူရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ grep -r "cat" ၁၁။ နြေါ် ဖပလိုက်တဲဲ့ expression မပါတဲဲ့ ောနကကာင််းနတွေကိုချည််း ဆွေထ ဲ တ ို လ ် ိုတအ ဲဲ့ ခါ -v ဆတ ို ဲဲ့ option ကို အသ်းို ဖပြုရပါတယ်။ ဥပမာ၊ cat မပါတဲဲ့ ောနကကာင််းနတွေကိုချည််း ဆွေထ ဲ တ ို ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ grep -v "cat" file1 ၁၂။ expression ကို ၁ ခိုထက် ပိုနြေါ် ဖပပပီ်း ောနကကာင််းနတွေကို ဆွေထ ဲ တ ို ်လိုတအ ဲဲ့ ခါ -e ဆတ ို ဲဲ့ option ခနပ်းရပါတယ်။ ဥပမာ၊ cat ေဲ ဲ့ table ဆတ ို ဲဲ့ ောနကကာင််း ၂ ခိုကို တေ်ပပြုင်ေက် ဆွေထ ဲ တ ို ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ grep -e "cat" -e "table" file1 ကဲ ! လွေယ်ပါတယ်နော်။



118



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



grep ကို လက်နတွေျို့ သ်းို ဖပရရင် cpu info ကို ကကညဲ့်မယ် ဆပ ို ါေ။ို ဲ့ cat /proc/cpuinfo | grep -i "model" အဲလ ဲ့ ို သ်းို ရပါတယ်နော်။ grep ကို အသ်းို ဖပြုပပီ်း ောသာ်းနတွေကို ဆွေထ ဲ တ ို ်တအ ဲဲ့ နကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်းပဲ အဆင်နဖပပါနေ။ Yin Thu (13-7-2018)



### at ကို အသ်းု ခ ြု၍ job တစ်ြုကို အြ ိ ်ဇယြော်းခဖင ် run ကစခြင််း ### linux နပေါ်မာ job တေ်ခိုကို အချေ်ဇယာ်းနလ်း ဆွေပဲ ပီ်း run ခိုင်း် မယ်။ နောက် ၁ ောရီ နေရင်၊ နောက် ၅ မေေ် နေရင်၊ နောက် ၁ ရက် နေရင်၊ ေသဖြငန ်ဲ့ ပါ။ဲ့ ဒီလို run နေချင်တဲအ ဲ့ ခါ at ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုရပါတယ်။ package name က at ဖြေ်ပပီ်း သူရဲဲ့ service name က atd ပါ။ ဲ့ systemctl start atd systemctl enable atd at ကို အသ်းို ဖပြုပပီ်း နေေဉ ဲ့ လေဉ ပိုမေ်နတာဲ့ run ခိုင်း် လို ဲ့ မရပါဘူ်း။ one time ပဲ ရပါတယ်။ ဒါနကကာင ်ဲ့ သူက ဲ့ ဲ့ ို one time task scheduling လို နခေါ် ဲ့ ပါတယ်။ at ကို အသ်းို နတာဲ့ ေဲပါတယ်နော်။ ၁။ ဥပမာ၊ job တေ်ခို ကို နောက် ၅ မေေ် နေရင် run နေချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax က နအာက်ပါအတင ို ်း် ပါ။ at now+5min လို ဲ့ ရို က် enter နခါက်ပါ။ ဒီအခါ at > ဆို နပေါ်လာပပီ်း at ရဲ ဲ့ shell ထဲကို နရာက်ရသွော်းပါလမ်မ ဲ့ ယ်။ အဲဒ ီ shell ထဲမာ ကိုယ် run နေချင်တဲဲ့ job ကို ရို က်ထညဲ့် နပ်းရမာပါ။ at > echo "hello world" >> ~/file1 ခိုလို ရို က်ထညဲ့်ပပီ်းလရ ို ဲ့ ရင် ctrl + d ကို နပ်ပပီ်း ဖပေ်ထက ွေ ်ရပါမယ်။ နောက် ၅ မေေ် နေတဲအ ဲ့ ခါ current user's home directory ~/ နအာက်က file1 ထဲမာ hello world ဆတ ို ဲဲ့ ောသာ်းနလ်း နရာက်နေပါလမ်မ ဲ့ ယ်။ ဒါကနတာဲ့ at ကို အသ်းို ဖပြုပပီ်း job တေ်ခိုကို အချေ်ဇယာ်းေဲ ဲ့run ခိုင်း် တဲဲ့ သနဘာတရာ်းပါပဲ။



119



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၂။ ဒီလို ခိုင်း် နေရာမာ ဒီ job အတွေက် cpu ေဲ ဲ့ ram ပမာဏကို priority သတ်မတ်နပ်းနင ို ပ ် ါ နသ်းတယ်။ priority a ကနေ z အထ ရပပီ်း ဘာမ မသတ်မတ်ရင် default priority a ေဲ ဲ့ run ပါတယ်။ ဥပမာ၊ နောနောက job ကို priority b ေဲ ဲ့ run နေချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာ နအာက်ပါအတိုင်း် ပါ။ at -q b now+5min ၃။ ဒီလို အချေ်ဇယာ်းေဲ ဲ့ run ခိုင်း် ထာ်းတဲဲ့ job နတွေ ရမရ ကကညဲ့်ချင်ရင် atq ဆတ ို ဲဲ့ command ကို သ်းို ရပါတယ်။ at -l လလည် ို ဲ့ ်း သ်းို နင ို ပ ် ါတယ်။ ဒီအခါ schedule ဆွေထ ဲ ာ်းတဲဲ့ job နတွေကို id ေပါတ်ေ ဲ ဲ့ နြေါ် ဖပနပ်းပါလမ်မ ဲ့ ယ်။ at -l ၄။ job တေ်ခို ဘယ်လို run မလဲ သချင်ရင်နတာဲ့ at နရ ျို့ မာ -c ေဲ ဲ့task id ကိုထညဲ့် enter နခါက်ပပီ်း ကကညဲ့်နင ို ပ ် ါတယ်။ ဥပမာ၊ atq ေဲ ဲ့ ကကညဲ့်လိုက်လို ဲ့ job id 10 ကို နတွေျို့တယ်။ ဒီ job id 10 သည် ဘယ်လို run မလဲ ကကညဲ့်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ at -c 10 ၅။ job တေ်ခို ကို ဖပေ်ပပီ်း cancel လိုပ်ချင်တဲအ ဲ့ ခါ atrm ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုရပါတယ်။ ဥပမာ၊ task id 10 ကို cancel လိုပ်မယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ atrm 10 at ကို အသ်းို ချပပီ်း job နတွေကို schedule ဆွေတ ဲ အ ဲဲ့ နကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (15-7-2018)



120



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



# crontab ကို အသ်းု ခ ြု၍ job တစ်ြုကို အြ ိ ်ဇယြော်းခဖင ် ုမှ ် run ကစခြင််း # လက်နတွေျို့ လိုပ်ငေ််းခွေငမ ် ာလည််း တကယ် သ်းို နေရတဲဲ့ tool တေ်ခိုပါနော်။ daily back up script နတွေ run ြို ဲ့ ေသည်ဖြင်ဲ့ အသ်းို တညဲ့်ပါတယ်။ linux နပေါ်မာ at ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုပပီ်း job တေ်ခိုကို run ခိုင်း် တဲအ ဲ့ နကကာင််းကို နရ်းပပီ်းပါပပီ။ at အသ်းို ဖပြုရင် job တေ်ခိုကို ၁ ခါပဲ run လို ဲ့ရပါ တယ်။ one time နပါ။ဲ့ နေေဉ ်း။နေေဉ ဲ့ လေဉ ပိုမေ် ခိုင်း် နေထာ်းလို မရပါဘူ ဲ့ ဲ့ လေဉ ပိုမေ် ခိုင်း် နေထာ်း လိုတအ ဲဲ့ ခါ crontab ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုရပါတယ်။ သူရဲဲ့ package name က cronie ဲ့ ဖြေ်ပပီ်း၊ service name က crond ဖြေ်ပပီ်း၊ command က crontab ပါ။ job တေ်ခိုကို အချေ် ဇယာ်းေဲ ဲ့ပိုမေ် ခိုင်း် နေထာ်းလိုတဲအ ဲ့ ခါ crontab -e ဆိုတဲဲ့ command ကို အသ်းို ဖပြုရပါတယ်။ crontab -e လို ရ ်ဲ့ ာပါလမ်မ ဲ့ ို က် enter နခါက်လိုက်ရင် vi ေဲ ဲ့file တေ်ခို ပွေငလ ဲ့ ယ်။ အဲဒ ီ ပွေငလ ်ဲ့ ာတဲဲ့ file ထဲကို အပိုင်း် ၆ ပိုင်း် ေဲ အေဉလ ိုက် configure လိုပ်နပ်းရပါတယ်။ အဲဒ ီ အပိုင်း် ၆ ဲ့ ပိုင်း် ကနတာဲ့ --> ၁။ မိ စ် (0 to 59) ၂။ ြောရီ (0 to 23) ၃။ day of month (1 to 31) ၄။ month (1 to 12) ၅။ day of week (0 [sunday] to 6 [saturday]) { * =



ယ်က မဆို }



၆။ job script (run မယ် job) တပါပဲ ို ဲ့ ။ အဲဒ ီ format ပိုေကို /etc/crontab ဆတ ို ဲဲ့ file မာ ေင်ကကညဲ့်နင ို ပ ် ါတယ်။ ဥပမာ၊ ဂျြူလိုငလ ် ၁၉ ရက်နေ မေက် ၇ ောရီ ၃၀ မေေ် နရာက်တင ို ်း် current user's home directory ဲ့ နအာက်က Desktop နအာက်က aungsan.mp3 ဆတ ို ဲဲ့ သီချင််းကို ပွေငလ ်ဲ့ ာနေချင်တယ် ဆပ ို ါေ။ို ဲ့ crontab -e လို ရ ဲ့ ို က် enter နခါက်ပပီ်း နအာက်ပါအတိုင်း် configure လိုပ်ရပါမယ်။ i ကို နပ် insert mode ေဲ ဲ့ေင်ပပီ်း နအာက်ကအတိုင်း် နရ်း။ 30 7 19 7 * ~/Desktop/aungsan.mp3 ပပီ်းရင် Esc :wq ေဲ ဲ့ဖပေ်ထက ွေ ်နပါ။ဲ့ ဒီနေရာမာ --> 30 က မေေ်၊ 7 က ောရီ၊ 19 က day of month၊ 7 က month၊ * က ဘယ်နေမဆ ~/Desktop/aungsan.mp3 က job script ဲ့ ၊ို (နေေဉ)၊ ဲ့ ဒီလို အဓပပါယ်ရပါတယ်။ နောက် job တေ်ခို ခိုင်း် ချင်ရင် အာဒ ဲ့ ီ နအာက်မာပဲ နောက် ၁နကကာင််း ထပ်နရ်းနင ို ပ ် ါတယ်။ ဒါကနတာဲ့ crontab -e ေဲ ဲ့ job ၁ ခိုကို အချေ်ဇယာ်းေဲ ဲ့ ပိုမေ် run ခိုင်း် တဲဲ့ သနဘာတရာ်းပါ။ job နတွေ ဘယ်နေ်ခို ရလဲ သချင်ရင် crontab -l ေဲ ကကညဲ့ ်နင ို ပ ် ါတယ်။ crontab -l ဲ့ job နတွေကို ဖပေ်ြျက်ချင်ရင်နတာဲ့ crontab -r လို ရ ဲ့ ို က် enter နခါက်ရို ပါပဲ။ crontab -r



121



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



crontab -e ကို အသ်းို ဖပြုပပီ်း job နတွေကို အချေ်ဇယာ်းေဲ ဲ့ ပိုမေ် ခိုင်း် နေတဲအ ဲ့ နကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလ်းို အဆင်နဖပပါနေ။ Yin Thu (16-7-2018)



##### kernel update ##### admin လည််း အလိုပ် မဖပတ်နသ်းလို ဲ့ခဏ ော်းရင််း၊ ခိုတခါနတာဲ့ တိုတိုရင််းရင််း နပမယဲ့် လက်နတွေျို့ နလာကမာ မကကာခဏ အသ်းို ဖပြုနေရမယဲ့် topic နလ်း ၁ ခိုကို တင်လိုက်ပါတယ်နော်။ အဲဒ ဲ့ ါကနတာဲ့ linux ရဲ ဲ့ kernel ကို update လိုပ်တဲဲ့ process ပါ။ kernel ဆတ ို ာ ဘာလဲ ဆတ ို ာကို user, application, shell, kernel and hardware ဆတ ို ဲဲ့ post မာ တတကျကျ တင်နပ်းခဲဲ့ပပီ်းပပီမို ဲ့ အနသ်းေတ် ထပ် မရင််းနတာပ ဲ့ ါဘူ်းနော်။ kernel ဆိုတာ linux os ရဲ အို ဲ့ တ်ဖမေ် core နပါနော် ဲ့ ။ linux os ေဲ ဲ့ပတ်သက်တဲဲ့ kernel update နတွေဟာ အခါအာ်းနလျာ်ေွော အသေ် ထပ်ထက ွေ ်နလဲ့ ရပါ တယ်။ အဲဒအ ီ ခါ မမ လက်ရ os ရဲ kernel ကို update လိုပ်နပ်းရတယ်နပါနော် ဲ့ ဲ့ ။ ၁။ kernel ကို install လိုပ်ြို ဲ့ အတွေက် yum -y install kernel ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြု ပါတယ်။ yum -y install kernel အကယ်၍ kernel ဟာ update ဖြေ်ပပီ်းသာ်းဆရ ို င် Nothing to do. Compete! လို ဖပပါလ မ်မ ဲ့ ဲ့ ယ်။ update လိုပ်ြို လ ဲ့ ိုရင်နတာဲ့ kernel အသေ်ကို သွေင်း် ယူသာွေ ်းပါလမ်မ ဲ့ ယ်။ ဒီသနဘာပါ။ တေ်ခို နဖပာချင်တာက၊ တချြုျို့နတွေက yum -y install kernel ေဲ ဲ့ သွေင်း် ပပီ်းသွော်းရင် kernel update ဖြေ်သာွေ ်းပပီလို ဲ့ ထင်နလဲ့ရကကပါတယ်။ တကယ်က နောက် ဆက်လိုပ်ရမယဲ့် အပိုင်း် နလ်းနတွေ ရပါ နသ်းတယ်။ ဆက်ရနအာင်! ၂။ yum list kernel ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုပပီ်း မမ ေက်ထက ဲ kernel list ကို ဖပသခိုင်း် ပါ။ version အလိုက် ဖပသပါလမ်မ ဲ့ ယ်။ ၃။ grub2-editenv list လို ရ ဲ့ ို က် enter နခါက်ပါ။ လက်ရ kernel ကို ဖပသပါလမ်မ ဲ့ ယ်။ ၄။ yum list kernel က ဖပသတဲဲ့ list ေဲ grub2-editenv က ဖပတဲဲ့ kernel ကို တိုက်ေေ်ပပီ်း version ဲ့ update ဖြေ်မဖြေ် ကကညဲ့်ပါ။



122



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၅။ grub2-set-default "update_kernel" လို ဲ့ရို က်ပပီ်း update ဖြေ်တဲဲ့ kernel ကို default အဖြေ် သတ်မတ်ပါ။ update_kernel နေရာမာ နောက်ဆ်းို update ဖြေ်တဲဲ့ kernel ရဲ ဲ့ version ကို ထညဲ့်နပ်းရမာပါ။ ဥပမာ >> "3.10.0-862.6.3.el7" ေသည်ဖြငန ်ဲ့ ပါ။ဲ့ ၆။ grub2-mkconfig -o /boot/grub2/grub.cfg လို ဲ့ရို က် enter နခါက်ပပီ်း။ kernel ကို refresh လိုပ်နပ်းပါ။ ၇။ init 6 လို ရ ဲ့ ို က် enter နခါက်ပပီ်း ေက်ကို restart လိုပ်ပါ။ ဒါမ kernel အသက်ေင်ပါလမ်မ ဲ့ ယ်။ အဲအ ဲ့ ဆငန ်ဲ့ တွေ ပပီ်းရင်နတာဲ့ kernel update လိုပ်ငေ််း ပပီ်းဆ်းို ပပီ နပါ။ဲ့ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (17-7-2018)



##### system cron jobs ##### ဒါနလ်းက အနရ်းမကကီ်းနပမယဲ့် သထာ်းနတာဲ့ နကာင််းတာနပါ။ဲ့ at တို crontab တို ေတဲ ဲ့ command ဲ့ ဲ့ နတွေကို အသ်းို ဖပြုပပီ်း job နတွေကို အချေ်ဇယာ်းေဲ ဲ့ နေခိုင်း် တဲအ ဲ့ နကကာင််းကနတာဲ့ နရ်းပပီ်းခဲဲ့ပါပပီ။ ခိုတေ်ခါ တင်ဆက်မာက system အနေေဲ ဲ့တချြုျို့ job နတွေကို သူြါသာ အချေ်ဇယာ်းေဲ ဲ့ဘယ်လို run ဲ့ နေသလဲဆတ ို ာပါပဲ။ သနဘာတရာ်းနလ်းနပါ။ဲ့ ၁။ system cron job ေဲ ဲ့ဆင ို တ ် ဲဲ့ file နတွေဟာ /etc/cron.d နအာက်မာ ရပါတယ်။ ၂။ system အနေေဲ ဲ့ job နတွေကို run တဲအ ဲ့ ခါ run-parts ဆတ ို ဲဲ့ program က နောက်ကယ ွေ ်ကနေ အလိုပ်လိုပ်နပ်းပါတယ်။ run တဲဲ့ ပိုေကို /etc/anacrontab ထဲမာ နြေါ် ဖပထာ်းပါတယ်။ vi ေဲ ဲ့ ေင်ကကညဲ့်နင ို ပ ် ါတယ်။ vi /etc/anacrontab ၃။ နေရက် ို ဲဲ့ directory နအာက်မာ သွော်း ဲ့ အလိုက် run ရမယဲ့် job နတွေကို /etc/cron.daily ဆတ run ပါတယ်။ ေင်ပပီ်း နလဲ့လာနင ို ပ ် ါတယ်နော်။ vi /etc/cron.daily ၅။ အပတ်ေဉ run ရမယဲ့် job နတွေကို /etc/cron.weekly ဆတ ို ဲဲ့ directory နအာက်မာ သွော်း run ပါတယ်။ vi /etc/cron.weekly ၆။ လေဉ run ရမယဲ့် job နတွေကို /etc/cron.monthly ဆတ ို ဲဲ့ directory နအာက်မာ သွော်း run ပါတယ်။ vi /etc/cron.monthly



123



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၇။ ောရီ အလိုက် run ရမယဲ့် job နတွေကိုနတာဲ့ /etc/cron.d/0hourly ဆတ ို ဲဲ့ file က /etc/cron.hourly ဆိုတဲဲ့ directory နအာက်မာ သွော်း run ပါတယ်။ /etc/cron.d/0hourly ဆတ ို ဲဲ့ file ကို vi text editor ေဲ ဲ့ ြွေငက်ဲ့ ကညဲ့်ရင် ဖမင်နင ို ပ ် ါတယ်။ vi /etc/cron.d/0hourly system အနေေဲ job နတွေကို အချေ်ဇယာ်းေဲ ဲ့run တဲဲ့ သနဘာတရာ်းကနတာဲ့ ဒီနလာက်ပါပဲ။ ဲ့ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (22-7-2018)



##### SELinux (Security Enhanced Linux) ##### linux မာ SELinux ဆတ ို ာ firewall မဟိုတ်ပဲ security အတွေက် ထာ်းထာ်းတဲဲ့ layer တေ်ခိုပါ။ ဥပမာ၊ http ကို ြွေငန ်ဲ့ ပ်းထာ်းရင်နတာင်မ SELinux က ခွေငဖ်ဲ့ ပြုထာ်းတဲဲ့ file နတွေကိုပဲ access လိုပ်လို ဲ့ ရမယ်။ ဒီသနဘာပါ။ SELinux ရဲ အရ ဲ့ ည်က Securiry Enhance Linux ပါ။ SELinux ကို နကာင််း နကာင််း အသ်းို ချနင ို ြ ် ိုအတွေ က် policycoreutils-python ဆတ ို ဲဲ့ package ေဲ ဲ့ setroubleshootဲ့ server ဆတ ို ဲဲ့ package လိုအပ်ပါတယ်။ မရရင် yum install ေဲ ဲ့သွေင်း် နပ်းရပါမယ်။ ကဲ ! နလဲ့လာကကညဲ့်ရနအာင်။ အရင်ဆ်းို root account ေဲ login ေင်ပပီ်း mkdir dir1 ဆတ ို ဲဲ့ directory နလ်း ၁ ခို touch file1 ေဲ ဲ့ ဲ့ file နလ်း ၁ ခို နဆာက်လိုက်ပါ။ file ေဲ ဲ့ directory နတွေမာ SELinux က သတ်မတ်နပ်းထာ်းတဲဲ့ label နလ်းနတွေ ရပါတယ်။ ဒါကို context လို ဲ့ နခေါ်ပါတယ်။ ဒီ context နလ်းနတွေနပေါ် မူတည်ပပီ်း access လိုပ်ခွေငန ်ဲ့ တွေ နဖပာင််းလဲသာွေ ်းတာပါ။ file မာ ပါတဲဲ့ context ကို ကကညဲ့်ချင်ရင် ls -lZ ကို အသ်းို ဖပြုရပါတယ်။ ls -lZ file1 directory မာ ပါတဲဲ့ context ကို ကကညဲ့်ချင်ရင် ls -ldZ ကို အသ်းို ဖပြုရပါတယ်။ ls -ldZ dir1 process နတွေမာ ပါတဲဲ့ context နတွေကို ကကညဲ့်ချင်ရင် ps -auxZ ေဲ ဲ့ကကညဲ့်ရပါတယ်။ ps -auxZ ဟိုတ်ပပီ။ ဆက်သာွေ ်းကကရနအာင်။ SELinux မာ mode ၃ မျြု်း ရပါတယ်။ ဒါနတွေကနတာ၊ဲ့ 1. enforcing 2. permissive 3. disabled တပါပဲ ို ဲ့ ။ 1. enforcing က rule ေဲ ဲ့မညီတာနတွေကို ပတ်ပေ်ပါတယ်။ 2. permissive က rule ေဲ ဲ့ မညီတာနတွေကို ပတ်မပေ်ပါဘူ်း။ ဒါနပမယဲ့် ဘာနတွေဖြေ်သာွေ ်းတယ် ဆတ ို ာကို alert လိုပ်ပါတယ်။



124



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



3. disabled ကနတာဲ့ SELinux ကို လို်းေ ပတ်ထာ်းတာပါ။ SELinux သည် ဘယ် mode မာ ရနေသလဲ ကကညဲ့်ချင်ရင် getenforce ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုရပါတယ်။ getenforce SELinux ရဲ mode ကို နဖပာင််းချင်ရင်၊ setenforce ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုရပါတယ်။ ဲ့ 1. enforcing ကို နဖပာင််းချင်ရင် setenforce 1 2. permissive ကို နဖပာင််းချင်ရင် setenforce 0 3. disabled လိုပ်ချင်ရင် /etc/selinux/config ကို vi ေဲ ေင် ဲ့ ပပီ်း SELINUX=disabled လို ဖပင် ဲ့ နပ်း ရပါမယ်။ ကဲ ! ဆက်လိုက်ရနအာင်။ file ေဲ ဲ့ directory နတွေ အတွေက် context နတွေကို ယာယီ (temporary) ေဲ ဲ့ အပမဲ (permanent) ဆပို ပီ်း သတ်မတ်နပ်းနင ို ပ ် ါတယ်။ 1. temporary သတ်မတ်ချင်ရင် chcon -t ကို အသ်းို ဖပြုရပါတယ်။ reboot လိုပ်လိုက်ရင် ဖပေ်ပျက်ပါတယ်။ ဥပမာ၊ chcon -t httpd_sys_content_t file1 2. pernanent သတ်မတ်ချင်ရင် semanage fcontext -a -t ကို အသ်းို ဖပြုရပါတယ်။ reboot လိုပ်လည််း မပျက်နတာပ ဲ့ ါဘူ်း။ semanage fcontext -a -t "httpd_sys_content_t' dir1 3. context တေ်ခိုကို permanent သတ်မတ်ပပီ်းရင် update ဖြေ်သာွေ ်းနအာင် restorecon -RFv ကို run နပ်းရပါတယ်။ restorecon -RFv dir1 directory ေဲ ဲ့သူနအာက် က sub dir နတွေ file နတွေကိုပါ တေ်ခါတည််း သတ်မတ်နပ်းချင်ရင် (/.*)? ဲ့ နလ်းထညဲ့်နပ်းရပါတယ်။ semanage fcontext -a -t "httpd_sys_content_t" "dir1(/.*)?" ဒီနေရာမာ httpd_sys_content_t သည် contexr ပါ။ ဒီလို သတ်မတ်ဖခင််းအာ်းဖြင်ဲ့ http ကနေ တေ်ဆင်ဲ့ ဒီ directory ကို access လိုပ်ခွေင်ဲ့ ရသွော်းပါတယ်။ ကဲ ! ထပ်ဆက်လိုက်ရနအာင်။ SELinux ရဲ နပ်းထာ်းတဲ ဲ့ policy နတွေကို on/off ြွေငပ ်ဲ့ တ်လိုပ်ထာ်းနင ို ပ ် ါတယ်။ ဲ့ 1. policy နတွေကို ကကညဲ့်ချင်ရင် getsebool -a ေဲ ကကညဲ့ ်နင ို ပ ် ါတယ်။ policy နပါင််း ၂၈၀ ရပါတယ်။ ဲ့ getsebool -a အနကကာင််းအရာနတွေေ ဲ ဖပညဲ့ ်ဖပညဲ့်ေိုေို ကကညဲ့်ချင်ရင် semanage boolean -l ကို အသ်းို ဖပြုရပါတယ်။ ဲ့ semanage boolean -l 2. policy နတွေကို ဖပင်မယ်ဆို setsebool ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုရပါတယ်။ ယာယီ ဖပင်မယ်ဆို setsebool ကို သ်းို ရို ပါပဲ။ setsebool httpd_enable_homedirs on ယာယီသတ်မတ် ထာ်းတဲဲ့ policy နတွေကို ကကညဲ့်ချင်ရင် setsebool -a ကို အသ်းို ဖပြုရပါတယ်။ setsebool -a



125



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



3. policy ကို permanent သတ်မတ်ချင်ရင် -p ဆတ ို ဲဲ့ option ထညဲ့်နပ်းရပါတယ်။ setsebool -p httpd_enable_homedirs on ကဲ ! trouble shoot အနကကာင််းနလ်း ဆက်လိုက်ရနအာင်။ file တေ်ခိုခို directory တေ်ခိုခိုကို access လိုပ်လို ဲ့ မရရင် error တက်တတ်ပါတယ်။ ဒါဟာ SELinux က ပတ်ထာ်းလပါ။ ို ဲ့ ဒီအခါ system log ကို tail -f -n 30 ေဲ ဲ့ ေင်ြတ်ပပီ်း sealert ဆတ ို ဲဲ့ code ကို ရာပပီ်း run နပ်းရ ပါတယ်။ ဒီအခါ SELinux ေဲ ဲ့ဘယ်လို ဖပင်ဆင်နပ်းြို လ ို ာ ဖမင်နတွေျို့ရပါလမ်မ ဲ့ ိုအပ်နေသလဲဆတ ဲ့ ယ်။ tail -f -n 30 /var/log/messages ကဲ ! SELinux ရဲ အနဖခခ သနဘာတရာ်းနတွေကနတာဲ့ ဒီနလာက်ပါပဲ။ ေည််းေည််း ရှု ပ်ရင် ၃ ခါနလာက် ဲ့ ဖပေ်ြတ်ကကညဲ့်ပါ လ။ို ဲ့ google နလ်းေဲ ဲ့တွေဲပပီ်း နလဲ့လာပါလ။ို ဲ့ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (23-7-2018)



# HD (hard disk) အြော်း partition ိုင်း် ခြင််း format ြ ခြင််း mount လု ် ခြင်: # ဒီတေ်ခါနတာဲ့ linux မာ HD ကို ၁။ partition ပိုင်း် တာ ၂။ ရလာတဲဲ့ partition ကို format ချတာ ၃။ format ချထာ်းတဲဲ့ partition ကို မမ သတ်မတ်ထာ်းတဲဲ့ directory မာ mount လိုပ် တပ်ဆင်တာ ေသဖြင်ဲ့ နလဲ့လာကကညဲ့်ရနအာင်။ lsblk လို ရ ်းကို နတွေျို့ရမာပါ။ HD က --> ဲ့ ို က် enter နခါက်လိုက်ရင် HD နတွေရဲ ောရင် ဲ့ ၁။ IDE အမျြု်းအော်းဆရ ို င် hda, hdb ၂။ SATA အမျြု်းအော်းဆိုရင် sda, sdb ၃။ virtual HD ဆရ ို င် vda, vdb ေသဖြင်ဲ့ ဖမင်ရပါလမ်မ ဲ့ ယ်။ ဒီနေရာမာ ေမူောအဖြေ် HD ကို sdb လို မ ဲ့ တ်ထာ်းနပ်းပါ။



126



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ကဲ ! sdb ဆတ ို ဲဲ့ HD ကို partition ပိုင်း် ကကညဲ့်ရနအာင်။ ၁။ fdisk /dev/sdb လို ရ ဲ့ ို က် enter နခါက်လိုက်ပါ။ ၂။ Command (m for help) : လို နပေါ် ဲ့ တွေက် n ဲ့ လာပါလမ်မ ဲ့ ယ်။ partition အသေ် ပိုင်း် မာဖြေ်တဲအ လို ရ ဲ့ ို က် enter နခါက်နပ်းလိုက်ပါ။ ၃။ Partition type ကို နရွေ ်းခိုင်း် ပါလမ်မ ဲ့ ယ်။ primary partition အနေေဲ ပ ဲ့ ိုင်း် မာဖြေ်လို p ဲ့ လို ရ ဲ့ ို က် enter နခါက်နပ်းလိုက်ပါ။ ၄။ Partition number ဖြညဲ့်ခိုင်း် ပါလမ်မ ဲ့ ယ်။ ပထမဆ်းို partition ဖြေ်တာနကကာင်ဲ့ 1 လို ဲ့ ရို က် enter နခါက်နပ်းလိုက်ပါ။ ၅။ First sector ထညဲ့်ခိုင်း် ပါလမ်မ ဲ့ ယ်။ blank အတိုင်း် ထာ်းပပီ်း enter နခါက်နပ်းလိုက်ပါ။ ၆။ Last sector ထညဲ့်ခိုင်း် ပါလမ်မ ဲ့ ယ်။ ဒီဥပမာမာ 2G ပိုင်း် မာ ဖြေ်တဲဲ့ အတွေက် +2G လို ရ ဲ့ ို က် enter နခါက်နပ်းလိုက်ပါ။ ၇။ Command (m for help) : ဆတ ို န ဲဲ့ ေရာကို ဖပေ်နရာက်သာွေ ်းပါလမ်မ ဲ့ ယ်။ partition ID သတ်မတ် နပ်းြို အတွေ က် t လို ရ ဲ့ ဲ့ ို က် enter နခါက်လိုက်ပါ။ ၈။ Hex code (type L to list all codes) : လို ဲ့ နတွေျို့ရပါမယ်။ L လို ဲ့ ရို က် enter နခါက်နပ်း လိုက်တဲအ ဲ့ ခါ code နတွေကိုနတွေျို့ရပါမယ်။ linux အတွေက် ID က 83, swap အတွေက် ID က 82, LVM အတွေက် ID က 8e ပါ။ ဒီနေရာမာ 83 လို ရ ဲ့ ို က် enter နခါက်နပ်းလိုက်ပါ။ ၉။ Command (m for help) : ဆီ ဖပေ်နရာက်လာပါလမ်မ ဲ့ ယ်။ w လို ဲ့ ရို က် enter နခါက်ပပီ်း save လိုက်ပါ။ ၁၀။ ဒါဆို partition တေ်ခို ြေ်တီ်းပပီ်းသွော်းပါပပီ။ partition အသေ်ကို system က သနအာင် partprobe လို ရ ဲ့ ို က် enter နခါက်နပ်းလိုက်ပါ။ ၁၁။ lsblk ဆတ ို ဲဲ့ command ကို သ်းို ပပီ်း ဖပေ်ကကညဲ့်လိုက်ပါ။ /dev/sdb1 ဆိုတဲဲ့ partition တေ်ခို တို်းလာတာကို ဖမင်ရပါလမ်မ ဲ့ ယ်။ partition ပိုင်း် တာကနတာဲ့ ဒီနလာက်ပါပဲ။ Format ချတဲအ ဲ့ နကကာင််း ဆက်သာွေ ်းကကရနအာင်။ Format ချြို အတွေ က် mkfs ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုရပါတယ်။ ဲ့ ၁။ xfs ေဲ ဲ့format ချမယ်ဆို mkfs.xfs ၂။ ext4 ေဲ format ချမယ်ဆို mkfs.ext4 ဒီလို အသ်းို ဖပြုရပါတယ်။ ဲ့ နောနောက ပိုင်း် ထာ်းတဲဲ့ /dev/sdb1 ကို ext4 ေဲ ဲ့ format ချမယ်ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ mkfs.ext4 /dev/sdb1 ဒါကနတာဲ့ format ချတဲအ ဲ့ ကကာင််းပါပဲ။ format ချပပီ်းတဲန ဲ့ ောက် အသ်းို ဖပြုြို ဲ့ file နတွေ ထညဲ့်နင ို ြ ် ို ဲ့ directory တေ်ခိုခိုမာ mount လိုပ်တပ်ဆင်ရပါတယ်။



127



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



သင်ဟာ root account ေဲ ဲ့login ေင်ထာ်းတယ် ဆိုပါေ။ို ဲ့ / directory နအာက်မာ mkdir hd1 လို ဲ့ directory နလ်း ၁ ခို နဆာက်လိုက်ပါ။ format ချပပီ်းသာ်း partition ကို hd1 ဆတ ို ဲဲ့ directory ဆီ mount လိုပ်မယ်ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ mount /dev/sdb1 /hd1 ဒါက ယာယီ mount လိုပ်တာပါ။ reboot လိုပ်လိုက်ရင် ဖပေ်ဖပြုတ်ပါတယ်။ အပမဲ mount လိုပ်ထာ်း ချင်ရင် /etc/fstab ကို vi ေဲ ြွေ ို ်း် နရ်းသွေင်း် နပ်းရပါမယ်။ vi /etc/fstab ဲ့ ငပ်ဲ့ ပီ်း နအာက်ပါအတင ၁။ vi /etc/fstab ။ i ကို နပ် insert mode ကို ေင် ၃။ /dev/sdb1 /hd1 ext4 defaults 0 0 လို နရ်း ဲ့ ၄။ Esc နပ် :wq ေဲ ဲ့ ဖပေ်ထက ွေ ် ဒါဆို အပမဲ mount ဖြေ်သာွေ ်းပါပပီ။ cd /hd1 ကို ေင်ပပီ်း file နတွေ သမ််းဆည််းနင ို ပ ် ါပပီ။ ကဲ ! HD ကို partition ပိုင်း် ၊ format ချ၊ directory မာ mount လိုပ် တပ်ဆင်တဲဲ့ အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (30-7-2018)



##### virtual memory (swap) ##### linux မာ Hard Disk (HD) ကို partition ပိုင်း် တာ format ချတာ၊ directory မာ mount လိုပ်တာနတွေကို တင်ခဲဲ့ပပီ်းပါပပီ။ ဒီတေ်ခါ virtual memory (RAM အတို) ြေ်တီ်းတဲအ ဲ့ နကကာင််းကို နလဲ့လာကကညဲ့်ရနအာင်။ physical ram မနလာက်တအ ဲဲ့ ခါ virtual memory ဟာ ram လိုပဲ အလိုပ်လိုပ်နပ်းပါတယ်။ linux မာ virtual memory ကို swap လို နခေါ် ို ဲဲ့ command ေဲ ေင် ဲ့ ပါတယ်။ free -h ဆတ ဲ့ ကကညဲ့်မယ် ဆရ ို င် swap ကို နတွေျို့ရပါလမ်မ ဲ့ ယ်။ free -h ကဲ ! swap တေ်ခိုကို ဘယ်လို ြေ်တီ်းမလဲ ေတင်လိုက်ရနအာင်။ ၁။ HD ကို partition ပိုင်း် ကတည််းက type ID ကို 82 လို ဲ့ သတ်မတ်နပ်းလိုက်ပါ။ ဒီနေရာမာ ေမူောအဖြေ် partition ကို /dev/sdb1 လို ဆ ဲ့ ကို ကပါေ။ို ဲ့ size က 1G ထာ်းပါေ။ို ဲ့



128



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၂။ sdb1 ရလာပပီ်းတဲန ဲ့ ောက် သူက ဲ့ ို format ချရပါမယ်။ storage အနေေဲ ဲ့ မဟိုတ်ပဲ virtual memory ြေ်တီ်းမာ ဖြေ်လို mkswap ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုရပါမယ်။ ဲ့ mkswap /dev/sdb1 လို ရ ဲ့ ို က် enter နခါက်လိုက်ပါ။ ဒါဆို swap တေ်ခို ရပါပပီ။ ၃။ swap ကို virtual memory အဖြေ် တပ်ဆင်ြို ဲ့ swapon ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုရ ပါတယ်။ swapon /dev/sdb1 လို ရ ဲ့ ို က် enter နခါက်လိုက်ပါ။ ၄။ free -h လို ဲ့ ရို က် enter နခါက်လိုက်ပါ။ ram နေရာမာ swap အနေေဲ ဲ့ 1G ထက်တို်းလာတာ နတွေျို့ရပါလမ်မ ဲ့ ယ်။ ၅။ ဒါက swap ကို ယာယီ mount တာပါ။ ေက်ကို restart နပ်းလိုက်ပပီ်း ဖပေ်တက်လာရင် ရမာ မဟိုတ်နတာပ ဲ့ ါဘူ်း။ အဲန ဲ့ တာဲ့ အပမဲ mount ထာ်းြို ဲ့ အတွေက် /etc/fstab ထဲမာ နအာက်ပါအတိုင်း် ေင်နရ်းနပ်း ရပါမယ်နော်။ /dev/sdb1 swap swap defaults 0 0 ၆။ virtual memory အဖြေ် တပ်ဆင်ထာ်းတဲဲ့ swap ကို ဖပေ်ဖြြုတ်ချင်တယ် ဆပ ို ါေ။ို ဲ့ swapoff ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုရပါတယ်။ swapoff /dev/sdb1 လို ရ ဲ့ ို က် enter နခါက်လိုက်ပါ။ free -h ေဲ ဲ့ ဖပေ်ကကညဲ့်ပါ။ swap ရဲ ဲ့ size ဖပေ်နလျာသ ဲ့ ာွေ ်းတာကို နတွေျို့ရပါလမ်မ ဲ့ ယ်။ အသ်းို ဖပြုခဲဲ့တဲဲ့ command နတွေကို ဖပေ်ကကညဲ့်မယ်ဆရ ို င် --> ၁။ HD ကို partition ပိုင်း် ေဉမာ type ID ကို 82 လို နပ်း ဲ့ ၂။ mkswap /dev/sdb1 Virtual Memory ကိုြေ်တီ်းတာ ၃။ swapon /dev/sdb1 Swap ကို Virtual Memory အဖြေ်တပ်ဆင်တာ ၄။ free –h swap ရမရ ဖပေ်ေေ်တာ ၅။ အပမဲ mount ထာ်းြို /etc/fstab ထဲမာ ေင်နရ်း ဲ့ ၆။ ဖပေ်ဖြြုတ်မယ်ဆို swapoff /dev/sdb1 လို နတွေ ျို့ရမာပါ။ ဲ့ linux မာ swap တေ်ခို ြေ်တီ်းပပီ်း virtual memory အဖြေ် တပ်ဆင် အသ်းို ဖပြုတဲအ ဲ့ နကကာင််း ကနတာဲ့ ဒီနလာက်ပါပဲ။ ောြတ်ရင််း တေ်ဆငခ ်ဲ့ ျင််း ေမ််းလိုပ်သာွေ ်းရင် အဆင်နဖပပါလမ်မ ဲ့ ယ်။ swap ေဲ ဲ့ ပတ်သက်တာနတွေ မဖပြုလိုပ်ခင် ယခင် post မာ တင်ထာ်းတဲဲ့ HD ကို partition ပိုင်း် တာ၊ type ID သတ်မတ်တာနတွေကို ော်းလည်ထာ်းြိုနတာ လ ဲ့ ဲ့ ိုပါတယ်။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (31-7-2018)



129



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



+ + [ linux firewall (iptables) ] + + What is iptables? iptables ဆတ ို ာ linux ရဲ firewall တေ်ခိုပါ။ firewall မာ client firewall ေဲ network firewall ဲ့ ဲ့ ဆပို ပီ်း ၂ မျြု်း ရပါတယ်။ ဒီနေရာမာ iptables ကို client firewall အနေေဲ ဲ့ အသ်းို ဖပြုပိုကို နဖပာဖပ သွော်းမာပါ။ firewall/iptables ဘယ်လို အလိုပ်လိုပ်သလဲ? iptables ဟာ network traffic (1. inbound, 2. outbound) နတွေကို filter ခပပီ်း policy နတွေေ ဲ ဲ့ ထေ််းချြုပ်နပ်းပါတယ်။ What is network traffic? network နပေါ်မာ သွော်းနေတဲဲ့ အရာမေ်သမျှကို network traffic လို ဲ့ နခေါ်ပါတယ်။ 1-inbound ေဲ ဲ့ 2-outbound traffice ဆပ ို ီ်း ၂ မျြု်း ရပါတယ်။ What is inbound traffic? မမရဲ ip ဲ့ ဆီကို ေင်လာတဲဲ့ traffic နတွေကို inbound traffic လို နခေါ် ဲ့ ပါတယ်။ what is outbound traffic? မမရဲ ip ဲ့ ကနေ အဖခာ်း network ဆီ ထွေက်သာွေ ်းတဲဲ့ traffic နတွေကို outbound traffic လို ဲ့နခေါ်ပါ တယ်။ What is firewall rule/policy? အဲဒ ီ traffic နတွေကို ထေ််းချြုပ်ြို ဲ့ အတွေက် firewall rules/policies နတွေ ြေ်တီ်းနပ်းရပပီ်း၊ အဲဒ ီ rules ၁ ခိုမာ နအာက်ပါ parameter နတွေ ပါေင်ရပါတယ်။ ၁။ source ip ၂။ destination ip ၃။ protocal အမျြု်းအော်း ၄။ ACCEPT(လက်ခ) သမဟို ို ဲ့ တ် DROP(ဖြတ်နတာက်) တို ဖြေ် ဲ့ ပါတယ်။ iptables ရဲ command နတွေကနတာ၊ဲ့ ... ဲ့ 1. iptables ရဲ inbound policy ကို ကကညဲ့်ြိုအတွေ က် iptables -L INPUT ကို သ်းို ပါတယ်။ ဲ့ ဲ့ 2. iptables ရဲ outbound policy ကို ကကညဲ့်ြိုအတွေ က် iptables -L OUTPUT ကို သ်းို ပါတယ်။ ဲ့ ဲ့ 3. iptables ရဲ policy နတွေကို save ြို အတွေ က် service iptables save ကို သ်းို ပါတယ်။ ဲ့ ဲ့ 4. iptables ရဲ policy နတွေကို အကိုေ ် delete လိုပ်ြို အတွေ က် iptables -F INPUT ေဲ ဲ့ ဲ့ ဲ့ iptables -F OUTPUT ကို သ်းို ပါတယ်။ 5. iptables ရဲ policy တေ်ခိုချင််းကို delete လိုပ်ြိုအတွေ က် iptables -D ကို သ်းို ပါတယ်။ ဲ့ ဲ့



130



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



6. iptables ကို restart လိုပ်ြိုအတွေ က် service iptables restart ကို သ်းို ပါတယ်။ ဲ့ 7. iptables ကို operating system ေဲအတူ ေတက်လာြိုအတွေ က် chkconfig iptables on ကို ဲ့ ဲ့ သ်းို ပါတယ်။ 8. iptables သ်းို ပိုသ်းို ေည််းကို iptables --help ေဲ ဲ့ကကညဲ့်နင ို ပ ် ါတယ်။ ကဲ ! rule/policy နတွေ သတ်မတ် ကကညဲ့်ရနအာင် ..... မမေက်ရဲ ip ို ါေ။ို ဲ့ တဖခာ်းေက်ရဲ ip ို ါေ။ို ဲ့ ဲ့ က 192.168.1.1 ဖြေ်တယ် ဆပ ဲ့ က 192.168.1.2 ဆပ ၁။ example အနေေဲ၊ ဲ့ မမေက်ကို 192.168.1.2 ကနေ ping မရနအာင် rule ကို နအာက်ပါအတင ို ်း် သတ်မတ်နင ို ပ ် ါတယ်။ iptables -A INPUT -s 192.168.1.2 -d 192.168.1.1 -p ICMP -j DROP ဒီ rule ကို ရင််းဖပရရင် -A သည် append နရ်းသွေင်း် မယ်။ INPUT ဆတ ို ာက မမဆီ တဖခာ်းက လာမာဖြေ်လို inbound rule လို အဓ ပပာယ်ရပါတယ်။ ဲ့ ဲ့ -s သည် source ip ကို ကိုယ်ော်းဖပြုပါတယ်။ -d သည် destination ip ကို ကိုယ်ော်းဖပြုပါတယ်။ -p သည် protocol ကို ကိုယ်ော်းဖပြုပပီ်း သူနောက် မ protocol အမျြု်းအော်း ထညဲ့်နပ်းပါတယ်။ ဲ့ ဒီနေရာမာ ping ဖြေ်တဲအ ဲ့ တွေက် protocol အမျြု်းအော်းက ICMP ပါ။ -j က jump လို အဓ ပပာယ်ရပါတယ်။ ဲ့ DROP ကနတာဲ့ ပယ်ချမယ်လို အဓ ပပာယ်ရပါတယ်။ လက်ခမယ်ဆို ACCEPT ပါ။ ဲ့ ဒီလို သတ်မတ်လိုက်ရင် မမေက် destination ip 192.168.1.1 ကို source ip 192.168.1.2 ကနေ ping လို မရနတာ ပ ဲ့ ဲ့ ါဘူ်း။ ၂။ example အနေေဲ၊ ဲ့ မမေက်ကို 192.168.1.2 ကနေ ssh ေဲ ဲ့ ေင်လို ဲ့ မရနအာင် rule ကို နအာက်ပါအတင ို ်း် သတ်မတ်နင ို ပ ် ါတယ်။ iptables -A INPUT -s 192.168.1.2 -d 192.168.1.1 -p TCP --dport 22 -j DROP ဒီ rule ကို ရင််းဖပရရင် -A သည် append နရ်းသွေင်း် မယ်။ INPUT ဆတ ို ာက မမဆီ တဖခာ်းက လာမာဖြေ်လို inbound rule လို အဓ ပပာယ်ရပါတယ်။ ဲ့ ဲ့ -s သည် source ip ကို ကိုယ်ော်းဖပြုပါတယ်။ -d သည် destination ip ကို ကိုယ်ော်းဖပြုပါတယ်။ -p သည် protocol ကို ကိုယ်ော်းဖပြုပပီ်း သူနောက် မ protocol အမျြု်းအော်း ထညဲ့်နပ်းပါတယ်။ ဲ့ ဒီနေရာမာ ssh ဖြေ်တဲအ ဲ့ တွေက် protocol အမျြု်းအော်းက TCPP ပါ။ --dport က ေင်လာမယဲ့် port ေပါတ်ပါ။ ဒီနေရာမာ ssh မို port no. က 22 ပါ။ ဲ့



131



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



-j က jump လို အဓ ပပာယ်ရပါတယ်။ ဲ့ DROP ကနတာဲ့ ပယ်ချမယ်လို အဓ ပပာယ်ရပါတယ်။ လက်ခမယ်ဆို ACCEPT ပါ။ ဲ့ ဒီလို သတ်မတ်လိုက်ရင် မမေက် destination ip 192.168.1.1 ကို source ip 192.168.1.2 ကနေ ssh ေဲ ဲ့ ေင်လို ဲ့ မရနတာပ ဲ ာ်းလည်နလာက်ပပီ ထင်ပါ ဲ့ ါဘူ်း။ ခိုနလာက်ဆို သနဘာတရာ်းကို ေဲေေ တယ်။ network ထဲမာ ေက် ၃ လို်း ရတယ်။ ၁။ မမေက်ရဲ ip ဲ့ က 192.168.1.1 ၂။ တရိုတ်မရဲေက် ip က 192.168.1.2 ဲ့ ၃။ဗမာမရဲေက် ip က 192.168.1.3 ဆပ ို ါေ။ို ဲ့ ဲ့ မမေက်ကို တရိုတ်မရဲေက် ကနေ ping လို မရနအာင် iptables ဲ့ ကနေ ping လို ရပီ ဲ့ ်း၊ ဗမာမရဲ ေက် ဲ့ ဲ့ ေဲ ဲ့rule သတ်မတ်ကကညဲ့်ကကေ။ို ဲ့ iptables -A INPUT -s 192.168.1.2 -d 192.168.1.1 -p ICMP -j ACCEPT iptabes -A INPUT -s 192.168.1.3 -d 192.168.1.1 -p ICMP -j DROP service iptables save ကဲ ! သနဘာတရာ်းကနတာဲ့ ဒီနလာက်ပါပဲ။ တရိုတ်မရဲ ဲ့ ေက်ကနေ ssh ေဲ ဲ့ ေင်လမရပဲ ို ဲ့ ၊ ဗမာမရဲေက် ို ဲ့ rule ကွေကိုယ် သတ်မတ်ကကညဲ့်ပါ။ ဲ့ ကနေ ssh ေဲ ဲ့ေင်လရနအာင် သတဖပြုရေ် >> rule နတွေ ထညဲ့်သင ွေ ်း် ရာမာ iptables ဟာ ပထမ no.1 rule ကို နဆာင်ရွေက်ပီ်းမ no.2 rule ကို ဆက်လက် နဆာင်ရွေက်ပါတယ်။ လာသမျှ ping အာ်းလို်းကို ပတ်ထာ်းတာကို အရင်ထညဲ့်ပီ်းမ 192.168.1.2 အတွေက် ping ြွေငန ်ဲ့ ပ်းတဲဲ့ rule ကို ထညဲ့်ရင်၊ အရာနရာက်နတာမ ဲ့ ည် မဟိုတ်ပါ။ 192.168.1.2 ကို ping ြွေငန ်ဲ့ ပ်းတာကို အရင်ထညဲ့်ပီ်းမ ကျေ်တာနတွေကို ping ပတ်တာကို ဒိုတယနေရာက ထညဲ့ရ ် ပါမယ်။ iptables အနေေဲ network firewall အဖြေ် postrouting, prerouting နတွေေ ဲ သ ို ဲ့ ဲ့ ဲ့ ်းို လရတာနတွေ အမျာ်းကကီ်း ရပါနသ်းတယ်။ google, youtube ကနေ ဆက်လက် နလဲ့လာကကပါလ။ို ဲ့ ဒီနေရာမာ ကနတာဲ့ concept သနဘာတရာ်း အဖမည််းမျှသာပါပဲ။ + + [ linux firewall (iptables) ရ rules မ ြော်းကို ကည်ခြင််း ] + + iptables မာ rules နတွေကို ဘယ်လို ဖပေ်ကကညဲ့်သလဲဆတ ို ာ နဖပာကကေ။ို ဲ့ လွေယ်လွေယ်နလ်းပါ။ iptables ရဲ rules နတွေကို ကကညဲ့်ြို ဲ့ terminal မာ iptables ဆတ ို ဲဲ့ command ေဲအတူ -nL ဆတ ို ဲဲ့ ဲ့ ဲ့ option ကို သ်းို ရပါတယ်။ line no. နတွေေ ဲ ဲ့ကကညဲ့်ချင်ရင် --line-numbers ဆတ ို ဲဲ့ option ကို ထပ်ထညဲ့န ် ပ်းရပါတယ်။



132



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



အဖပင်ကနေအတွေင်း် ကိုလာတဲဲ့ traffic ကို ကာတာက၊ input rules။ အတွေင်း် ကနေအဖပင်ကိုသာွေ ်းတဲဲ့ traffic ကို ကာတာက output rules။ ဒီလိုမတ်ပါ။ #input policy ကို ကညဖ ် ို --> iptables -nL INPUT --line-numbers #output policy ကို ကည်ဖို --> iptables -nL OUTPUT --line-numbers #policy အြော်းလ်းု ကို ကည်ဖို --> iptables -nL --line-numbers ကဲ ! ဒီနလာက်ပါပဲ။ + + [ inserting new rules to iptables (firewall) ] + + ခိုတခါ linux ရဲ firewall ဖြေ်တဲ၊ဲ့ iptables မာ ရပီ်းသာ်း rules နတွေ ကကာ်းထဲကို၊ rules အသေ်နတွေ ဲ့ ထပ်ထညဲ့်ချင်တအ ဲဲ့ ခါ ဘယ်လို လိုပ်ရမလဲ နဖပာကကညဲ့်ကကေ။ို ဲ့ ဥပမာ နပ်းရရင် ဒီလိုဗျာ၊ ---> iptables မာ rules နတွေ သတ်မတ်လိုက်တယ်။ ၁၀ နကကာင််းဆပ ို ါနတာ။ဲ့ ထညဲ့ပ ် ီ်း save ပီ်းမ ဖပေ်ေေ် ကကညဲ့်တဲအ ဲ့ ခါ ၅ နကကာင််းနဖမာက်နေရာမာ rule ၁ ခို ထပ်ထညဲ့်ြို ဲ့ လိုနေတာ သတဖပြုမသွော်းတယ် ဆပ ို ါနတာဗ ီ ဖြေ်မျြု်း ကကြုတဲအ ဲ့ ခါ ဘယ်လို လိုပ်ရမယ်ဆတ ို ဲအ ဲ့ နကကာင််းပါ။ ဲ့ ျာ။ ခိုနဖပာမာက အဲဒအ rule အသေ် ၁ ခိုကို ထပ် ထညဲ့်ချင်တအ ဲဲ့ ခါ လိုပ်ရမယဲ့် အဆငန ်ဲ့ တွေကနတာဲ့ နအာက်ပါအတင ို ်း် ပါပဲ။ ၁။ iptables -nL --line-numbers ဆတ ို ဲဲ့ command ကို သ်းို ပါ။ ဒီအခါ iptables မာ မမ ထညဲ့်ထာ်း တဲဲ့ rules နတွေကို ေပါတ်ေဉေဲ ဲ့ဖမင်ရပါမယ်။ ၂။ rule အသေ်ကို ဘယ်နေ်နကကာင််းနဖမာက်၊ ဘယ်ေပါတ်ေဉမာ ထညဲ့်ချင်တာလဲ၊ မတ်သာ်းပါ။ ၃။ ပီ်းရင် -I ဆတ ို ဲဲ့ option ကို သ်းို ပါ။ ဘယ်လို သ်းို ရမလဲဆန ို တာဲ့ ... ဥပမာ >> iptables ရဲ inbound policy မာ 192.168.1.11 ကနေ မမေက်ရဲ ip ဲ့ ဲ့ 192.168.1.10 ဆီ ssh ေဲ ေင် ို ဲ့ ကာတဲဲ့ rule ၁ ခို နရ်းမယ်။ အဲဒ ဲ့ ီ rule ကို ၅ နကကာင််းနဖမာက်မာ ထညဲ့်ချင် ဲ့ လမရနအာင် တယ်ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် syntax က နအာက်ပါအတိုင်း် ပါ။ iptables -I INPUT 5 -s 192.168.1.11 -d 192.168.1.10 -p tcp --dport 22 -j DROP -I (iအကကီ်း) INPUT 5 လို ဲ့ သ်းို လိုက်တအ ဲဲ့ တွေက် ဒီ rule ဟာ iptables ရဲ inbound policy ရဲ ၅ ဲ့ ဲ့ နကကာင််းနဖမာက်မာ နေရာယူသာွေ ်းပါလမ်မ ဲ့ ယ်။ ပီ်းရင် --> service iptables save ပီ်းရင် --> service iptables restart ဒါပါပဲ အနဖခခ concepts နတွေ၊ option နတွေက ယခင် post နတွေမာ နြာ်ဖပပပီ်းပပီမို ဲ့ ထညဲ့်ရင််းမနေနတာဲ့ ဘူ်းနော်။ + + [ protecting invalid accesses ] ++ ကိုယ်ဲ့ server ဆီ၊ ေင်လာနလဲ့ရတဲဲ့ DDOS attack နတွေကို linux iptables firewall ေဲ၊ ဲ့ ဘယ်လို ကာမလဲ ကကညဲ့်ကကေ။ို ဲ့



133



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



နအာက်ပါ policy ၄ ခိုကို 1st 2nd 3rd 4th နေရာနတွေမာ နရ်းသွေင်း် နပ်းရို ပါပဲ။ --tcp-flags ထဲမာ SYN,ACK,FIN,RST ေသဖြင်ဲ့ ပါပါတယ်။ ဒီနေရာမာ အကိုေလ ် ို်းပါနအာင် ALL လို သ ဲ့ ်းို ထာ်းပါတယ်။ options နတွေကို၊ အနသ်းေတ်နတာ၊ဲ့ မရင််းဖပနတာဘ ဲ့ ်းူ ။ သချင် Google နပါ ဲ့ ^_^ ၁။ SYN attack ကို ကာြ၊ို ဲ့ iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP ၂။ Fragment attack ကို ကာြို၊ ဲ့ iptables -A INPUT -f -j DROP ၃။ XMAS attack ကို ကာြို၊ ဲ့ iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP ၄။ NULL packets နတွေကို ဖြြုတ်ချြို၊ ဲ့ iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP ဒါနတွေကို နရ်းသွေင်း် ပီ်းရင်၊ မမသ်းို မယဲ့် ip နတွေ port နတွေကို ဆက်ြွေငန ်ဲ့ ပ်းနပါ။ဲ့ ဒီနလာက်ပါပဲ။ + + [ backup and restore iptables' rules] + + linux ရဲ ဲ့ firewall ဖြေ်တဲဲ့ iptables မာ သတ်မတ်ထာ်းတဲဲ့ rules နတွေကို backup/restore လိုပ်တအ ဲဲ့ နကကာင််း နဖပာကကေ။ို ဲ့ ဘာန ို ပ်တာလဲ? ဲ့ ကကာင်ဲ့ backup and restore လိုပ်ြို လ ဲ့ အ ၁။ မမရဲ config ကို သမ််းထာ်းြို။ဲ့ ဲ့ ၂။ လွေဲမာ်းမှု မရနေြို။ဲ့ ၃။ အချေ်ကိုေ ် သက်သာြို။ဲ့ ဥပမာ ဆရ ို ရင် --> server ၅ လို်းကို run ထာ်းတယ် ထာ်းပါနတာ။ဲ့ အာမ ဲ့ ာ server တိုင်း် ကို iptables rules နတွေ တူတူ သတ်မတ်နပ်းရမယ်နပါ။ဲ့ ၁ လို်းချင််း ေင်ပီ်း configuration လိုပ်နေရင် ကကာပါတယ်။ နောက် မတူညီမှုနတွေ မာ်းယွေင်း် တာနတွေ ရနင ို တ ် ယ်။ ဒီနတာဲ့ ဘယ်လို ေီေဉမလဲ? ၁။ iptables ကို ေတ်တိုင်း် ကျတဲအ ဲ့ ခါ file တေ်ခိုအဖြေ် backup လိုပ်မယ်။ ၂။ အဲဒ ီ backup file ကို တဖခာ်း server နတွေနပေါ်က iptables ဆီ restore လိုပ်မယ်။ ဒါဆို server အာ်းလို်း config နတွေလည််းတူ၊ အချေ်လည််း အကိုေ ် သက်သာပပီနပါ။ဲ့ ကဲ ! ေလိုက်ရနအာင် ... #backup ဒီနတာဲ့ iptables ရဲ rules နတွေကို ဘယ်လို backup လိုပ်မလဲ? ဲ့ iptables-save ipt.bk ဆိုတဲဲ့ command ကို run ပါ။ ဒါဆို current directory နအာက်မာ ipt.bk ဆတ ို ဲဲ့ file နလ်း အဖြေ် ရလာပါလမ်မ ဲ့ ယ်။ memory stick ထဲ ကူ်းရို နပါ။ဲ့ အထဲမာ ဘာနတွေ နရ်းထာ်းလဲ၊ သချင်ရင် vi ipt.bk ဆတ ို ဲဲ့ command ေဲ ဲ့ ြွေငက်ဲ့ ကညဲ့်ပါ။ server ရဲ ဲ့ iptables ကို သူမျာ်း ဘယ်လို configuration ချသွော်းလဲ သချင် ဒီေည််း သ်းို နင ို ပ ် ါတယ်။ ဒါက backup အပိုင်း် ။



134



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



#restore ဒီနတာဲ့ backup file ကို တဖခာ်း server မာ ဘယ်လို restore လိုပ်မလဲ? iptables-restore ipt.bk ဆတ ို ဲဲ့ command ကို run ပါ။ ဒါဆို iptables ရဲ ဲ့ rules နတွေ တူတူဖြေ်သာွေ ်းပါပပီ။ ပီ်းရင် --> service iptables save ပီ်းရင် --> service iptables restart ဒါပါပဲ + + [ extra knowledge ] + + လိုတအ ဲဲ့ ခါ သ်းို ြို ။။။ ဲ့ services, port numbers and protocols --> ftp >> 20, 21 >> tcp ssh >> 22 >> tcp telnet >> 23 >> tcp smtp >> 25, 465, 587 >> tcp pop3 >> 110, 995 >> tcp http >> 80, 443 >> tcp ping >> 0, 8 >> icmp dns >> 53 >> tcp and udp snmp agent >> 161, 162 >> udp ကဲ ! အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (2-8-2018)



##### LVM - Logical Volume Management ##### linux မာ hard disk (HD) ကို ပိုမေ် partition ပိုင်း် တာ၊ virtual memory ြေ်တ်းီ တာနတွေ ပပီ်းခဲပ ဲ့ ါပပီ။ ခိုတေ်ခါက LVM ေဲ ဲ့ logical volume နတွေ ြေ်တီ်းတာကို တင်ဖပနပ်းမာပါ။ ဘာန ဲ့ ကကာင်ဲ့ ရို ်းရို ်း partition မပိုင်း် ပဲ logical volume (LV) နတွေ ြေ်တ်းီ မာလဲ။ ဘာန ်ဲ့ ဲ ဆန ို တာဲ့ LVM မာ အာ်း ဲ့ ကကာငလ သာချက်နတွေ ရလပါ။ ို ဲ့ ၁။ partition တေ်ခိုကို အလွေယ်တကူ size တို်းတာ ၂။ partition တေ်ခိုကနေ တေ်ခိုကို data နတွေ မထခိုက်နေပဲ down time zero ေဲ နရွေ ဲ့ ျို့ပေ်တာ ဒါနတွေ လိုပ်လို ရပါတယ် ။ ကဲ ! ေလိုက်ကကေ။ို ဲ့ ဲ့ LV နတွေ ြေ်တီ်းရာမာ အေဉလိုက် အသ်းို ဖပြူသွော်းရမယဲ့် command နတွေကနတာဲ့ နအာက်ပါ အတိုင်း် ပါ။ ၁။ pvcreate ၂။ pvs



135



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၃။ vgcreate ၄။ vgs ၅။ lvcreate ၆။ lvs အရင်ဆ်းို HD ကို fdisk ဆတ ို ဲဲ့ command အသ်းို ဖပြုပပီ်း partition ပိုင်း် ရာမာ type ID ကို 8e လို ဲ့ သတ်မတ်နပ်းလိုက်ပါ။ type ID သတ်မတ်နပ်းတဲဲ့ အနကကာင််းကို ယခင် status မာ နရ်းသာ်း ခဲဲ့ပပီ်းပါပပီ။ ဟိုတ်ပပီ။ size 2G ေီ ရတဲဲ့ /dev/sdb1 ေဲ ဲ့ /dev/sdb2 ဆတ ို ဲဲ့ partition ၂ ခို ရပပီဆပ ို ါ နတာ။ဲ့ ဒီ partition ၂ ခိုကို အရင််းဖပြုပပီ်း logical volume (LV) နတွေ ြေ်တီ်းလိုက်ရနအာင်။ ၁။ အရင်ဦ်းဆ်းို partition နတွေကို physical volume (PV) နတွေ အဖြေ် နဖပာင််းလဲရပါမယ်။ partition ၂ ခိုကို PV အဖြေ် နဖပာင််းလဲြို command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ ဲ့ pvcreate /dev/sdb1 /dev/sdb2 ၂။ ရရလာတဲဲ့ physical volume ၂ ခိုကို ဖပေ်ကကညဲ့်ချင်ရင် pvs လို ရ ဲ့ ို က် enter နခါက်ရပါမယ်။ pvs ၃။ နောနောက ရရလာတဲဲ့ physical volume ၂ ခိုကို အရင််းဖပြုပပီ်း volume group (VG) ၁ ခို နဆာက်နပ်းရပါမယ်။ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ vgcreate my_vg /dev/sdb1 /dev/sdb2 my_vg ဆတ ို ာ volume group အမည်ပါ။ မမ နေ်သက်သလို နပ်းနင ို ပ ် ါတယ်။ ၄။ ရရလာတဲဲ့ volume group ကို ဖပေ်ကကညဲ့်ချင်ရင် vgs လို ရ ဲ့ ို က် enter နခါက်ရပါမယ်။ vgs ၅။ ခိုဆရ ို င် physical volume >> sdb1 ေဲ ဲ့ sdb2 နေ်ခိုနပါင််း 4G ရတဲဲ့ my_vg လို ဲ့ အမည်ရတဲဲ့ volume group ၁ ခို ရလာပါပပီ။ ဒီ vg ကနေမ 1G ေီ ရတဲဲ့ logical volume (LV) ၂ ခို ြေ်တီ်းပါမယ်။ command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ lvcreate -n my_lv1 -L 1G my_vg ဒါဆို lv ၁ ခို ရပါပပီ။ lvcreate -n my_lv2 -L 1G my_vg ဒါဆို lv ၂ ခို ရပါပပီ။ my_lv1 ေဲ ဲ့ my_lv2 က အမည်နတွေပါ။ မမ နေ်သက်သလို နပ်းနင ို ပ ် ါတယ်။ ၆။ ရရလာတဲဲ့ logical volume နတွေကို ဖပေ်ကကညဲ့်ချင်ရင် lvs လို ရ ဲ့ ို က် enter နခါက်ရပါမယ်။ lvs logical volume နတွေကို ြေ်တီ်းတဲဲ့ အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ #resize_the_LV ဒီ logical volume နတွေကို size ထပ်တို်း extend လိုပ်တဲဲ့ အပိုင်း် ဆီ ဆက်သွော်းကကရနအာင်။ ဥပမာ၊ နောနောက my_lv ဟာ 1G ေဲ ဲ့ မနလာက်ဘ်းူ ဆပ ို ါနတာ။ဲ့ သူက ို ါေ။ို ဲ့ ဲ့ ို 1G ထပ်တို်းမယ် ဆပ lvextend ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြုရပါတယ်။ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ lvextend -L +1G /dev/my_vg/my_lv1 lvs လို ရ ဲ့ ို က် enter နခါက်ပပီ်း ဖပေ်ကကညဲ့်ပါ။ my_lv1 မာ 1G ထပ်တို်းနေတာ နတွေျို့ရပါလမ်မ ဲ့ ယ်။ ကဲ ! ဟိုတ်ပပီ။



136



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



#formating ဒီ logical volume ဖြေ်တဲဲ့ my_lv1 ကို format ချကကညဲ့်ရနအာင်။ ext4 ေဲ format ချမယ် ဆပ ို ါေ။ို ဲ့ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါပဲ။ ဲ့ mkfs.ext4 /dev/my_vg/my_lv1 xfs ေဲ format ချမယ် ဆိုပါေ။ို ဲ့ command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါပဲ။ ဲ့ mkfs.xfs /dev/my_vg/my_lv1 ဒါဆို my_lv1 ကို xfs type ေဲ ဲ့ format ချပပီ်းပပီ ဆိုပါေ။ို ဲ့ directory တေ်ခိုခိုမာ mount လိုပ်ပပီ်း storage အဖြေ် အသ်းို ဖပြုလို ရပပီ ဲ့ နပါ။ဲ့ #mounting mount လိုပ်တဲဲ့ အပိုင်း် နလ်း ဆက်သာွေ ်းလိုက်ရနအာင်။ current user က root ဆပ ို ါေ။ို ဲ့ mkdir storage လို ရ directory နအာက်မာ storage ဆတ ို ဲဲ့ ဲ့ ို က် enter နခါက်ပပီ်း current user ရဲ home ဲ့ အမည်ေ ဲ directory တေ်ခို နဆာက်လိုက်ပါ။ ဲ့ my_lv1 ကို storage ဆတ ို ဲဲ့ directory (folder) ဆီ mount လိုပ်ြို ဲ့ အသ်းို ဖပြုရမယဲ့် command syntax ကနတာဲ့ နအာက်ပါအတိုင်း် ပါပဲ။ mount /dev/my_vg/my_lv1 /root/storage ကဲ ! ခိုဆို storage ဆတ ို ဲဲ့ directory ထဲမာ data နတွေ ေတင် သမ််းနင ို ပ ် ါပပီ။ Logical Volume Management (LVM) အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ ေည််းေည််း ရှု ပ်သလို ထင်ရနပမယဲ့် ၃ ခါနလာက် ြတ်ရင််း ေမ််းကကညဲ့်မယ်ဆို လွေယ်ကူသာွေ ်းမာပါ။ pv >> vg >> lv ဒီလို တေ်ဆငခ ်ဲ့ ျင််း သွော်းတာမို လွေ ဲ့ ယ်လွေယ်နလ်းပါနော်။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (8.8.2018)



137



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### Accessing Network Storage (NFS) ##### ဒီတေ်ခါ တင်ဖပမာက linux မာ server ဘက်က share ထာ်းတဲဲ့ storage တေ်ခိုကို မမ ေက်ရဲ ဲ့ သတ်မတ်ထာ်းတဲဲ့ directory တေ်ခိုဆီ mount လိုပ် ချတ်ဆက်တအ ဲဲ့ နကကာင််းပါ။ server ဘက်က storage ၁ ခိုကို share မယ်။ ဒါကို ကိုယ်ေ ဲ့ က်ကနေ လမ််းချတ်ယူမယ်။ ဒါပါပဲ။ server ဘက်ကနေ mount လိုပ်ရမယဲ့် source လမ််းနကကာင််းနတွေ option နတွေ နပ်းထာ်းပါ လမ်မ ဲ့ ယ်။ ဥပမာ၊ type >> nfs options >> sync,sec=krb5p source >> www.example.com:/share/public keytab >> http://www.example.com/pub/krb5.keytab ေသဖြငန ်ဲ့ ပါ။ဲ့ nfs ဆတ ို ာက network file system ကို ဆလ ို ိုတာပါ။ sync, sec=krb5p ကနတာဲ့ security option ပါ။ source ဆတ ို ာကနတာဲ့ ဒီနေရာမာ server ဘက်က နပ်းထာ်းတဲဲ့ root directory နအာက်က share နအာက်က public ဆတ ို ဲဲ့ storage (www.example.com:/share/public) ကို မမဘက်မာ mount လိုပ် တပ်ဆင်နပ်းရမာပါ။ keytab ဆတ ို ာကနတာဲ့ security ေဲ ဲ့ ဆင ို တ ် ဲဲ့ key ကို download လိုပ်ရမယဲ့် link ပါ။ ############################################################### ကဲ ! ေလိုက်ကကရနအာင်။ ၁။ nfs-utils ဆတ ို ဲဲ့ package ကို install လိုပ်ပါ။ yum -y install nfs-utils ၂။ wget ဆတ ို ဲဲ့ command line download manager ကို သွေင်း် ပါ။ yum -y install wget ၃။။ keytab ကို download ဆွေပဲ ပီ်း root directory နအာက်က etc နအာက် (/etc/) မာ နေရာ ချပါ။ wget -O /etc/krb5.keytab "http://www.example.com/pub/krb5.keytab" ၄။ mkdir ေဲ ဲ့mount point (directory) တေ်ခို ြေ်တီ်းပါ။ mkdir /root/mountpoint ၅။ server ဘက်က share ထာ်းတဲဲ့ storage ကို နအာက်ပါ command ေဲ ဲ့ကကညဲ့်ပါ။ showmount -e serveraddress serveraddress နေရာမာ server ရဲ hostname ကို ထညဲ့်နပ်း ဲ့ ရမာပါ။ ဥပမာ www.example.com ၆။ server ဘက်က storage ကို ယာယီ mount ြို ဲ့ အတွေက် command syntax ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါပဲ။ mount -t nfs -o sync,sec=krb5p server:/share/public /root/mountpoint



138



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



reboot လိုပ်လိုက်ရင် ဖပေ်ပျက်ပါတယ်။ ၇။ server ဘက်က storage ကို အပမဲ parmanent mount ထာ်းချင်ရင် /etc/fstab ကို vi ေဲ ဲ့ ြွေငပ်ဲ့ ပီ်း နအာက်ပါအတိုင်း် နရ်းသွေင်း် ပါ။ www.example.com:/share/public /root/mountpoint nfs sync,sec=krb5p 0 0 ၈။ ပပီ်းရင် နအာက်ပါ command ၂ ခို ကို run နပ်းပါ။ systemctl enable nfs-secure systemctl restart nfs-secure ဒါဆရ ို င် server ဘက်က နပ်းထာ်းတဲဲ့ storage ကို မမဘက်ဖခမ််းမာ တပ်ဆင်ဖခင််း ပပီ်းဆ်းို ပါပပီ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (10-8-2018)



139



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



##### Accessing SMB (SAMBA) File System ##### smb ကို linux ေဲ ဲ့windows အကကာ်း storage sharing လိုပ်ရာမာ အသ်းို မျာ်းပါတယ်နော်။ ဒီတေ်ခါ နရ်းမာက နတာဲ့ SMB Server ဘက်ကနေ share ထာ်းတဲဲ့ storage directory ကို client ဘက်မာ ချတ်ဆက်တဲဲ့ အနကကာင််းပါ။ mounting/mount လိုပ်တယ်ဆတ ို ာ တေ်ဘက်က share ထာ်းတဲဲ့ storage ကို မမ ဘက်ဖခမ််း client side မာ တပ်ဆင်တာကို ဆလ ို ိုတာပါ။ mount လိုပ်တာေဲ ပတ် သက်လို ယခင် post နတွေမာလည််း နရ်းခဲဘ ဲ့ ဲ့ ဲ့ ်းူ ပါပပီ။ mount လိုပ်ေည််းနတွေက တေ်ခိုေတေ် ဲ ဲ့ ခို အချက်အလက်နရ်းသွေင်း် တဲဲ့ အပင ို ်း် မာ အေည််းငယ် လွေဲရို မအပ အနဖခခ concept ချင််းက အတူတူပါပဲ။ SMB မာဆရ ို င် mount လိုပ်ရာမာ uaer name ေဲ password နလ်း ထညဲ့်နပ်းရတာ ၁ ချက် ပိုလာတာ ဲ့ တေ်ခိုပါပဲ။ ################################################# ကဲ ! ေလိုက်ရနအာင်။ ဒီလို ချတ်ဆက်ြိုအတွေ က် SMB Server ဘက်ကနေ နအာက်ပါ အချက်အလက်နတွေကို နပ်းထာ်းပါ ဲ့ လမ်မ ဲ့ ယ်။ ၁။ share ထာ်းတဲဲ့ directory လမ််းနကကာင််း ၂။ user name, password ေဲ ဲ့domain group ၃။ file system type (cifs) ေတာနတွေကို နပ်းထာ်းပါလမ်မ ဲ့ ယ်။ အဲဒန ီ ပ်းထာ်းတဲဲ့ အချက်နတွေကို အသ်းို ဖပြုပပီ်း smb server ဘက်က share ထာ်းတာကို မမ ဘက်မာ mount လိုပ်နပ်းရမာပါ။ mount လိုပ်ရာမာ ၁။ ယာယီ mount ၂။ permanent mount ၃။ auto mount ဆပို ပီ်း ၃ ပိုင်း် ခွေဲ တင်ဖပသွော်းပါမယ် ။ ဲ့ မေတင်မီ အရင်ဆ်းို cifs-utils ဆတ ို ဲဲ့ package ကို အရင်ဆ်းို install လိုပ်ပါ။ နအာက်ပါအတင ို ်း် နပါ။ဲ့ yum -y install cifs-utils ################################################# ဥပမာ အနေေဲ server ဘက်ကနေ နအာက်ပါအတိုင်း် share ထာ်းတယ် ဆပ ို ါေို။ဲ့ ဲ့ ၁။ /student ကို share ထာ်းတယ်။ ၂။ user name က tom, password က redhat, domain group က MYGROUP



140



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၃။ file system type က cifs ဒီအချက်နတွေကို အနဖခခပပီ်း mount လိုပ်ကကရနအာင်။ ################################################# #ယြောယီ_ mount or manual mount ၁။ root နအာက်မာ share ဆတ ို ဲဲ့ directory နအာက်မာ student1 အမည်ေ ဲ ဲ့ mount point တေ်ခို နဆာက်ပါ။ mkdir /share mkdir /share/student1 ၂။ user name, password နတွေကို file တေ်ခို နဆာက်ပပီ်း သမ််းပါ။ touch /etc/secure.smb ၃။ vi /secure.smb လို ြွေ ဲ့ ငပ်ဲ့ ပီ်း နအာက်ပါအတိုင်း် နရ်းသွေင်း် ပါ။ username=tom password=redhat domain=MYGROUP ပပီ်းရင် secure.smb ကို နအာက်ပါအတင ို ်း် permission နပ်းပါ။ chmod 600 /secure.smb ၄။ terminal တွေင် နအာက်ပါအတိုင်း် နရ်းသွေင်း် ပပီ်း mount ပါ။ mount -t cifs -o credentials=/etc/secure.smb //server/student /share/student1 ဒါဆို server ဘက်က share ထာ်းတဲဲ့ student ဆတ ို ဲဲ့ directory ကို /share/student1 နအာက်မာ ယာယီ mount နင ို ပ ် ါပပီ။ ################################################# #permanent_mount or persistent mount permanent mount ြို အတွေ က်ကနတာဲ့ /etc/fstab မာ နအာက်ပါအတိုင်း် ေင်နရ်း နပ်းရပါမယ်။ ဲ့ //server/student /share/student1 cifs credentials=/ecure.smb 0 0 ဒါဆို permanent mount လိုပ်ဖခင််း ပပီ်းဆ်းို ပါပပီ။ ################################################# #auto_mount ဦ်းဆ်းို autofs package ကို install လိုပ်ပါ။ yum -y install autofs ၁။ /etc/auto.master.d နအာက်မာ indirect.autofs လို နဆာက် နပ်းပါ။ ဲ့ indirect.autofs ထဲမာ mount point ေဲ ဲ့ map file လမ််းနကကာင််းကို နအာက်ပါအတိုင်း် နရ်းသွေင်း် ပါ။ /share /etc/auto.indirect ရင််းရရင် /share >> mountpoint /etc/auto.indirect >> map file



141



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



၂။ vi /etc/auto.indirect လို ရ ဲ့ ို က်ပပီ်း နအာက်ပါအတိုင်း် နရ်းသွေင်း် ပါ။ student1 -fstype=cifs,credentials=/etc/secure.smb ://server/student ၃။ systemctl restart autofs လို ရ ဲ့ ို က် enter နခါက်ပါ။ systemctl enable autofs လို ရ ဲ့ ို က် enter နခါက်ပါ။ ဒါဆို auto mount လိုပ်ဖခင််း ပပီ်းဆ်းို ပါပပီ။ ################################################# ကဲ ! SMB server ဘက်က share ထာ်းတဲဲ့ directory ကို မမဘက်ဖခမ််းမာ mount လိုပ် ချတ်ဆက်တဲဲ့ အနကကာင််းကနတာဲ့ ဒီနလာက်ပါပဲ။ ေည််းေည််း ရှု ပ်သလို ရနပမယဲ့် ယခင် mount လိုပ်ေည််း သင်ခေ််းောနတွေကို နကကညက်ရင် အဆင်နဖပမာပါနော်။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (10-8-2018)



142



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



+++ Firewalld (Linux New Generation Firewall) +++ linux system administration ေဲ ဲ့ပတ်သက်လို ဲ့ဒါက နောက်ဆ်းို post ပါ။ ဒီ post နလ်းေဲ ဲ့ေဂို်းချြုပ် ပါရနေ။ red hat, centos ေဲ ဲ့ fedora linux တရဲ ို ဲ့ firewalld အနကကာင််း concept ပါ။ firewall ၁ ခို အနေေဲ ဲ့ ဲ့ အကကမ််းအာ်းဖြင်ဲ့ service နတွေကို ြွေင/်ဲ့ ပတ် port နတွေကို ြွေင/်ဲ့ ပတ်၊ ေတာနတွေကို နဆာင်ရွေက်နပ်း ပါတယ်။ အဓက က inbound/outbound traffic နတွေကို ထေ််းချြုပ်ြိုနပါ ဲ့ ။ဲ့ အနသ်းေတ်ကိုနတာဲ့ Iptables (Linux Firewall) မာ နရ်းခဲပဲ့ ပီ်းပပီမို ထပ် မရင််းနတာပ ဲ့ ဲ့ ါဘူ်းနော်။ firewalld ကို graphical ေဲ လွေ ို သ ် လို၊ command line ကနေလည််း အသ်းို ဖပြုနင ို ် ဲ့ ယ်ကူေွော အသ်းို ဖပြုနင ပါတယ်။ ကဲ ! ေလိုက်ရနအာင်။ #graphical_user_interface terminal ထဲမာ firewall-config လရ ို ဲ့ ို က် enter နခါက်လိုက်ပါ။ ဒါဆရ ို င်၊ main firewall confifuration screen ပွေငလ ်ဲ့ ာပါလမ်မ ဲ့ ယ်။ default အနေေဲ ဲ့ zone မာ public zone ကို သတ်မတ် ထာ်းနပ်းပါတယ်။ လက်ရ မမ active ဖြေ်နေတဲဲ့ zone နပါ။ဲ့ services ထဲမာ မမ ြွေငခ ်ဲ့ ျင်တဲဲ့ service နတွေကို အမေ်ဖခေ်နပ်းရို ပါပဲ။ ပတ်ထာ်းချင်ရင် အမေ်ဖခေ် ဖြြုတ်နပ်းရို နပါ။ဲ့ port နတွေကို ြွေငပ ်ဲ့ တ်လိုပ်ချင်ရင် port ဆတ ို ဲဲ့ tab ကိုသာွေ ်းပပီ်း အမေ်ဖခေ်တာ ဖြြုတ်တာနတွေ ဖပြုလိုပ် နပ်းရို ပါပဲ။ ပပီ်းရင် မမ နဖပာင််းလဲလိုက်တာကို permanent သတ်မတ်ြို ဲ့ အတွေက် အနပေါ် menu မာ ရတဲဲ့ Options > Reload Firewalld ကို နပ်နပ်းလိုက်ပါ။ လွေယ်ကူပါတယ်နော်။ #command_line_interface ကဲ command line ကနေ အသ်းို ဖပြုပိုနလ်း နလဲ့လာကကညဲ့်ရနအာင်။ ၁။ မမ system မာ ဘယ် zone နတွေဟာ active ဖြေ်နေလဲ နအာက်ပါ command ေဲ ဲ့ ကကညဲ့်ရှုနင ို ပ ် ါတယ်။ firewall-cmd --get-active-zones ၂။ မမ ြွေငန ်ဲ့ ေချင်တဲဲ့ service နတွေကို နအာက်ပါအတင ို ်း် သတ်မတ်နင ို ပ ် ါတယ်။ ဥပမာ၊ public zone မာ http, https, ftp ေတာနတွေကို permanent ြွေငန ်ဲ့ ပ်းမယ် ဆပ ို ါေ။ို ဲ့ firewall-cmd --add-service={http,https,ftp} --permanent --zone=public ၃။ မမ ြွေငန ်ဲ့ ေချင်တဲဲ့ port နတွေကို add နပ်းမယ်ဆပ ို ါေ။ို ဲ့ firewall-cmd --add-port=port/protocol --zone=public



143



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



protocol နေရာမာ မမ အသ်းို ဖပြုမယဲ့် protocol ကို ထညဲ့်နပ်းရပါမယ်။ ၄။ မမ ြွေငထ ်ဲ့ ာ်းတဲဲ့ service နတွေကို ဖပေ်ဖြြုတ်ချင်ရင် နအာက်ပါ command ကို အသ်းို ဖပြုရပါမယ်။ ftp service ကို ဖြြုတ်မယ် ဆပ ို ါေ။ို ဲ့ firewall-cmd --remove-service=ftp --zone=public ၅။ မမ ြွေငထ ်ဲ့ ာ်းတဲဲ့ port နတွေကို ဖပေ်ဖြြုတ်ချင်ရင် နအာက်ပါ command ကို အသ်းို ဖပြုရပါမယ်။ port 161 ကို ဖြြုတ်မယ်ဆပ ို ါေ။ို ဲ့ firewall-cmd --remove-port=161/protocol --zone=public 161 ဆတ ို ာ ဥ မြောက ်းထာ်းတဲဲ့ port number ပါ။ protocol နေရာမာ port ေဲ ဲ့ သက်ဆင ို တ ် ဲဲ့ protocol ကို ထညဲ့်နပ်းရပါမယ်။ ၆။ firewall ကို reload လိုပ်နေချင်ရင် နအာက်ပါ command ကို အသ်းို ဖပြုရပါမယ်။ firewall-cmd --reload ၇။ firewall ကို restart လိုပ်ချင်ရင်နတာဲ့ systemctl restart firewalld လို ရ ဲ့ ို က် enter နခါက်နပါ။ဲ့ systemctl restart firewalld ၈။ firewall ကို မသ်းို ချင်ရင်နတာဲ့ နအာက်ပါအတိုင်း် နပါ။ဲ့ systemctl disable firewalld systemctl stop firewalld ကဲ ! Linux ရဲ New Generation Firewall ဖြေ်တဲဲ့ firewalld အနကကာင််း concept နလ်းကနတာဲ့ ဲ့ ဒီနလာက်ပါပဲနော်။ ပိုပပီ်း နလဲ့လာချင်ရင် နအာက်ပါ Link နလ်းမာ သွော်းနရာက် ြတ်ရှုပါနော်။ https://firewalld.org/ ခိုကေလို linux system administration ေဲ ဲ့သက်ဆင ို တ ် ဲဲ့ post နတွေ ပပီ်းဆ်းို ပါပပီ။ ဲ့ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu (14-8-2018)



144



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



BONUS TRACK



+ + [ Network Bonding in red hat, centos, fedora linux server] + + အသ်းို တကယ်ေင်ပပီ်း Telecom, ISP ေဲ ဲ့Enterprise နတွေမာ တကယ် အသ်းို ဖပြုနေတာနလ်း ၁ ခို ပါ။ #intro ISP နတွေ Telecom နတွေ bank နတွေရဲ linux server နတွေမာ၊ network interface နတွေကို single ဲ့ interface ၁ ခိုတည််းအဖြေ် နပါင််းေည််းပပီ်း၊ NIC bonding ကို အသ်းို ဖပြုနလဲ့ ရတယ်။ ခိုတင်ဆက်မာ က အဲဒ ီ NIC Bonding or Network Bonding အနကကာင််းပါ။ #purpose NIC bonding ကို ဘာန ို တာ၊ဲ့ တေ်ခို fail ဖြေ်သာွေ ်းရင် နောက် ၁ ခိုက hot ဲ့ ကကာင်ဲ့ အသ်းို ဖပြုသလဲဆန standby ရနေြို အတွေ က်၊ load balancing အတွေက်၊ link integrity ရြို အတွေ က် အသ်းို ဖပြုတာပါ။ ဲ့ ဲ့ ဒါမမဟိုတ် speed ေဲ ဲ့bandwidth ပိုနကာင််းြို အသ ်းို ဖပြုတာပါ။ ဲ့ #terms eth0 ေဲ eth1 ဆပို ပီ်း netword card ၂ card ရတယ်ဆပ ို ါေ။ို ဲ့ bond လိုပ်မယ်ဆိုရင် eth0 ေဲ ဲ့eth1 ကို ဲ့ slave နတွေလို ဲ့ နခေါ်ပါတယ်။ bond လိုပ်ပပီ်း ရလာတဲဲ့ interface အသေ်ကိုနတာဲ့ bond0 သမဟို ို ဲ့ တ် master လို နခေါ် ဲ့ ပါတယ်။ #types NIC bonding အမျြု်းအော်း ၆ မျြု်း ရပါတယ်။ အဲဒါနတွေကနတာဲ့ - - -> mode0 >> round-robin policy : packets နတွေကို bonded လိုပ်ထာ်းတဲဲ့ NIC နတွေကနေ တလညဲ့်ေီ transmit လိုပ်ပါတယ်။ load balancing ေဲ ဲ့fault tolerance ရနေပါတယ်။ mode1 >> active backup policy : ဒီ mode မာ NIC တေ်ခိုသာ active ဖြေ်နေပပီ်း၊ အဲဒ ီ NIC ပျက်သာွေ ်းမ နောက် ၁ ခိုက active ဖြေ်လာပါတယ်။ fult tolerance ရနေပါတယ်။ အသ်းို မျာ်းပါတယ်။ mode2 >> balance xor policy : load balancing ေဲ ဲ့ fault tolerance ရြိုအတွေ က် ဲ့ အသ်းို ဖပြုပါတယ်။ mode3 >> broadcast policy : slave interfaces နတွေ အာ်းလို်းကနေ transmit လိုပ်ပါတယ်။ fault tolerance ရနေပါတယ်။ mode4 >> IEEE 802.3ad >> dynamic link aggregation လလည် ို ဲ့ ်း နခေါ်ပါတယ်။ interface နတွေဟာ နပါင််းေည််းထာ်းတဲဲ့ group ၁ ခို အနေေဲ ဲ့ same speed ေဲ ဲ့ duplex settings နတွေကို



145



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



အသ်းို ဖပြုပါတယ်။ ဒီ mode ကို သ်းို မယ်ဆရ ို င် switches နတွေ အနေေဲ 802.3ad mode ကို support ဲ့ လိုပ်ြို၊ ဲ့ enable ဖြေ်ြို လ ဲ့ ိုပါတယ်။ ဒီ mode ကလည််း အသ်းို မျာ်းပါတယ်။ mode5 >> adaptive transmit load balancing : အထူ်းအနထွေ နဖပာေရာ မရပါဘူ်း transmit ပိုင်း် မာ load balancing ကို အသာ်းနပ်းတဲဲ့ mode ပါ။ mode6 >> adaptive load balancing : အထူ်းအနထွေ နဖပာေရာ မရပါဘူ်း receive ပိုင်း် မာ load balancing ကို အသာ်းနပ်းတဲဲ့ mode ပါ။ အဲဒ ဲ့ ီ mode ၆ ခိုထမ ဲ ာ အသ်းို အမျာ်းဆ်းို က mode1 ေဲ ဲ့moe 4 ပါ။ ######### ကဲ ! ဘယ်လို bond မယ်ဆတ ို အ ဲဲ့ နကကာင််း ဆက်ကကေ။ို ဲ့ နအာက်ပါအတင ို ်း် network interface ၂ ခို ရတယ် ဆပ ို ါဆ။ို ဲ့ 1. eth0 2. eth1 အဲဲ့ ၂ card ကို ၁ card ထဲအဖြေ် bond မယ်နပါ။ဲ့ ၁။ terminal ထဲမာ၊ modprobe --first-time bonding ဆတ ို ဲဲ့ command ကို ရို က်ပပီ်း bonding module ကို enable လိုပ်ပါ။ ၂။ modinfo bonding ဆတ ို ဲဲ့ command ေဲ ဲ့ bonding module ရဲ ဲ့ information နတွေကို ကကညဲ့်နင ို ပ ် ါတယ်။ ၃။ cd /etc/sysconfig/network-scripts/ ဆတ ို ဲဲ့ command ေဲ ဲ့directory ထဲကို သွော်းပါ။ ၄။ touch ifcfg-bond0 ဆတ ို ဲဲ့ command ေဲ master interface ကို နဆာက်ပါ။ ဲ့ ၅။ vi ifcfg-bond0 ကို ေင်ပပီ်း နအာက်ပါအတိုင်း် configuration သွေင်း် ပါ။ DEVICE=bond0 NAME=bond0 TYPE=Bond BONDING_MASTER=yes IPADDR=192.168.1.150 PREFIX=24 ONBOOT=yes BOOTPROTO=none USERCTL=no NM_CONTROLLED=no



146



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



BONDING_OPTS="mode=1 miimon=100" ဒီနေရာမာ BONDING_OPTS="mode=1 က mode1 ကို အသ်းို ဖပြုမယ်ဆတ ို ဲဲ့ သနဘာပါ။ ######### ကဲ ! bond0 ဆတ ို ဲဲ့ master card ကိုနတာဲ့ configure လိုပ်ပပီ်းပပီ။ slave card ၃ ခိုကို ဆက် configure လိုပ်ကကေ။ို ဲ့ ၁။ vi /etc/sysconfig/network-scripts/ifcfg-eth0 ကို ေင်ပပီ်း နအာက်ပါအတိုင်း် အချျို့ကို ထပ်မ နရ်းသွေင်း် ဖပင်ဆင်ပါ။ TYPE="Ethernet" BOOTPROTO="none" DEFROUTE="yes" NAME="eth0" ONBOOT="yes" MASTER=bond0 SLAVE=yes USERCTL=no NM_CONTROLLED=no ၂။ vi /etc/sysconfig/network-scripts/ifcfg-eth1 ကို ေင်ပပီ်း နအာက်ပါအတိုင်း် အချျို့ကို ထပ်မ နရ်းသွေင်း် ဖပင်ဆင်ပါ။ TYPE="Ethernet" BOOTPROTO="none" DEFROUTE="yes" NAME="eth1" ONBOOT="yes" MASTER=bond0 SLAVE=yes USERCTL=no NM_CONTROLLED=no ခိုလို configuration သွေင်း် ပပီ်းတဲအ ဲ့ ခါ systemctl restart network ဆတ ို ဲဲ့ command ေဲ ဲ့ network ကို restart လိုပ်ပါ။ ပပီ်းရင် bond လိုပ်ထာ်းတဲဲ့ interface (ifcfg-bond0) အလိုပ် လိုပ်မလိုပ် နအာက်ပါ command ေဲ ဲ့ ေေ်နဆ်းပါ။



147



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



cat /proc/net/bonding/bond0 network interfaces နတွေရဲ list ပါ command ကို သ်းို ပါ။ ဲ့ ေဲ ip ဲ့ နတွေကို ကကညဲ့်ြို နအာက် ဲ့ ip addr ကဲ ! ခိုဆို Network Bonding လိုပ်ငေ််းေဉ ပပီ်းဆ်းို ပါပပီ ...။ အာ်းလို်း အဆင်နဖပကကပါနေ ^_^ yin thu



+ + [ UFW : Uncomplicated Fire Wall ] + + တဖခာ်း firewall နတွေအနကကာင််းလည််း တင်နပ်းဘူ်းပပီမို ဲ့ firewall ေဲ ဲ့ ဆင ို တ ် ၊ဲဲ့ concept နတွေကို သနေကကမယ် ထင်ပါတယ်။ ခိုတခါ Linux ရဲ Firewall တေ်ခိုဖြေ်တဲဲ့ ufw နအကကာင််း နလဲ့လာကကညဲ့် ဲ့ ရနအာင်။ What is UFW? UFW ဆတ ို ာက Debian Linux နတွေ အတွေက် firewall တေ်ခိုပါ။ ubuntu, Kali ေတာနတွေမာ အသ်းို ဖပြုပါတယ်။ သနသာ် ို ဲ့ ဖငာ်း centos, fedora အပါအေင်၊ တဖခာ်း linux distro နတွေမာလည််း install လိုပ် အသ်းို ဖပြုနင ို တ ် ာမို ကေ သ ် ဲ့ တ်ချက်နတာဲ့ မရပါဘူ်း။ ဲ့ သူက ဲ့ ို iptables firewall rules နတွေထက် နရ်းသာ်းရတာ ပိုမို ရို ်းရင််းတဲဲ့ ပိုေေဲ ဲ့ ြေ်တီ်းထာ်းတာပါ။ rules သတ်မတ်တဲဲ့ command နတွေက human readable ပိုဆေ်ပါတယ်။ ဒါနကကာင ်ဲ့ သူအမည် က ဲ့ ဲ့ uncomplicated firewall တဲ။ဲ့ How to install? apt-get install ufw သမဟို ို ဲ့ တ် sudo apt-get ufw လို ဲ့ ရို က် enter နခါက်ပပီ်း သွေင်း် ယူနင ို ် ပါတယ်။ သမဟို ို ဲ့ တ် yum install -y epel-release yum install -y ufw ဆိုပပီ်း သွေင်း် ယူနင ို ပ ် ါတယ်။



148



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



How to check ufw? ufw ဟာ run နေသလာ်း၊ ရပ်နေသလာ်း ဆတ ို ာကို ufw status ဆတ ို ဲဲ့ command ေဲ ဲ့ ေေ်နဆ်းနင ို ် ပါတယ်။ How to run? ufw ကို run မယ်၊ ေက်တက်လာတာေဲ ဲ့ run မယ်၊ ဆရ ို င် ufw enable ဆိုတဲဲ့ command ေဲ ဲ့ run နင ို ပ ် ါတယ်။ How to stop? ufw ကို ဖပေ်ပတ်ထာ်းမယ် ဆရ ို င် ufw disable ဆတ ို ဲဲ့ command ေဲ ဲ့stop လိုပ်နင ို ပ ် ါတယ်။ #Default_rules ufw ဟာ incoming ေဲ ဲ့outgoing traffic နတွေကို default အနေေဲ ဲ့အာ်းလို်းကို allow လိုပ်နပ်းထာ်း ပါတယ်။ incoming ေဲ ဲ့outgoing ကို default အနေေဲ ဲ့ပတ်ထာ်းြို command ကနတာဲ့ --> ဲ့ ufw default deny incoming ufw default deny outgoing incoming ေဲ outgoing ကို default အနေေဲ ြွေ ်ဲ့ ာ်းြို command ကနတာဲ့ --> ဲ့ ဲ့ ငထ ဲ့ ufw default allow incoming ufw default allow outgoing #Connection_and_services firewall ရဲ ဲ့default rules အရ incoming connection နတွေကို block ထာ်းတယ် ဆပ ို ါေ။ို ဲ့ ssh service ကိုနတာဲ့ ြွေငန ်ဲ့ ပ်းထာ်းချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါ အတိုင်း် ပါ။ ufw allow ssh ufw allow 22/tcp တြေ် ftp service ကို ြွေငန ်ဲ့ ပ်းထာ်းမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါ အတိုင်း် ပါ။ ufw allow ftp ufw allow 21/tcp တြေ် web service ကို ြွေငန ်ဲ့ ပ်းထာ်းမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါ အတိုင်း် ပါ။ ufw allow www ufw allow 80/tcp



149



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



သမဟို ို ဲ့ တ် ufw allow proto tcp from any to any port 80,443 တြေ် MySQL service ကို ြွေငန ်ဲ့ ပ်းထာ်းမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ ufw allow 3306/tcp သမဟို ို ဲ့ တ် ufw allow from any to any port 3306 တြေ် PostgreSQL ကို ြွေငန ်ဲ့ ပ်းချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါ အတိုင်း် ပါ။ ufw allow from any to any port 5432 တြေ် mail ေဲဆ ို တ ် ဲဲ့ SMTP ကို ြွေငန ်ဲ့ ပ်းချင်တယ် ဆပ ို ါေ။ို ဲ့ ဲ့ င ufw allow 25 တြေ် mail ေဲဆ ို တ ် ဲဲ့ POP3 ေဲ ဲ့POP3S ကို ြွေငန ်ဲ့ ပ်းချင်တယ် ဆပ ို ါေ။ို ဲ့ ဲ့ င ufw allow 110 ufw allow 995 တြေ် message service IMAP ေဲ IMAPS ကို ြွေငန ်ဲ့ ပ်းချင်တယ် ဆပ ို ါေ။ို ဲ့ ဲ့ ufw allow 143 ufw allow 995 #Port_ranges အထက်မာ ပါတဲဲ့ 22, 21, 80 တဆ ို ဲ့ တ ို ာက သက်ဆင ို ရ ် ာ service ရဲ ဲ့ port နတွေပါ။ အမျာ်းေို သပပီ်းမယ်ထင်ပါတယ်။ အဲဒ ဲ့ ီ port နတွေကိုမ ဥပမာ 1 ကနေ 1000 အထ ေသည်ဖြင်ဲ့ range တေ်ခို သတ်မတ်ပပီ်း ြွေငန ်ဲ့ ပ်းချင်တယ် ဆပ ို ါေ။ို ဲ့ protocol အမျြု်းအော်းက tcp ဖြေ်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ ufw allow 1:1000/tcp တြေ် အဲဒ ဲ့ ီ port နတွေကိုမ ဥပမာ 1000 ကနေ 2000 အထ ေသည်ဖြင်ဲ့ range တေ်ခို သတ်မတ်ပပီ်း ြွေငန ်ဲ့ ပ်းချင်တယ် ဆပ ို ါေ။ို ဲ့ protocol အမျြု်းအော်းက udp ဖြေ်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ ufw allow 1:1000/udp



150



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



#IP_addresses မမ server ဆီကို သတ်မတ် ip address ကိုပဲ ချတ်ဆက်ခွေငဖ်ဲ့ ပြုမယ် ဆပ ို ါေ။ို ဲ့ ip က 192.168.100.10 ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ ufw allow from 192.168.100.10 network တေ်ခိုလို်းကို ချတ်ခွေငဖ်ဲ့ ပြုထာ်းချင်တယ်။ 192.168.100.0/24 ဆတ ို ဲဲ့ network ကို ခွေငဖ်ဲ့ ပြုမယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတင ို ်း် ပါ။ ufw allow from 192.168.100.0/24 #Denying နောနောက connection နတွေ service နတွေ port နတွေ ip နတွေကို allow လိုပ် ြွေငန ်ဲ့ ပ်းတာ။ အဲဒါေဲ နဖပာင် ်းဖပေ် deny လိုပ် ပတ်ထာ်းချင်တာ ဆပ ို ါေ။ို ဲ့ ဲ့ လွေယ်လွေယ်နလ်းပါ allow နေရာမာ deny ကို အော်းထ်းို ပပီ်း command ရို က်သာွေ ်းရို ပါပဲ။ ဥပမာ၊ မမ server ကနေ သတ်မတ် ip address ကို ပတ်ဆထာ်းမယ် ို ဲ့ ဆပ ို ါေ။ို ဲ့ ip က 192.168.100.10 ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ ufw deny from 192.168.100.10 ဥပမာ၊ မမ server မာက network နတွေ အမျာ်းကကီ်း ရနေတယ်။ eth0, eth1, eth2, eth3, ... ေသည်ဖြငန ်ဲ့ ပါ။ဲ့ အဲဒ ဲ့ မ ီ ာ ip >> 192.168.100.10 ကို ပတ်ချင်တယ်။ ဘယ်လို ပတ်ချင်တာလဲဆန ို တာဲ့ eth3 ဆီ လာချတ်မရနအာင်



ပတ်ချင်တာ။



အဲဒ ဲ့ အ ီ တွေက်



အသ်းို ဖပြုရမယဲ့်



command



ကနတာဲ့



နအာက်ပါအတင ို ်း် ပါ။ ufw deny in on eth3 from 192.168.100.10 #Deleting_rules ကိုယ်နရ်းထာ်းတဲဲ့ rules တေ်ခိုကို ြျက်ချင်တယ်။ ဥပမာ၊ ufw allow ssh ဆပို ပီ်း နရ်းသွေင်း် ခဲဲ့တာကို ဖပေ်ြျက်မယ် ဆပ ို ါေ။ို ဲ့ ufw delete allow ssh လို ရ ဲ့ ို က် enter နခါက်ပပီ်း ြျက်ရို ပါပဲ။ သမဟို ို ဲ့ တ်၊ rules နတွေက အရမ််း မျာ်းနေလို ဲ့ ေပါတ်ေဉေဲ ဲ့ ကကညဲ့်ပပီ်း။ ၁၀ နကကာင််းနဖမာက် rule ကို ြျက်ချင်တယ် ဆပ ို ါေ။ို ဲ့ ေပါတ်ေဉလိုက် ကကညဲ့်ရေ် နအာက်ပါ command သ်းို ပါ။ ufw status numbered ၁၀ နကကာင််းနဖမာက် rule ကို ြျက်ရေ် နအာက်ပါ command သ်းို ပါ။ ufw delete 10



151



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



#Logging ufw ေဲ ဲ့ပတ်သက်တဲဲ့ အချက်နတွေကို log လိုပ်ပပီ်း ဖပေ်ကကညဲ့်နင ို ပ ် ါတယ်။ low, medium, high ဆိုပပီ်း log level သ်းို ခို ရပပီ်း default setting ကနတာဲ့ low ပါ။ နအာက်ပါ command ကို သ်းို ပပီ်း log နတွေကို ြမ််းယူထာ်းနင ို ပ ် ါတယ်။ ufw logging log နတွေကို နအာက်ပါအတိုင်း် ဖပေ်ကကညဲ့်နင ို ပ ် ါတယ်။ less /var/log/ufw #Location_of_rules သတ်မတ်နပ်းလိုက်တဲဲ့ rules နတွေအနေေဲ ဲ့ ဘယ် file နတွေထက ဲ ို ေင်သာွေ ်းသလဲဆန ို တာ၊ဲ့ /etc/ufw ဆတ ို ဲဲ့ လမ််းနကကာင််းနအာက်က before.rules ေဲ ဲ့after.rules ဆတ ို ဲဲ့ file နတွေထက ဲ ို ေင်ပါတယ်။ configuration file ကနတာ၊ဲ့ /etc/default/ufw ဆတ ို ဲဲ့ file ပါ။ ဘာနတွေ နရ်းထာ်းသလဲ သချင် vi ေဲ ြွေ ဲ့ ငက်ဲ့ ကညဲ့်နပါ။ဲ့ #Reseting ကိုယ်နရ်းလိုကတ ် ဲဲ့ rules နတွေဟာ ရှု ပ်ယက်ခတ်ပပီ်း firewall ကို ေဂိုမူလ default အတိုင်း် ဖပေ်ဖြေ်နေချင်တယ် ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ ufw reset [ CONCLUSION ] --> firewall နတွေကို manage လိုပ်မယ်ဆ၊ို service နတွေ port numbers နတွေကို သမ အဆင်နဖပပါမယ်။ ဒါနကကာင ်ဲ့ အသ်းို မျာ်းတဲဲ့ service ေဲ ဲ့ port numbers နတွေကို ဲ့ ထညဲ့်နရ်းနပ်းထာ်းတာပါ။ rules နတွေ နရ်းပိုနရ်းေည််းကနတာဲ့ uncomplicated fire wall ဆတ ို ဲဲ့ အမည်ေအညီ ဲ ဲ့ ၊



လွေယ်ကူ



ရို ်းရင််းတာမို ဲ့



မခက်ခဲပါဘူ်းနော်။



www.google.com နပါနော် ဲ့ ။ ဒီနလာက်ပါပဲ။ အာ်းလို်း အဆင်နဖပပါနေ။ Yin Thu



152



ထပ်မ



သရလိုနသ်းရင်နတာဲ့



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



++[ making, mounting, burning iso file and creating bootable usb from command line ]++ ခိုတခါ အလညဲ့်ကျတာကနတာဲ့ iso file နတွေေ ဲ ဆ ို တ ် ဲအ ဲ့ နကကာင််းပါ။ iso file ဆတ ို ာ ဘာလဲဆန ို တာ၊ဲ့ ဲ့ င An ISO image file is a snapshot of the data and layout of a CD or DVD, saved in ISO9660 format. ပါတဲ။ဲ့ ဆက်လက်နြာ်ဖပမယဲ့် အနကကာင််းအရာနတွေ အတွေက် Linux ကို အနဖခခ နလာက်နတာဲ့ သထာ်းမ အဆင်နဖပပါမယ်နော်။ ေရနအာင်။ ၁။ Making iso file >> iso file လိုပ်ြို ဲ့အတွေက် genisoimage ဆတ ို ဲဲ့ tool ကို နအာက်ပါအတိုင်း် သွေင်း် ယူပါ။ Red Hat, Centos, Fedora အတွေက် yum install genisoimage Ubuntu, Kali အတွေက် apt-get install genisoimage ဥပမာ၊ /root/Desktop/music ဆတ ို ဲဲ့ folder ကို iso image file အဖြေ် နဖပာင််းမယ်ဆပ ို ါေ။ို ဲ့ အသ်းို ဖပြုရမယဲ့် command က နအာက်ပါအတိုင်း် ပါ။ genisoimage -o music.iso /root/Desktop/music enter နခါက်လိုက်တအ ဲဲ့ ခါ music.iso ဆတ ို ဲဲ့ file နလ်းရလာပါလမ်မ ဲ့ ယ်။ ဒီနေရာမာ music.iso သည် မမနပ်းလိုတဲဲ့ file အမည်ပါ။ နေ်သက်သလို နပ်းနင ို ပ ် ါတယ်။ ဒါနပမယဲ့် .iso ေဲဆ ဲ့ ်းို ြိုလ ဲ့ ိုပါလမ်မ ဲ့ ယ်။ ၂။ Mounting iso file >> iso file ထဲက data နတွေကို ကကညဲ့်ရှုလိုရင် အဲဒ ဲ့ ီ iso file ကို folder တခိုခိုမာ mount နပ်းြို၊ ဲ့ ချတ်နပ်းြို လ ဲ့ ိုပါတယ်။ နောနောက၊ /root/Desktop/music.iso အမည်ရ file ကို /root/Desktop/testfolder ဆတ ို ဲဲ့ နေရာဆီ ချတ်မယ် ဆပ ို ါေ။ို ဲ့ mount -o loop -t iso9660 /root/Desktop/music.iso /root/Desktop/testfolder



153



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



enter နခါက်လိုက်တဲအ ဲ့ ခါ music.iso သည် testfolder ဆီ ချတ်ပပီ်းသာ်း ဖြေ်သာွေ ်းပါလမ်မ ဲ့ ယ်။ cd /root/Desktop/testfolder လို ရ ို ပ ် ါပပီ။ ဲ့ ို က်ေင်၊ ls ေဲ ဲ့နခေါ် ပပီ်း data နတွေကို ကကညဲ့်နင ၃။ Burning iso to CD/DVD >> iso file ကို DVD အဖြေ် Burn နင ို ြ ် ို wodim ဆတ ို ဲဲ့ tool ကို ဲ့ နအာက်ပါအတင ို ်း် သွေင်း် ယူရပါမယ်။ Red Hat, Centos, Fedora အတွေက် yum install wodim Ubuntu, Kali အတွေက် apt-get install wodim ဥပမာ၊ music.iso ကို DVD အဖြေ် Burn မယ် ဆပ ို ါေ။ို ဲ့ wodim -eject -tao speed=1 dev=/dev/sr0 -v -musicdisc /root/Desktop/music.iso Entar နခါက်လက ို ်ရင် iso file ကို DVD အဖြေ် ေတင် Burn ပါလမ့်မယ် ဲ့ ။ ဒီ command မာ dev=/dev/sr0 သည် DVD Drive ကို ရည်ညွှေ်း် တာပါ။ distro အလိုက် တခိုေ ဲ တခို အမည် တူချင် ဲ့ မ တူမာပါ။ lsblk ဆတ ို ဲဲ့ command ကို သ်းို ပပီ်း DVD Drive အမည်ကို ကကညဲ့်နင ို ပ ် ါတယ်။ ၄။ Creating bootable usb >> linux OS တခိုခို၊ ဥပမာ fedora OS (Fedora-WorkstationLive-x86_64-29-1.2.iso) ကို usb flash drive ကနေ boot ဖြေ်နအာင် ြေ်တီ်းမယ် ဆပ ို ါေ။ို ဲ့ ဦ်းေွော၊ usb flash drive ကို laptop မာ တပ်လိုက်ပါ။ အလိုလို mount သွော်းပါလမ်မ ဲ့ ယ်။ ဥပမာ၊ flash



drive



name



က



myflashdrive



လို ဲ့



အမည်နပ်းထာ်းတယ်ဆပ ို ါေ။ို ဲ့



/media/root/myflashdrive ဆိုပပီ်း mount နေတယ် ဆပ ို ါေ။ို ဲ့ အဲဒ ဲ့ ီ flash drive ကို နအာက် ပါအတိုင်း် umount ဖပေ်လိုပ်နပ်းရပါမယ်။ umount /media/root/myflashdrive အကယ်၍ ဘာအမည်ေ ဲ ဲ့ ဘယ်လို mount ထာ်းသလဲ သလိုရင် lsblk ဆတ ို ဲဲ့ command ေဲ ဲ့ ကကညဲ့်နင ို ပ ် ါတယ်။



154



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



ကဲ ! umount လိုပ်ပပီ်းပပီ ထာ်းပါနတာ။ဲ့ flash drive ရဲ partition ကို format ချနပ်းရပါမယ်။ mkfs.vfat /dev/sdb1 -I ဲ့ ဒီနေရာမာ၊ /dev/sdb1 သည် flash drive ရဲ partition ပါ။ တခိုေတခို ဲ ဲ့ မတူ ကွေဲ ဖပာ်းနေနင ို တ ် ာမို ဲ့ ဲ့ fdisk -l ဆတ ို ဲဲ့ command ေဲ ဲ့ေေ်နဆ်းပပီ်းမ format ချပါ။ ဒါဆို flash drive သည် bootable usb လိုပ်ြို အသင ဖ်ဲ့ ြေ်ပါပပီ။ dd ဆတ ို ဲဲ့ command ကို အသ်းို ဖပြု ဲ့ ပပီ်း နအာက်ပါအတိုင်း် bootable usb ဖပြု လိုပ်ပါ။ dd if=/root/Desktop/Fedora-Workstation-Live-x8_64-29-1.2.iso of=/dev/sdb1 bs=4M && sync ကဲ ! command line နပေါ်မာ iso file ေဲ ဲ့ သက်ဆင ို တ ် ဲဲ့ အနကကာင််းနတွေကနတာဲ့ ဒီနလာက်ေ ဲ ဲ့ ော်းပါရနေ။ အာ်းလို်း အဆင်နဖပပါနေ။ PS --> [ Post ကို နေ်သက်ရင် Like, Comment, Share လိုပ်နင ို ပ ် ါတယ်။ Page က တင်သမျှကို ဖမင်ရြို Page ကို Like အဖပင် see first လိုပ်နပ်းထာ်းြို လ ဲ့ ဲ့ ိုအပ်ပါတယ် ] Yin Thu (14-2-2019)



155



xero_cool@(Kaung Myat Naing)@Yin Thu-Linux Ninja



###



ယ် process က cpu



memory ကို အမ ြော်းဆ်းု ယသ်းု က သလ? ပ ီ ်းကတြော



စက်က ါသွြော်းကအြောင်၊ Memory Cache ကို



ယ်လို ရှင်း် လင််းမလ? ###



ခိုတင်ဖပမယဲ့် topic နလ်းက ရို ်းရင််းနပမယဲ့် အရမ််း အသ်းို ေင်ပါတယ်။ ဥပမာ NOC နတွေမာ Monitoring ကကညဲ့်နေရင််း Memory usage က တဖြည််းဖြည််း တက်လာတယ်။ အရမ််းတက် လာတဲအ ဲ့ ခါ Monitoring Screen မာ warning alarm နတွေဖပမယ်၊ ဒီအခါ အခို တင်ဖပမယဲ့် ေည််းလမ််းက အသ်းို ေင်လာပါတယ်။ ၁။ ပထမ အနေေဲ ဲ့ ဘယ် process နတွေက cpu ကို အမျာ်းဆ်းို ယူသ်းို နေသလဲ ေေ်နဆ်းပါမယ်။ command ကနတာဲ့ နအာက်ပါအတိုင်း် ပါ။ ps -aux --sort=-%cpu | awk 'NR