29 – ගොණු ප්‍රවේශයන් පරිපාලනය (access control) (3 කොටස)

ගොණු ප්‍රවේශයන් යටතේ අප සාකච්චා කල file permissions හා සම්බන්ධ commands කිහිපයක් අද ඉගෙන ගනිමු. මෙම commands මගින් ගොණු අවසරයන් (file permissions) වෙනස් කිරීම, වෙනත් අයට පැවරීම, සම්මත අවසරයන් (default permissions) සැකසීම සහ පරිපාලක ගිණුම (administrator account) හරහා ගොණු ප්‍රවේශණය කිරීම ආදී කටයුතු කල හැකිය.

chmod (change mode – ගොණු අවසරයන් වෙනස් කිරීම)

ගොණු/නාමාවලි (file/directory) නිර්මාණයේදී (creation) ලැබෙන සම්මත අවසරයන් (default permissions) වෙනස් කිරීමට chmod command යොදාගත හැකිය. මෙහිදී permissions වෙනස් කල හැක්කේ එහි හිමිකරුට (owner) හෝ root user ට පමණි. Permissions වෙනස් කිරීමේදී දැනට ඇති permissions වලට සාපේක්‍ෂව (relative) හෝ පූර්ණ ලෙස (absolute) ලැබිය යුතු permissions සමග command එක ලබාදීමට පිළිවන. සාපේක්‍ෂ ලෙස permissions වෙනස් කිරීමේදී සංකේත (symbols) භාවිතා කරනු ලබන අතර පූර්ණ ලෙස permission වෙනස් කිරීමට ඉලක්කම් යොදාගනු ලැබේ. සාපේක්‍ෂ වශයෙන් file permissions වෙනස් කිරීමේදී සංකේත මගින් නිරුපණය වන දෑ පහතින් දක්වා ඇත.

- permission ඉවත් කිරීම
+ permission ලබාදීම
= permission පැවරීම (assign)
u (owner) user (පරිශීලකයා)
g group (කණ්ඩායම)
o others (අනෙක් අය)
a all (සියල්ල)
r,w,x read,write,execute permissions

ඉහත සංකේත යොදා ගනිමින් file permissions වෙනස් කරන ආකාරය උදාහරණ මගින් බලමු. මෙහිදී පිළිපැදිය යුතු රීතිය ද දක්වා ඇත.

chmod <permissions> <file1/dir1> [<file2/dir2> <file3/dir3> ...]
chmod u+x file1 => owner ට පමණක් execute permission ලබාදේ.
chmod u-x file1 => owner ගේ execute permission ඉවත් කිරීම.
chmod +x file1 => සියල්ලන්ටම (owner/group/others) execute permission ලබාදී ඇත. (chmod a+x මගින් ද මෙය සිදුකල හැකිය.)
chmod o-rw file1 => owner/group members හැර අනෙක් අනෙක් අයගේ read, write permissions ඉවත්කර ඇත.
chmod go=rw file1=> group සහ others වෙත read,write permission පවරා ඇත. කලින් group සහ others සඳහා execute permission ඇත්නම් එය ඉවත්වේ.
chmod u+x,go=rx file1 => owner ට execute permission සහ group සහ others වෙත read,execute permission ලබාදී ඇත.

සටහන: GUI (Graphical User Interface) හරහා file permissions වෙනස් කිරීම සඳහා අදාළ ගොණුව මත right click කර Properties තෝරන්න. එම සංවාද කොටුවෙහි (dialog box) අවශ්‍ය පරිදි permissions සැකසීම කල හැකිය.

file properties dialog box
file properties dialog box

පූර්ණ ලෙසට (absolute) file permissions ලබා දීමේදී owner, group සහ others යන ඛාණ්ඩ වලට ලැබිය යුතු permissions වෙන වෙනම අගයන් මගින් ගණනය කර chmod command සමග ඇතුළත් කිරීම සිදු කරයි. මෙය ඉහත දැක්වූ ක්‍රමයට වඩා සරළ වන අතර ලබාදිය යුතු අගයන් ගණනය කිරීමේදී read, write, execute permissions සඳහා පිළිවෙලින් 4, 2 සහ 1 යන අගයන් ආදේශ කරනු ලැබේ. පහත උදාහරණ මගින් මෙසේ absolute permissions ලබාදෙන ආකාරය දක්වා ඇත.

chmod 755 file1 => owner ට සියලු permissions සහ group සහ others වෙනුවෙන් read, execute permissions ලබාදී ඇත.
chmod 500 file1 => owner ට පමණක් read, execute permissions ලබාදෙන අතර වෙනත් කිසිවෙකුට file එකට පිවිසීමට නොහැකිය.

