DevOps_UNIX / Linux_6_file permission_ගැන

ja2k17ja

Member
May 10, 2017
185
166
0
තිස්සමහාරාම
DevOps_UNIX / Linux_6_file permission_ගැන

ඔන්න මම කලින්කියපු විදියටම අද කතාකරන්න යන්නේ UNIX / Linux file permission ගැන . file permission ගැන කතාකරන්නකලින් ඔයාල 3 පන්තියේ ගණිතය පාඩම් පොඩ්ඩක් මතක් කරගන්න ඕන . මේක හරියට ඉගෙන ගත්තොතින් ලංකාවේ හැටියට ඔයාලට ආණ්ඩුවේ University එකකින් ඩිග්රියක් ගත්තවගේ.
ඇත්තටම මම ඔය ලංකාවේ ආණ්ඩුවේ University වල UNIX / Linux උගන්වන ආකාරයනම් දන්නැ. නමුත් මට වසර කිහිපයකට කලින් ඔය කියල තියෙන ඒවායේ ඉගැන්වීම් කටයුතු කරන Doctors ල දෙන්නෙක් හමු වුණා ඒ මොහෙතෙ මට මුහුණ දෙන්න සිදුවුන සිදුවීමක් නිසා ඔවුන්ට පවා file permission ගැන හොද අවබෝදයක් නොමතිබව මට තේරුම් ගියා. මම එම සිදුවීම වෙන දවසක කියන්නම් :)

UNIX / Linux වලදී file permission සමග බැදී තිබෙන ප්‍රධාන කමාන්ඩ්ස් දෙකක් තියෙනව ඒ තමා chmod සහ chown කියන දෙක. මෙම කමන්ඩ්ස් බාවිතා කිරීමට ප්‍රථම අපි බලමු මොනවද මේ file permission කියන්නේ කියල. ( chown ගැන උදාහරණ සමග ඉදිරි පාඩම් වලින් විස්තරකරනව )
file permission මගින් මෙන මේ කියන දේවල් සලකුණු කරනවා. කාටද එම file එක හෝ directory එක access කරන්න පුළුවන් කියල සහ ඒ කුමන කටයුත්තක් සදහා ද කියන එක.

මුලින්නම අපි බලමු file හෝ directory ට අදාල permissionඑක දැනගන්නා ආකාරය. අපිට ඒ සදහා ls කමාන්ඩ් එක බාවිතාකරන්න පුළුවන්. මුලින්ම අපි කලින් පාඩම් වලදී සාදාගත් ~/lsmore කියන ඩිරෙක්ටරිය ඇතුලට යමු.

ට්‍රයි cd ~/lsmore
nix@Dell ~ $ cd ~/lsmore
nix@Dell ~/lsmore $ pwd
/home/nix/lsmore

දැන් අපි ට්‍රයි කරමු ls -l y*
nix@Dell ~/lsmore $ ls -l y*
-rw-r--r-- 1 nix nix 0 Jun 19 09:15 you

හරි දැන් අපිට "you" කියන file එකේ විස්තර ටික ලැබුන. දැන් අපි බලමු මේ "you" කියන file එකේ විස්තර වලින් file permission නිරුපනය වෙන්නේ මොන කොටසින්ද කියල. file permission එක නිරුපනය කිරීමට සංකේත හෝ අකුරු 9ක් බාවිතා කරනව , මේවා අකුරු (හෝ සංකේත) 3 කින්සමන්විත වූ කොටස් තුනකින් යුක්තයි. මෙන්න මේ වගේ AAABBBCCC

දැනටමත් ඔයාල දන්නවා මුල්ම ස්ථානය (අකුර හෝ සංකේතය) මගින් file types නිරුපනය කරනව කියල. ඒවගේම තමයි දෙවන ස්ථානයේ සිට දසවන ස්ථානය දක්වා ඇති අකුරු හෝ සංකේත 9 අයත් වනුයේ මම ඉහත පවසන ලද අකුරු 3නේ කොටස් තුනට. අපි දැන් එම අකුරු / සංකේත 3නේ කොටස් වල තියෙන්න පුළුවන් දේවල් ගැන කතා කරමු. අපිට මේ පාඩම ඉගෙන ගන්න එක පහසු කරගන්න මම ඒ එක කොටසකට තුනේ කෑල්ලක් කියල කියන්නම් .