වැදගත්: සාපේක්‍ෂ ක්‍රමය මගින් file permissions වෙනස් කිරීමේදී අප ලබාදෙන සියලු files වල සමාන permissions තිබීම අවශ්‍ය නොවන අතර chmod සමග ලබාදෙන permissions පමණක් සකස්වීම සිදුවේ. නමුත් පූර්ණ ලෙස permissions ලබාදුන් විට සියලු ම files වලට එකම permissions සකස්වේ.

chown (change owner – ගොණු හිමිකාරිත්වය වෙනත් අයෙකුට පැවරීම)

සාමාන්‍යයෙන් ගොණුවක හිමිකාරිත්වය එය නිර්මාණය කල පරිශීලකයාට හිමිවේ. නමුත් අවශ්‍ය නම් වෙනත් අයෙකුට ගොණු හිමිකාරිත්වය පැවරීමට පිළිවන. මෙසේ හිමිකාරිත්වය පැවරීමට chown command යොදාගන්නා අතර එසේ කිරීමේ  හැකියාව ඇත්තේ root user ට පමණි. මෙමගින් තනි හිමිකාරිත්වය මෙන් ම කණ්ඩායම් හිමිකාරිත්වය ද වෙනස් කල හැකිය. chown command සඳහා උදාහරණ කිහිපයක් පහත දැක්වේ. (මෙහි indikau මගින් පරිශීලක නාමයක් සහ mygrp මගින් කණ්ඩායම් නාමයක් නිරුපණය කෙරේ.)

chown indikau file1 => හිමිකාරිත්වය indikau වෙත පවරා ඇත.
chown indikau:mygrp file1 => හිමිකාරිත්වය indikau වෙත ලබාදෙන අතර ම කණ්ඩායම් හිමිකාරිත්වය mygrp වෙත ලබාදේ.
chown :mygrp file1 => කණ්ඩායම් හිමිකාරිත්වය පමණක් mygrp වෙත ලබාදීම සිදුවේ.
chown indikau: file1 => හිමිකාරිත්වය indikau වෙත සහ එනමින් ඇති කණ්ඩායම් නාමයට ලබාදේ.

සටහන: පැරණි Linux මෙහෙයුම් පද්ධති වල කණ්ඩායම් හිමිකාරිත්වය වෙනස් කිරීම සඳහා chgrp යනුවෙන් වෙනත් command එකක් ද භාවිතා කරනු ලැබිණි. නමුත් වර්තමානයේ එහි භාවිතය ඉතා දුලබය.

umask (සම්මත ගොණු අවසරයන් වෙනස් කිරීම)

පරිශීලකයෙකු විසින් කිසියම් ගොණුවක් (file) නිර්මාණයේදී සම්මත ලෙස (default) මෙහෙයුම් පද්ධතිය මගින් permissions ලබාදීම සිදුවේ. umask command මගින් මෙම සම්මත (default) file permissions වෙනස් කිරීමේ හැකියාව ඇත. දැනට පවතින default permissions බලාගැනීමට umask command පමණක් ලබාදෙන්න. Ubuntu පාදක කරගත් මෙහෙයුම් පද්ධති වල මෙය 0022 ලෙස දැකගැනීමට පිළිවන. එම සැකසුම යටතේ සාමාන්‍ය පරිශීලකයෙකු නිර්මාණය කරන file එකකට rw-r–r– ලෙස permissions සකස්වීම සිදුවේ. මෙහිදී මතක තබාගත යුතු කරුණක් නම් සාමාන්‍ය තත්ත්ව යටතේ file එකකට executable permissions ලබාදීම ස්වයංක්‍රිය ව සිදු නොවීමයි. ඉහත absolute permissions මගින් දැක්වූ read, write සහ execute permissions සඳහා ලබාදෙන සංඛ්‍යාත්මක අගයන් මත පදනම් කරගෙන umask command ක්‍රියාත්මක වේ. මෙය ඉලක්කම් 4කින් සමන්විත වන අතර පළමු ඉලක්කම හැර අනෙක් ඒවායින් පිළිවෙලින් owner, group සහ others (world) වෙතින් ඉවත් කළයුතු permission නිරුපණය වේ. ඒ අනුව 1, 2 සහ 4 අගයන් මගින් execute, write සහ read permissions වලින් ඉවත්විය යුතු (සම්මත ලෙස) permissions දැක්වීමට පිළිවන. umask භාවිතය උදාහරණ කිහිපයක් මගින් පහත දක්වා ඇත. මෙහිදී තාවකාලිකව command line හිදී umask අගයන් වෙනස් කර ඇත.