1 වන තුනේ කෑල්ලෙන් Owner ට හිමි permission මොනවද කියල පෙන්නුම් කරල තියෙනව
2 වන තුනේ කෑල්ලෙන් Owner අයත් වන Group එකට ඇතුලත් වන අනෙක් users ලට හිමි permission මොනවද කියල පෙන්නුම් කරල තියෙනව
3 වන තුනේ කෑල්ලෙන් ඉහත කියපු කණ්ඩායම් දෙකටම අයිති නොවන users ලට හිමි වන permission මොනවද කියල පෙන්නුම් කරල තියෙනව. අපි ඉහත කියපු කණ්ඩායම් දෙකටම අයිති නොවන අය Others කියල කියනව.

අපි දැන් බලමු මේ කියපු, තුනේ කෑල්ලක තියෙන්න පුළුවන් අකුරු හා සංකේත මොනවද කියල. තුනේ කල්ලේ 1වන ස්ථානය හිමි වෙන්නේ r අකුරට , 2වන ස්ථානය හිමිවන්නේ w අකුරට , අන්තිම ස්ථානය හිමි වන්නේ x අකුරට. මෙම එක් එක් අකුර මගින් මෙන්න මේ permission නිරුපනය වෙනව.
r - read
w - write
x - execute


වැදගත් :- යම්කිසි file එකකට හෝ directory එකකට ඉහත කියන ලද permission හිමි නොවේ නම් එම permission එකට අදාල ස්ථානය - සංකේතය මගින් පුරවනු ලැබේ . - හි අර්ථය අදාල ස්ථානයට හිමි permission එක නොලද බවයි.

අපි නැවතත් අපේ "you" කියන file එක දෙසට යොමුවෙමු .

-rw-r--r-- 1 nix nix 0 Jun 19 09:15 you

අපි ඉහත පේලියේ මුලින් තියෙන - එක ඉවත්කර එයට පසුව තිබෙන ස්ථාන 9ය ගැන අවදානය යොමුකරමු. මම කිව්වේ මෙන්න මේ කොටස ගැන "rw-r--r--" අපිට මෙම කොටස අර මම කලින් කියපු විදියේ තුනේ කෑලි තුනකට් කඩාගන්න පුළුවන්, මෙන්න මේ වගේ "rw-" , "r--" සහ "r--". දැන් අපිට තියෙනව Owner ට අදාල තුනේ කැල්ල (rw-) , Group එකට අදාල තුනේ කැල්ල (r--) සහ
Others ලට අදාල තුනේ කැල්ල (r--).

අපි දැන් බලමු Owner අදාල තුනේ කෑල්ලෙන් (rw-) මොනවද පෙන්නන්නේ කියල,
1) r තියෙන්න ඕන තැන r තියෙනව ඒකෙ තේරුම Owner ට reed කරන්න permission තියෙනව කියන එක.
2) w තියෙන්න ඕන තැන w තියෙනව ඒකෙ තේරුම Owner ට write කරන්න permission තියෙනව කියන එක.
3) x තියෙන්න ඕන තැන x නොමැත, එම ස්ථානය - සංකේතය අරක් ගෙන ඇත :) එකෙ තේරුම Owner හ‍ට මෙම file එක execute කිරීමට නොහැකි.

අපි දැන් බලමු Group එකට අදාල තුනේ කෑල්ලෙන් (r--) මොනවද පෙන්නන්නේ කියල,
1) r තියෙන්න ඕන තැන r තියෙනව ඒකෙ තේරුම Group එකේ අයට reed කරන්න permission තියෙනව කියන එක.
2) w තියෙන්න ඕන තැන w නොමැත, ඒකෙ තේරුම Group එකේ අයට write කරන්න permission නොමැත කියන එක.
3) x තියෙන්න ඕන තැන x නොමැත, ඒකෙ තේරුම Group එකේ අයට execute කිරීමට permission නොමැත කියන එක.

අපි දැන් බලමු Others ලට අදාල තුනේ කෑල්ලෙන් (r--) මොනවද පෙන්නන්නේ කියල,
1) r තියෙන්න ඕන තැන r තියෙනව ඒකෙ තේරුම Others ලට reed කරන්න permission තියෙනව කියන එක.
2) w තියෙන්න ඕන තැන w නොමැත, ඒකෙ තේරුම Others ලට write කරන්න permission නොමැත කියන එක.
3) x තියෙන්න ඕන තැන x නොමැත, ඒකෙ තේරුම Others ලට execute කිරීමට permission නොමැත කියන එක.

අපිට අන්තිමට මේවිදියට "you" කියන file එක ගැන සංක්‍ෂිප්ත වාර්තාවක් දෙන්න පුළුවන්.
මෙම file එකේ හිමිකරුට reed සහ write යන කටයුතු දෙක කළහැකි අතර අනෙක් සියලු දෙනාට කල හැක්කේ reed කිරීම පමණයි.

දැන් ඔයාලට පුළුවන් ls -l මහින් දෙනුලබන ඕනෑම් file හෝ directory එකක තියෙන permission ටික දැනගන්න .

අපි දැන් තුනේ පන්තියේ ගණිතය පාඩමකට යමු.
මතක තියාගන්න UNIX / Linux වලදි ඉහත පැහැදිලි කරල දුන්න r , w සහ x අකුරු තුනට අනුරූපී අගයන් තිබෙනව.
පිලිවෙලින් r -> 4 , w -> 2 සහ x -> 1 කිලය . අපිට් මේ විදියට මතක තියාගන්න පුළුවන්
r = 4
w = 2
x = 1


දැන් අපිට මේ අගයන් ඉහත කියපු තුනේ කැලි තුනට ආදේශ කිරීමෙන් file permission සදහා සංඛ්යාත්මක අගයක් ලබාගන්න පුළුවන් .

මෙන්න මෙහෙමයි එක කරන්නේ අපි ඒ සදහා "you" කියන file එකම නිදසුනට ගනිමු .

-rw-r--r-- 1 nix nix 0 Jun 19 09:15 you

මේකෙන් file permission වලට අදාල කොටස දැන් වෙන්කරල ගනිමු. මේ තියෙන්නේ එම කොටස "rw-r--r--" අපි දැන් එම කොටස තුනේ කැලි තුනකට කඩමු.
මෙන්න මේ වගේ
"rw-"
"r--"
"r--"


ඊළගට අපි අගයන් ආදේශ කරමු. ඔයාල මම කරන විදියටම මේක කරන්න.
"rw-" = 4+2+0 = 6
"r--" = 4+0+0 = 4
"r--" = 4+0+0" = 4


අපිට් 6,4,4 කියල ඉලක්කම් 3ක් ලැබුන , මේ ඉලක්කම් තුන අපි එකට සම්බන්ද කරල මෙන්න මේ වගේ තමයි ලියන්නේ 644. අපිට මේ ඉලක්කම් තුන මේවිදියට විස්තර කරන්න පුළුවන්.
1 වන ඉලක්කම මගින් නියෝජනය කරන්නේ Owner ට හිමි permission.
2 වන ඉලක්කම මගින් නියෝජනය කරන්නේ Owner අයත් වන Group එකට ඇතුලත් වන අනෙක් users ලට හිමි permission.
3 වන ඉලක්කම මගින් නියෝජනය කරන්නේ Others ලට හිමි permission.

දැන් අපිට පුළුවන් file permission එකක් ඉලක්කමෙන් දුන්නවිට එකෙන් නිරුපනය කරන දේ තේරුම් ගන්න. බයවෙන්න දෙයක් නැ ටික කාලයක් යනකොට ඔයාලට ඉබේටම මේ දේවල් මතක හිටිනවා.

දැනට අපි මේවිදියට ලියල ගණන් හදන්න. හොදද ?....

අපි දැන් බලමු 777 කියල අගයක් දුන්න විට එකෙන් නිරුපනය කරන permission මොනවද කියල.
7 = 4+2+1 = rwx
7 = 4+2+1 = rwx
7 = 4+2+1 = rwx


අන්තිමට ලැබෙන්නෙ "rwxrwxrwx" මෙ මොකක්ද කියල දැන් ඔයාලට කියන්න පුළුවන්.

ට්‍රයි 755
7 = 4+2+1 = rwx
5 = 4+0+1 = r-x
5 = 4+0+1 = r-x

අන්තිමට ලැබෙන්නෙ "rwxr-xr-x"

ට්‍රයි 000
0 = -
0 = -
0 = -

අන්තිමට ලැබෙන්නෙ "---------" :)