umask command
umask command

පරිපාලක ගිණුම (administrator account – root) හරහා ගොණු ප්‍රවේශණය

මෙය ප්‍රධාන වශයෙන් ක්‍රම දෙකකට කල හැකිය. එනම් පරිපාලක ගිණුම (root) ලෙසම command line වෙත පිවිසීම හෝ තාවකාලිව පරිපාලක ගිණුමේ අවසරයන් (root permissions) ආරෝපණය කර ගනිමින් ගොණු වෙත පිවිසීම වශයෙනි. මින් පළමු ක්‍රමයේදී සම්පූර්ණයෙන් ම පරිපාලක ගිණුම (root) වෙත පිවිසීමෙන් ගොණු ප්‍රවේශයට අමතරව වෙනත් ඕනෑම කටයුත්තක් (commands ක්‍රියාත්මක කිරීම වැනි) කර ගැනීමට හැකියාව පවතී. නමුත් මෙලෙස root ගිණුමට ඇතුළුවී commands ක්‍රියාත්මක කිරීම හෝ ගොණු වෙත පිවිසීම (file access) අවම කිරීම නුවණට හුරුය. එයට හේතුව නම් root වෙත මෙහෙයුම් පද්ධතියේ සියලු කාර්යයන් කිරීමට අවසර ලබාදී ඇති නිසා කිසියම් අතපසුවීමක් සිදුවුවහොත් එමගින් සිදුවන හානිය වඩා විශාල වියහැකි නිසාය. Command line හිදී root ලෙස ඇතුළුවීමට (login) su හෝ su – ලෙස command ලබාදෙන්න. එවිට root හි මුරපදය (password) විමසන අතර එය type කර ↵ එබීම කල යුතුය. මෙහිදී password තිරයෙහි දර්ශනය නොවේ. ඔබ නිවැරදි password එක ලබාදුනහොත් ප්‍රේරකය (prompt) # ලෙස වෙනස්වීමෙන් root ලෙස ක්‍රියාත්මක වන බව දැක්වෙයි. අවශ්‍ය කටයුතු සිදුකර අවසන් වූ පසු exit ලෙස type කර ↵ එබීමෙන් root ගිණුමෙන් ඉවත්විය හැකිය.

ඉහත දෙවැනි ක්‍රමයේදී අපට අවශ්‍ය command එක root හි අවසරයන් ආරෝපණය කරගනිමින් ක්‍රියාත්මක වන අතර root ගිණුමට ඇතුළුවීමක් සිදු නොවේ. මෙසේ commands ක්‍රියාත්මක කිරීම සඳහා අපට අවශ්‍ය command එකට පෙර sudo ලෙස type කර අදාළ command ලබාදීම සිදු කරයි. මෙහිදීද root හි password විමසන අතර password ලබාදීමෙන් පසු ↵ කල යුතුය. Command එක ක්‍රියාත්මක වූ පසු නැවතත් වර්තමාන පරිශීලක ප්‍රේරකය (prompt) දිස්වේ. සාමාන්‍යයෙන් sudo command වරක් ලබාදුන් පසු කුඩා කාල සීමාවක් (පෙරසකසන ලද) තුළ නැවතත් sudo command එක root password ලබානොදී ක්‍රියාත්මක කල හැකිය. මෙසේ sudo command මගින් වෙනත් පරිශීලකයන්ට root password ලබානොදී අවශ්‍යම අවස්ථාවකදී පමණක් කිසියම් command එකක් ක්‍රියාත්මක කිරීමට හැකියාව ලබාදේ. මෙය මෙහෙයුම් පද්ධතියේ ආරක්‍ෂාවට මහඟු සේවයකි. තවද sudo හරහා ක්‍රියාත්මක කල හැකි commands ද සීමාකොට ඇති නිසා වෙනත් පරිශීලකයන්ට අනවශ්‍ය ලෙස commands ක්‍රියාත්මක කිරීමට ඇති හැකියාව වැලකී ඇත.

su command
su command
sudo command
sudo command

ප්‍රතිචාරයක් ලබාදෙන්න

Fill in your details below or click an icon to log in:

WordPress.com Logo

ඔබ අදහස් දක්වන්නේ ඔබේ WordPress.com ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )

Google photo

ඔබ අදහස් දක්වන්නේ ඔබේ Google ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )

Twitter picture

ඔබ අදහස් දක්වන්නේ ඔබේ Twitter ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )

Facebook photo

ඔබ අදහස් දක්වන්නේ ඔබේ Facebook ගිණුම හරහා ය. පිට වන්න /  වෙනස් කරන්න )