අවසානයට අපි බලමු chmod මගින් file permission වෙනස් කරන ආකාරය. chmod මගින් file permission වෙනස් කරන ක්‍රම දෙකක් තියෙනව. එනම් absolute mode හා symbolic mode කියල.

මම ඔයාලට මුලින්ම කියල දෙන්නෙ absolute mode එක.

අපි දැන් absolute mode එක ට්‍රයි කරල බලමු
මුලින්ම cd ~/lsmore දීල lsmore එක ඇතුලට යමු

ට්‍රයි ls -l you
nix@Dell ~/lsmore $ ls -l you
-rw-r--r-- 1 nix nix 0 Jun 19 09:15 you

දැන් chmod සමග වැඩ පටන්ගමු.

ට්‍රයි chmod 755 you
nix@Dell ~/lsmore $ chmod 755 you
nix@Dell ~/lsmore $

ට්‍රයි ls -l you
nix@Dell ~/lsmore $ ls -l you
-rwxr-xr-x 1 nix nix 0 Jun 19 09:15 you

දැන් ඔයාලට "-rw-r--r-- 1" සහ "-rwxr-xr-x" සංසන්දනයකරල බලන්න පුළුවන්.
පේනවා නේද Owner ට අයිති තුනේ කැල්ලට (rwx) වෙනසක් වෙලා තියෙනවා කියල. අලුතින් x එකක් එකතු වෙලා. Group ගෙ කැලලටත් (r-x) අලුතින් x එකක් එකතු වෙලා. Others ලට ත් අලුතින් x එකක් එකතු වෙලා.

දැන් අපි බලමු symbolic mode එක.
මෙම ක්‍රමයෙදි අපි ඉලක්කම් බාවිතා කිරීමක් සිදුනොකරයි. පෙර පරිදිම මුලින්ම cd ~/lsmore දීල lsmore එක ඇතුලට යමු.

ට්‍රයි ls -l about
nix@Dell ~/lsmore $ ls -l about
-rw-r--r-- 1 nix nix 0 Jun 19 09:15 about

දැන් chmod සමග වැඩ පටන්ගමු.

ට්‍රයි chmod +x about
nix@Dell ~/lsmore $ chmod +x about
nix@Dell ~/lsmore $

ට්‍රයි ls -l about
nix@Dell ~/lsmore $ ls -l about
-rwxr-xr-x 1 nix nix 0 Jun 19 09:15 about

දැන් chmod දීමට පෙර හා පසු සංසන්දනය කරන්න.
පෙර "rw-r--r--"
පසු "rwxr-xr-x"
මේ ප්‍රතිපලය හැරියට් chmod 755 about දුන්න හා සමානයි. කෙලින් ම කියනවනම් "chmod +x about" කමාන්ඩ් එකෙන් සියලුම දෙනාට x ලැබිල තියෙනව (execute permission)
අපි හිතමු අපිට ඕන Owner ට පමණක් execute permission තියාගෙන අනිත් අයගේ execute permission ඉවත් කරන්න. එකත් අපිට් ලෙහෙසින්න්ම කරන්න පුළුවන්.

ට්‍රයි chmod go-x about
nix@Dell ~/lsmore $ chmod go-x about
nix@Dell ~/lsmore $

ට්‍රයි ls -l about
nix@Dell ~/lsmore $ ls -l about
-rwxr--r-- 1 nix nix 0 Jun 19 09:15 about

දැන් නැවතත් chmod දීමට පෙර හා පසු සංසන්දනය කරන්න.
පෙර "rwxr-xr-x" (මේ තියෙන්නෙ අපි කලින් "chmod +x about" හි ප්‍රථිපලය බව මතක් කරගන්න)
පසු "rwxr--r--"
මෙම ප්‍රතිපල සංසන්දනය කිරීමෙන් අපිට කියන්න පුළුවන් කලින් Group හා Others ලට හිමිව තුබුන x (execute permission) ඉවත් වී ඇතිබව.

තවත් වැදගත් දෙයක් තියෙනව . අපි මේවිදියට file සහ directory වල permission හදනකොට
u මගින් Owner නියෝජනය ද
g මගින් Group නියෝජනය ද
o මගින් Others නියෝජනය ද

සිදුකරයි.

දැන් අපි Owner ගෙ execute permission ඉවත් කරමු .

ට්‍රයි chmod u-x about
nix@Dell ~/lsmore $ chmod u-x about
nix@Dell ~/lsmore $

ට්‍රයි ls -l about
nix@Dell ~/lsmore $ ls -l about
-rw-r--r-- 1 nix nix 0 Jun 19 09:15 about

දැක්ක නේද දැන් Owner ට තියෙන්නෙ "rw-" විතරයි.

අපිට මේ විදියටත් symbolic mode එකේදී chmod බාවිතා කරන්න පුළුවන්.

ට්‍රයි chmod o=x about
nix@Dell ~/lsmore $ chmod o=x about
nix@Dell ~/lsmore $

ට්‍රයි ls -l about
nix@Dell ~/lsmore $ ls -l about
-rw-r----x 1 nix nix 0 Jun 19 09:15 about

ඔයාලට තේරුම් ගන්න පුළුවන් ද වෙලා තියෙන දේ ?
හරි මම කියල දෙන්නම් . මෙතන වෙලා තියෙන්නේ Others ලට කලින් තිබුණු සියලුම permission ඉවත්වෙලා execute permission එක අලුතෙන් ලැබිල. මෙහිදී Owner හා Group ගෙ කිසි දෙයක් වෙනස් වෙලා නෑ.

අපිට මෙවිදියටත් මේ කමන්ඩ්ස් බාවිතා කරන්න පුළුවන්

ට්‍රයි chmod u+rwx,g=r,o-x about
nix@Dell ~/lsmore $ chmod u+rwx,g=r,o-x about
nix@Dell ~/lsmore $ ls -l about
-rwxr----- 1 nix nix 0 Jun 19 09:15 about

පෙර "rw-r----x"
පසු "rwxr-----"
මේ කමාන්ඩ් එකෙන් Owner ට r ,w ,x ලැබුණ. Group එකට් r ද , Others ල ගෙන් කලින් තිබුන x ද ඉවත් වුණා .

දැන් ඔයාලට file permission හා chmod ගැන හොද දැනුමක් ලැබුන කියල හිතනව.

මම නැවතත් ඉදිරියේදී chmod ගැන ඉතා වැදගත් කරුණු කිහිපයක් කථා කිරීමට බලාපොරොත්තු වෙනව. ඔයාලට දැන්ම ඒ දේවල් තේරුම් ගන්න ටිකක් අමාරුයි.

අපිට තවත් වැදගත් වන කම්න්ඩ්ස් ටිකක් ගැන කථා කරන්න හිතාගෙන තවත් දවසක හමු වෙමු.

ස්තුතියි .
 
Last edited:

kkroxc

Well-known member
  • Oct 14, 2008
    3,255
    2,144
    113
    in Helll
    uba me karana de watinakama kiyala nima karanna ba godak help full bro. oya use karana personal chaet sheet eka share karanna kamathi num denna bro
     

    ja2k17ja

    Member
    May 10, 2017
    185
    166
    0
    තිස්සමහාරාම
    uba me karana de watinakama kiyala nima karanna ba godak help full bro. oya use karana personal chaet sheet eka share karanna kamathi num denna bro
    ස්තුතියි!
    මම cheat sheet එකක් බාවිතා කරලා නෑ. ගොඩක් දේවල් කරන්නෙ මගෙ මතකෙන්. මම සේවය කරපු ආයතන වලදී මට මගේ staff එක පුරුදු කරගෙනම වැඩ කරන්න සිදුවුණා. කට්ටිය පුරුදු කරනකොට ඉබේම වගේ මට UNIX / Linux ඇග ඇතුලටම වගේ ගියා :D මම මේ මූලික UNIX / Linux කරුණු ටික අවසන් කලාට පසූ. How To ගයිඩ් විදියට ඉදිරියටම මේ වැඩේ කරගෙන යනව.

    මම දන්න සියලුම දේ කියල දෙන්න මම උත්සාහ කරනව.

    දැනට මා සතුව මම ලියපු How To guide 900 කට වඩා තියෙනව. මම ඒ සියල්ල ලියල තියෙන්නේ මම සේවය කල ආයතනයේ සේවකයන් පුහුණු කිරීමට නිසා බොහෝ වෙලාවට එම ආයතනයට අදාල සංවේදී තොරතුරු තියෙනව . මම ඉදිරියේදි ඒවායින් කොටසක් හෝ නැවත සංස්කරණය කරලා සිංහලෙන් publish කරන්නම්.