- 1 1. ආරම්භ කිරීම: sudo කුමක්ද?
- 2 2. sudo ප්රහාරයේ මූලික භාවිතය
- 3 3. sudoers ගොනුව සහ ප්රවේශ පාලනය
- 4 4. sudo හි උසස් භාවිතය
- 5 5. ආරක්ෂාව සහ හොඳ පුරුදු
- 6 6. පොදු දෝෂ සහ ගැටළු විසඳුම්
- 7 7. FAQ: sudo පිළිබඳ නිතර අසන ප්රශ්න
- 8 8. නිගමනය
1. ආරම්භ කිරීම: sudo කුමක්ද?
sudo හි මූලික අර්ථය සහ භූමිකාව
ලිනක්ස් සහ යුනික්ස් වැනි පද්ධතිවල, “sudo” යනු ඉතා වැදගත් ප්රහාරයකි.
“sudo” යනු “superuser do” යන්නේ සංකෝචනයක් වන අතර එය පරිපාලක හිමිකම් (රූට් හිමිකම්) තාවකාලිකව ණයග්රහණය කර ගනිමින් ප්රහාර විධාන ක්රියාත්මක කිරීමට යොදා ගන්නා මෙවලමකි. සාමාන්යයෙන්, සාමාන්ය පරිශීලකයින්ට මුළු පද්ධතියට බලපාන මෙහෙයුම් (උදාහරණයක් ලෙස, පැකේජ් ස්ථාපනය කිරීම හෝ පද්ධති සැකසුම් වෙනස් කිරීම) සිදු කිරීමට බලයක් නොමැත. කෙසේ වෙතත්, sudo ප්රහාරය භාවිතා කිරීමෙන්, මෙම හිමිකම් සහිත මෙහෙයුම් සීමිත පරාසයකින් ක්රියාත්මක කළ හැකිය.
උදාහරණයක් ලෙස, පහත ප්රහාරය ක්රියාත්මක කිරීමෙන් ඔබට රූට් හිමිකම් සමඟ apt ප්රහාරය ක්රියාත්මක කළ හැකිය:
sudo apt update
එබැවින්, sudo යනු පද්ධති ආරක්ෂාව සහ පහසුව සමබර කිරීමේ භූමිකාවක් ඉටු කරන අතර එය “පරිපාලක හිමිකම් ආරක්ෂිතව භාවිතා කිරීමේ යාන්ත්රණයක්” ලෙස හැඳින්විය හැකිය.
su ප්රහාරය සමඟ වෙනස්කම්
sudo වැනිම අරමුණකින් යුත් su යනු ප්රහාරයක් තිබේ, නමුත් දෙක අතර පැහැදිලි වෙනස්කම් තිබේ.
suයනු “substitute user” යන්නේ සංකෝචනයක් වන අතර එය වෙනත් පරිශීලකයෙකුට (ප්රධාන වශයෙන් රූට්) මාරු වීමට යොදා ගන්නා ප්රහාරයකි.suභාවිතා කිරීමේදී, මෙහෙයුම් සඳහන් පරිශීලකයා “වීම” සම්පූර්ණයෙන්ම සිදු කරන ආකාරයකින් සිදු වේ.- අනෙක් අතට,
sudoවර්තමාන පරිශීලකයාව ඉතිරි කරමින් තාවකාලිකව ණයග්රහණය කරගත් පරිපාලක හිමිකම් සමඟ ප්රහාර ක්රියාත්මක කරයි.
අනිවාර්යයෙන්ම, su යනු සැසියකට අනුව මාරු වීමේ ක්රමයක් වන අතර sudo යනු ප්රහාරයකට අනුව හිමිකම් ඉහළ නැංවීමේ ක්රමයකි. මෙම වෙනස්කම ආරක්ෂාව අනුව ඉතා වැදගත් වේ; sudo මෙහෙයුම් ඉතිහාසය කළමනාකරණය කිරීම පහසු කරයි, සහ නවතම විතරණවල, sudo සම්මත ක්රමය බවට පත්ව ඇත.
sudo භාවිතා වන සාමාන්ය ලිනක්ස් විතරණ
බොහෝ ලිනක්ස් විතරණවල ගෙදර අනුව sudo භාවිතා වන අතර, පහත විතරණවල එහි භාවිතය විශේෂයෙන් උපකල්පනය කර ඇත:
- Ubuntu-අඩඋපකරණ (Ubuntu, Linux Mint, ආදිය) → මුලින්, ඔබ රූට් ගිණුමට සෘජුව ලොග් වන්නේ නැත, නමුත් sudo සමඟ එය කළමනාකරණය කරයි.
- Debian-අඩඋපකරණ → sudo පසුව සක්රිය කළ හැකි වුවද, එය බොහෝ විට ආරක්ෂක ප්රතිපත්තියක් ලෙස නිර්දේශ කෙරේ.
- Fedora, CentOS, සහ Red Hat-අඩඋපකරණ → රූට් ගිණුම භාවිතා කිරීම সম්භව්ය වුවද, sudo භාවිතා කිරීමද සුලබයි.
විශේෂයෙන් Ubuntu හි, රූට් ගිණුම මුල් අනුව අක්රිය වී ඇත, සහ සියලුම පරිපාලන මෙහෙයුම් sudo හරහා සිදු කිරීමට සැලසුම් කර ඇත. එබැවින්, Ubuntu පරිශීලකයින් සඳහා sudo තේරුම් ගැනීම අත්යවශ්ය වේ.
“sudo sudo” සෙවීමට හේතුව මොකක්ද?
සෙවුම් මූලපදය “sudo sudo” මුලින් බැලූ විට අනවශ්ය බවක් පෙනෙන්නට ඇති නමුත්, එය පහත අරමුණු සමඟ සෙවෙන අවස්ථා ඇත:
sudoහි අර්ථය සහ භාවිතය දැනගැනීමට අපේක්ෂා කරන ආරම්භකයින් එය ඉස්මතු කිරීම සඳහා නැවත නැවත ඇතුළත් කරයි.sudoභාවිතා කිරීමේදී ගැටලුවලට මුහුණ දුන් පරිශීලකයින් (උදා:sudo: sudo: command not found) විසඳුම් සෙවීම.- ස්ක්රිප්ට් හෝ පයිප්ලයින්වල ද්විත්ව
sudoභාවිතයේ උදාහරණ දැක ගත් පරිශීලකයින් ගැන එය උනන්දුවක් ඇති කරයි.
මෙම සෙවුම් අරමුණු තේරුම් ගැනීමෙන්, පහත පරිච්ඡේදවල sudo හි නිවරදි භාවිතය සහ සැකසුම් ක්රම, ගැටලු විසඳීම් විස්තරාත්මකව පැහැදිලි කරනු ලැබේ.
2. sudo ප්රහාරයේ මූලික භාවිතය
sudo හි මූලික ව්යාකරණය
sudo හි මූලික ආකෘතිය ඉතා සරලයි.
sudo [options] command
උදාහරණයක් ලෙස, පද්ධතියේ පැකේජ් තොරතුරු යාවත්කාලීන කිරීම සඳහා, පහත භාවිතා කරන්න:
sudo apt update
මෙම ප්රහාරයෙන් අදහස් වන්නේ “රූට් හිමිකම් සමඟ ‘apt update’ ක්රියාත්මක කරන්න” යන්නයි.
මුරපද තහවුරු කිරීමේ යාන්ත්රණය සහ සංරක්ෂණය
sudo පළමු වරට භාවිතා කිරීමේදී, හෝ නිශ්චිත කාලයක් ගත වූ පසු, පද්ධතිය ඔබගෙන් පරිශීලක මුරපදය ඇතුළත් කිරීමට ඉල්ලා සිටියි. මෙය ආරක්ෂාව වැඩි දියුණු කිරීම සහ අනපේක්ෂිත මෙහෙයුම් හෝ තෙවන පාර්ශවයන්ගේ අනවසර භාවිතය වැළැක්වීමේ යාන්ත්රණයකි.
මුරපදය ඇතුළත් කිරීමෙන් පසු, එය නිශ්චිත කාලයක් සඳහා (Ubuntu හි මුල් අනුව මිනිත්තු 5) සංරක්ෂණය වන අතර sudo නැවත භාවිතා කිරීමේදී මුරපද ඇතුළත් කිරීම නොකළ හැකිය. මෙම කාලය sudoers ගොනුවේ වෙනස් කළ හැකිය.
බහුලව භාවිතා වන විකල්ප
sudo හි මෙහෙයුම් වඩාත් පහසු සහ නම්යශීලී කිරීම සඳහා බොහෝ විකල්ප තිබේ. පහත දැක්වෙන්නේ බොහෝ විට භාවිතා වන ඒවායින් සමහරක්ය.
-u (වෙනත් පරිශීලකයෙකු ලෙස ක්රියාත්මක කිරීම)
අනුකම්පිතව, එය root හිමිකම් භාවිතා කරයි, නමුත් -u විකල්පය භාවිතා කිරීමෙන්, ඔබට ඕනෑම පරිශීලකයෙකු ලෙස පණ්ඩිතාවන් ක්රියාත්මක කළ හැක.
sudo -u www-data whoami
ක්රියාත්මක කිරීමේ ප්රතිඵලය www-data වනු ඇත, එයින් “පණ්ඩිතාව මගින් මම නොවේ, www-data ලෙස ක්රියාත්මක වූ බව” තහවුරු වේ.
-s (Shell එකක් ආරම්භ කිරීම)
පහත පණ්ඩිතාව අතිශයින් root හිමිකම් සහිතව තාවකාලිකව shell එකක් විවෘත කිරීමට ඉඩ සලසයි.
sudo -s
කෙසේ වෙතත්, root තත්ත්වයේ මෙහෙයුම් සැලකිල්ලෙන් සිදු කළ යුතුය.
-i (සම්පූර්ණ Root පරිශීලකයෙකු ලෙස ලොග් වීම)
මෙම විකල්පය වඩාත් සම්පූර්ණ root පරිසරයක් නැවත නිර්මාණය කරයි. පරිසර විචල්ය ද root හි ඒවාට මාරු වන බැවින්, එය ලොගින් වීමෙන් පසුව ඉක්මනින්ම එන root සැසියක් බවට පත් වේ.
sudo -i
-l (ක්රියාත්මක කළ හැකි පණ්ඩිතා පරීක්ෂා කිරීම)
ඔබට sudo භාවිතා කරමින් ක්රියාත්මක කළ හැකි පණ්ඩිතා පරීක්ෂා කළ හැකිය.
sudo -l
මෙය ආරක්ෂාවේ සීමාවන් පරීක්ෂා කිරීම සහ හිමිකම් සැකසුම් පරීක්ෂා කිරීම සඳහා ගුණදායක වේ.
ආරම්භකයින් සඳහා සැලකිල්ලට ගත යුතු කරුණු
- ඔබට sudo වලට පසුව පරතරයක් දැමිය යුතුය. උදාහරණයක් ලෙස:
sudoaptවැරදි ය. - ඔබට බහු පණ්ඩිතා ක්රියාත්මක කිරීමට අවශ්ය නම්, සම්පූර්ණ පණ්ඩිතාව උද්ධෘතිවලින් (
"හෝ') ආවරණය කළ යුතුය හෝ semicolon වලින් වෙන් කළ යුතුය. sudoසමඟ GUI යෙදුම් ක්රියාත්මක කිරීමේදී සැලකිලිමත් වන්න, මන්ද එය විෂමගුණ සංග්රහ ගොනු හානි කළ හැක (උදා:sudo gedit).
3. sudoers ගොනුව සහ ප්රවේශ පාලනය
sudoers ගොනුව කුමක්ද?
sudo පණ්ඩිතාවේ හැසිරීම පාලනය කරන වින්යාස ගොනුව වන්නේ පද්ධතියේ /etc/sudoers ය. මෙම ගොනුව sudo සමඟ කුමන පණ්ඩිතා ක්රියාත්මක කළ හැකිද යන්න නිර්වචනය කරයි.
උදාහරණයක් ලෙස, නිශ්චිත පරිශීලකයෙකුට sudo සමඟ නිශ්චිත පණ්ඩිතා පමණක් ක්රියාත්මක කිරීමට ඉඩ සලසන වැඩබිලි ප්රවේශ පාලනයක් සිදු කළ හැකිය.
මෙම නම්යශීලතාව පරිශීලකයින්ට අවශ්ය සුලු හිමිකම් පමණක් පිරිනමන ආරක්ෂාවේ මූලධර්මය (අඩුම හිමිකම් මූලධර්මය) ක්රියාත්මක කිරීමට හැකි කරයි.
visudo පණ්ඩිතාව සමඟ ආරක්ෂිත සැකසුම් කිරීම
/etc/sudoers ගොනුව පාඨ සැකාසුම්කරුවෙකු සමඟ සෘජුව සැකසුම් කළ යුතු නොවේ.
මන්ද syntax දෝෂය sudo භාවිතය අකාර්යක්ෂම කළ හැකි බැවින්, ප්රතිසංස්කරණය අපහසු වේ. එබැවින්, සැකසුම් සඳහා visudo පණ්ඩිතාව භාවිතා කිරීම යෝජනා කෙරේ.
sudo visudo
visudo සුරකිමින් syntax පරීක්ෂාවක් සිදු කරයි, ආරක්ෂිත සැකසුම් සඳහා ඉඩ සලසයි.
මූලික Syntax සහ වින්යාස උදාහරණ
sudoers ගොනුවේ මූලික syntax පහත පරිදිය:
username hostname = (runas_user) command(s)
උදාහරණය:
alice ALL=(ALL:ALL) ALL
මෙම සැකසුම “alice” පරිශීලකයාට සියලුම hosts වල සියලුම පරිශීලකයින් ලෙස සියලුම පණ්ඩිතා ක්රියාත්මක කිරීමට ඉඩ සලසයි.
වැඩි සීමාවන් එකතු කිරීමට:
bob ALL=(ALL) /usr/bin/systemctl restart nginx
මෙම සැකසුම “bob” පරිශීලකයා “nginx restart පණ්ඩිතාව” sudo සමඟ පමණක් ක්රියාත්මක කිරීමට සීමා කරයි.
කණ්ඩායම් මගින් පාලනය: sudo කණ්ඩායම
Ubuntu වැනි බොහෝ විතරණවල, sudo කණ්ඩායමට අයත් පරිශීලකයින්ට sudo භාවිතා කිරීමේ හිමිකම් පිරිනමනු ලැබේ.
%sudo ALL=(ALL:ALL) ALL
මෙලෙස %sudo ලියා, කණ්ඩායම් මගින් කළමනාකරණය කළ හැකිය.
පරිශීලකයෙකු sudo කණ්ඩායමට එකතු කිරීමට, පහත පණ්ඩිතාව භාවිතා කරන්න:
sudo usermod -aG sudo username
NOPASSWD විකල්පය භාවිතා කිරීම සහ ආරක්ෂකාවන්
sudo ක්රියාත්මක කිරීමේදී ඔබේ මුරපදය සෑම විටම ඇතුළත් කිරීම ප්රහසන බවක් ලෙස සලකනවා නම්, මුරපදය ඇතුළත් කිරීම මගහරින NOPASSWD විකල්පය භාවිතා කළ හැකිය.
alice ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
මෙම සැකසුමෙන්, “alice” පරිශීලකයා මුරපදයකින් තොරව nginx නැවත ආරම්භ කළ හැකිය.
කෙසේ වෙතත්, මෙය ආරක්ෂාවේ අවදානම් වැඩි කරයි, එබැවින් සීමිත පණ්ඩිතා සඳහා පමණක් භාවිතා කිරීම වැදගත්ය.
විශේෂයෙන්ම, එය ALL සමඟ ඒකාබද්ධ කිරීම යෝජනා නොකෙරේ.
4. sudo හි උසස් භාවිතය
නිශ්චිත පරිශීලකයෙකු ලෙස පණ්ඩිතා ක්රියාත්මක කිරීම
සාමාන්යයෙන්, sudo root හිමිකම් සමඟ පණ්ඩිතා ක්රියාත්මක කරයි, නමුත් විකල්ප භාවිතා කිරීමෙන්, ඔබට ඕනෑම පරිශීලකයෙකු ලෙස පණ්ඩිතා ක්රියාත්මක කළ හැකිය.
උදාහරණයක් ලෙස, වෙබ් සේවාදායකයා භාවිතා කරන “www-data” පරිශීලකයා ලෙස පණ්ඩිතාවක් ක්රියාත්මක කිරීමට අවශ්ය නම්, පහත භාවිතා කරන්න:
sudo -u www-data whoami
The execution result will be www-data, confirming that “the command was executed as www-data, not as myself.”
මෙම ක්රියාත්මක කිරීමේ ප්රතිඵලය www-data වනු ඇත, එය “කමාන්ඩ් එක www-data ලෙස ක්රියාත්මක කර ඇත, මට වෙනුවට නොවේ” යනුවෙන් තහවුරු කරයි.
This usage is useful when you want to check different environments or privileges for each user.
මෙම භාවිතය ඔබට එක් එක් පරිශීලකයා සඳහා වෙනස් පරිසර හෝ අවසර පරීක්ෂා කිරීමට අවශ්ය වන විට ප්රයෝජනවත් වේ.
යළි-නැවත යොමු කිරීම සහ පයිප්ප සමඟ සංයෝජනය
A common point of confusion for beginners is the combination of sudo with redirects (>) and pipes (|).
ආරම්භකයන්ට සාමාන්යයෙන් ගැටළුවක් වනුයේ sudo යළි-නැවත යොමු කිරීම (>) සහ පයිප්ප (|) සමඟ සංයෝජනය කිරීමයි.
For example, the following command may look correct at first glance, but it will not work as expected:sudo echo "test" > /etc/test.conf
උදාහරණයක් ලෙස, පහත කමාන්් එක පළමු නරඹීමේදී නිවැරදි බවක් පෙනේ, නමුත් එය අපේක්ෂා කරන පරිදි ක්රියා නොකරයි:sudo echo "test" > /etc/test.conf
In this case, echo itself is executed with sudo, but the redirect with > is executed with regular user privileges. Therefore, writing will fail.
මෙම අවස්ථාවේ, echo ස්වයංක්රියව sudo සමඟ ක්රියාත්මක වේ, නමුත් > සමඟ යළි-නැවත යොමු කිරීම සාමාන්ය පරිශීලක අවසරයන් සමඟ ක්රියාත්මක වේ. එබැවින් ලිවීම අසාර්ථක වේ.
The correct way is to use the tee command:
නිවැරදි ක්රමය tee කමාන්ඩ් එක භාවිත කිරීමයි:
echo "test" | sudo tee /etc/test.conf
By doing this, the redirect part is also executed with sudo privileges, and you can avoid the error.
මෙම පරිදි, යළි-නැවත යොමු කිරීමේ කොටසද sudo අවසරයන් සමඟ ක්රියාත්මක වන අතර, දෝෂය වැළැක්විය හැක.
ස්ක්රිප්ට් වල sudo භාවිතය
When including commands that require administrator privileges in a shell script, explicitly add sudo before the command.
ශෙල් ස්ක්රිප්ට් එකක පරිපාලක අවසර අවශ්ය කමාන්ඩ් ඇතුළත් කරන විට, කමාන්ඩ් එකට පෙර sudo යොදන්න.
However, if you are creating a script on the assumption that it will be executed by a regular user, it is safer to only add sudo to the necessary parts and avoid executing the entire script with sudo.
කෙසේ වෙතත්, එය සාමාන්ය පරිශීලකයෙකු විසින් ක්රියාත්මක වන බව අනුමාන කරමින් ස්ක්රිප්ට් එක සකස් කරන්නේ නම්, අවශ්ය කොටස් වලට පමණක් sudo එකතු කිරීම වඩා ආරක්ෂිත වන අතර, සම්පූර්ණ ස්ක්රිප්ට් එක sudo සමඟ ක්රියාත්මක කිරීමෙන් වැළැක්විය යුතුය.
Example (install.sh):
උදාහරණය (install.sh):
#!/bin/bash
echo "Installing package..."
sudo apt install -y nginx
There is also a pattern to check if it is root at the beginning of the script:
ස්ක්රිප්ට් ආරම්භයේදී එය rootදැයි පරීක්ෂා කරන රටාවක්ද ඇත:
if [ "$EUID" -ne 0 ]; then
echo "This script must be run as root"
exit 1
fi
By including such controls, safe script operation becomes possible.
මෙවැනි පාලන ක්රම ඇතුළත් කිරීමෙන්, ආරක්ෂිත ස්ක්රිප්ට් ක්රියාකාරිත්වය සම්භව වේ.
නිතර භාවිතා වන පහසු කමාන්ඩ්
sudo !!→ Re-executes the previous command with sudo. For example:
sudo !! → පෙර කමාන්ඩ් එක sudo සමඟ නැවත ක්රියාත්මක කරයි. උදාහරණයක්:
apt update
sudo !!
This has the same effect as sudo apt update.
මෙය sudo apt update සමඟ සමාන ප්රතිඵලයක් ලබා දෙයි.
sudo -k→ Manually clears the sudo password cache. This is useful for security reasons, such as before temporarily leaving your terminal.
sudo -k → sudo මුරපද කෑෂ් එක අතින් මකා දමයි. මෙය ආරක්ෂක හේතු සඳහා ප්රයෝජනවත් වන අතර, ඔබේ ටර්මිනලය තාවකාලිකව හැර යාමට පෙර වැනි අවස්ථාවලදී භාවිතා වේ.
sudo -v→ Extends the sudo privileges for the current session. This is convenient for long tasks.
sudo -v → වත්මන් සැසිය සඳහා sudo අවසර දිගු කරයි. දිගු කාලීන කාර්යයන් සඳහා මෙය පහසුය.
5. ආරක්ෂාව සහ හොඳ පුරුදු
අවමසර නීතියට අනුගත වන්න
The primary purpose of using sudo is to enable system operations with the minimum necessary privileges.
sudo භාවිතයේ ප්රධාන අරමුණ අවශ්ය අවම අවසරයන් සමඟ පද්ධති මෙහෙයුම් සක්රිය කිරීම වේ.
In other words, the ideal usage is not to “always be the all-powerful root user,” but to “borrow the power of root only when necessary and within the necessary scope.”
අනෙක් වචනයෙන්, ඉතා සුදුසු භාවිතය “සෑම විටම සම්පූර්ණ බලය ඇති root පරිශීලකයා වීම” නොව, “අවශ්ය වන විට පමණක් root බලය ණය ගන්නා අතර, අවශ්ය පරාසය තුළ පමණක්” යන්නයි.
Following this principle, the following settings, for example, are desirable:
මෙම නීතිය අනුගමනය කරමින්, පහත සැකසුම්, උදාහරණයක් ලෙස, ප්රයෝජනවත් වේ:
Allow users to execute only specific commands with sudo (e.g.,
systemctl restart nginx).පරිශීලකයන්ට sudo සමඟ විශේෂිත කමාන්ඩ් පමණක් ක්රියාත්මක කිරීමට ඉඩ දීම (උදා:
systemctl restart nginx).Minimize the use of NOPASSWD.
NOPASSWD භාවිතය අවම කිරීම.
Manage users with administrative privileges in groups (e.g.,
sudo).පරිපාලක අවසරයන් සමඟ පරිශීලකයන් කණ්ඩායම් තුළ කළමනාකරණය (උදා:
sudo).
ලොග් කිරීම සහ පරීක්ෂණය
sudo records executed commands in logs. This allows you to check later who used which command and when.
sudo ක්රියාත්මක කළ කමාන්ඩ් ලොග් වල සටහන් කරයි. මෙය පසුකාලීනව කවුද කුමන කමාන්ඩ් එක භාවිතා කළේද, කවදාද යන්න පරීක්ෂා කිරීමට ඉඩ සලසයි.
The main log destinations are as follows (may vary depending on the distribution):
ප්රධාන ලොග් ගමනාන්තයන් පහත පරිදි වේ (බෙදාහැරීම අනුව වෙනස් විය හැක):
/var/log/auth.logUbuntu, Debian-based)/var/log/auth.log(Ubuntu, Debian-ආශ්රිත)journalctl(distributions with systemd)journalctl(systemd සමඟ බෙදාහැරීම්)
For example, to check the sudo usage history in Ubuntu:
උදාහරණයක් ලෙස, Ubuntu හි sudo භාවිත ඉතිහාසය පරීක්ෂා කිරීම සඳහා:
grep 'sudo' /var/log/auth.log
Or:
හෝ:
journalctl _COMM=sudo
This makes it possible to track who did what even in the event of unauthorized or accidental operations. This is an essential perspective in server management.
මෙය කවුද කුමක් කළේද යන දේ අධිකාරියෙන් පිරිසිදු නොවන හෝ අනපේක්ෂිත මෙහෙයුම් සිදු වූ අවස්ථාවලදී පවා පසුබැසීමේ හැකියාව ලබා දෙයි. මෙය සේවාදායක කළමනාකරණයේ අත්යවශ්ය දෘශ්යකෝණයකි.

වත්මන් sudo දුර්වලතාව (CVE-2021-3156)
While sudo is a very reliable tool, significant vulnerabilities have been reported in the past.
sudo ඉතා විශ්වාසනීය මෙවලමක් වුවද, අතීතයේ වැදගත් දුර්වලතා වාර්තා කර ඇත.
A particularly famous example is CVE-2021-3156 (commonly known as Baron Samedit), released in 2021.
විශේෂයෙන් ප්රසිද්ධ උදාහරණයක් CVE-2021-3156 (සාමාන්යයෙන් Baron Samedit ලෙස හැඳින්වේ), 2021 ද නිකුත් කරන ලදී.
This was a serious vulnerability where, under certain conditions, a malicious input could allow a regular user to gain root privileges.
මෙය තීව්ර දුර්වලතාවක් වන අතර, නියමිත කොන්දේසි යටතේ, දුෂ්කර ආදානයක් සාමාන්ය පරිශීලකයෙකුට root අවසර ලබා ගැනීමට ඉඩ සලසයි.
This issue has already been fixed, but as this case shows:
මෙම ගැටලුව දැනටමත් සකස් කර ඇත, නමුත් මෙම අවස්ථාවෙන් පෙනේ:
Always keep important packages including sudo at the latest version .
sudo ඇතුළත් වැදගත් පැකේජ් සියල්ල නවතම අනුවාදයට නවීකරණය කර තබා ගන්න.
Regularly check official websites and vulnerability databases.
නිතිපතා පරීක්ෂා කරන්න නිල වෙබ්අඩවි සහ දුර්වලතා දත්ත ගබඩා.
Such measures are necessary.
මෙවැනි පියවරයන් අවශ්ය වේ.
sudo විකල්පය: doas හැඳින්වීම
සමහර අවම Linux පරිසර සහ ආරක්ෂා‑චේතනාත්මක පරිශීලකයන් අතර, sudo සඳහා විකල්පයක් ලෙස doas නමැති විධානයද භාවිතා වේ.
doas යනු OpenBSD වෙතින් ආරම්භ වූ කෙටි ප්රවේශ වර්ධන මෙවලමක් වන අතර, sudo සමඟ සසඳන විට සරල සැකසුම සහ වැඩි ආරක්ෂාව යන ලක්ෂණයන්ගෙන් පිරි ඇත.
උදාහරණය:
doas apt update
සැකසුම් ගොනුව /etc/doas.conf හි ලියැවේ. වාක්ය රචනයද සරලයි:
permit nopass :wheel
පෙන්වා ඇති පරිදි, wheel කණ්ඩායමේ පරිශීලකයන්ට මුරපදයක් නොමැව doas භාවිතා කිරීමට ඉඩ දීම වැනි සැකසුම් පහසුවෙන් ලියිය හැක.
කෙසේ වෙතත්, සමහර Linux පරිසරවල doas පෙරනිමි ලෙස ලබා නොදෙන බැවින්, එය ස්ථාපනය කර සැකසීමට කුඩා ප්රයත්නයක් අවශ්ය වේ.
ඉලක්කය සහ අරමුණ අනුව, sudo හෝ doas කුමන එක වඩා සුදුසුද යන්න තෝරා ගැනීම හොඳය.
6. පොදු දෝෂ සහ ගැටළු විසඳුම්
“User is not in the sudoers file” දෝෂය
username is not in the sudoers file. This incident will be reported.
මෙම දෝෂය වත්මන් පරිශීලකයාට sudo භාවිතා කිරීමට අවසර නොමැති විට පෙන්වයි. සාමාන්යයෙන් sudo කණ්ඩායමට එක් නොකළ නව පරිශීලකයෙක් විධානයක් ක්රියාත්මක කරන විට මෙය සිදුවේ.
විසඳුම:
- රූට් අවසර ඇති වෙනත් පරිශීලකයකු සමඟ ලොග් වන්න.
- ඉලක්ක පරිශීලකයා
sudoකණ්ඩායමට එක් කරන්න.sudo usermod -aG sudo username
ඊළඟට, සැසියෙන් පිටවී නැවත ලොග් වීමෙන් පසු sudo භාවිතා කළ හැක.
රීඩිරෙක්ට් හෝ පයිප් පාවිච්චි කරන විට “Permission denied” දෝෂය
Permission denied
ඔබ sudo සමඟ විධානයක් ක්රියාත්මක කිරීමට අදහස් කළත්, රීඩිරෙක්ට් ගමනාන්තය හෝ පයිප් සැකසීම sudo පිටත සිදු වන නිසා මෙම දෝෂය පෙන්වයි.
වැරදි උදාහරණය:
sudo echo "test" > /etc/test.conf
මෙහිදී echo sudo සමඟ ක්රියාත්මක වුවත්, ගොනුවට ලිවීම සාමාන්ය පරිශීලකගේ අවසරයෙන් සිදු වන බැවින් දෝෂයක් ඇති වේ.
නිවැරදි භාවිතය:
echo "test" | sudo tee /etc/test.conf
හෝ, එක්වරට බහු පේළි ලිවීමට sudo tee හෝ sudo bash -c භාවිතා කිරීම වඩා හොඳය.
sudo bash -c 'echo "line1" > /etc/test.conf'
sudoers ගොනුව සංස්කරණය කිරීමේ දෝෂ නිසා ක්රියා නොකිරීම
ඔබ sudoers ගොනුව සෘජුව සංස්කරණය කර සින්ටැක්ස් දෝෂයක් කළහොත්, sudo ස්වයංක්රීයව භාවිතා නොහැකි විය හැක. මෙය ඉතා අවදානම් තත්ත්වයකි.
විසඳුම:
- රූට් ගිණුම සමඟ ලොග් වන්න (Ubuntu හි පෙරනිමි ලෙස අක්රිය කර බව සලකන්න).
- පහත විධානය භාවිතා කර අලුත්වැඩියා කරන්න:
pkexec visudo
pkexec භාවිතා කළ නොහැකි නම්, රිකවරි මෝඩ් හෝ ඒ ආකාරයක් භාවිතා කර /etc/sudoers ගොනුව සංස්කරණය කළ යුතුය.
සින්ටැක්ස් දෝෂ වැළැක්වීමට, සංස්කරණය කිරීමේදී සෑම විටම පහත භාවිතා කරන්න:
sudo visudo
“sudo: command not found”
sudo: command not found
sudo පද්ධතියේ ස්ථාපනය නොවූ විට හෝ PATH පරිසර විචල්යයේ ගැටළුවක් නිසා සොයාගත නොහැකි වූ විට මෙම දෝෂය පෙන්වයි.
විසඳුම:
- රූට් අවසර සමඟ ලොග් වී පහත පරිදි sudo නැවත ස්ථාපනය කරන්න:
apt update apt install sudo
- හෝ
/usr/bin/sudoමාර්ගය සෘජුව සඳහන් කර ක්රියාත්මක කරන්න:/usr/bin/sudo ls
7. FAQ: sudo පිළිබඳ නිතර අසන ප්රශ්න
Q1. sudo සහ su අතර වෙනස කුමක්ද?
පිළිතුර:
sudo යනු පරිපාලක අවසර සමඟ තාවකාලිකව විශේෂිත විධාන ක්රියාත්මක කිරීම සඳහා වන විධානයක් වන අතර, su යනු සම්පූර්ණ පරිශීලක (ප්රධාන වශයෙන් රූට්) වෙත මාරු වීම සඳහා වන විධානයකි.
sudo: වත්මන් පරිශීලකයා ලෙස සිටිමින්, තෝරාගත් ක්රියාමාර්ග සඳහා පමණක් අවසර උසස් කරයි.su: සම්පූර්ණයෙන්ම වෙනත් පරිශීලකට මාරු වේ.
ආරක්ෂාව සහ ක්රියාකාරකම් ඉතිහාසය පිළිබඳව, නව අවධියේ sudo භාවිතය නිර්දේශ කරයි.
Q2. sudo භාවිතා කරන විට මට රූට් මුරපදය අවශ්යද?
පිළිතුර:
නැත, සාමාන්යයෙන් ඔබගේම ලොග්ඉන් මුරපදය (රූට් මුරපදය නොව) ඇතුළත් කරයි.
මෙය රූට් මුරපදය හෙළිවීමේ අවදානම අඩු කර, පරිශීලකගේ ක්රියාකාරකම් ඉතිහාසය නිරීක්ෂණය කිරීම පහසු කරයි.
Q3. sudo ලොග් ගොනු කොහේ සටහන් වේ?
පිළිතුර:
බොහෝ Linux බෙදාහැරීම් වල, sudo මගින් සිදු කරන ක්රියාකාරකම් ලොග් පහත සඳහන් ස්ථාන වලින් එකක් තුළ සටහන් වේ:
- Ubuntu/Debian මූලික:
/var/log/auth.log - RHEL/CentOS මූලික:
/var/log/secure - සියලුම systemd පරිසර:
journalctl _COMM=sudo
මෙය අවසර නොලබාගත් හෝ අනපේක්ෂිත මෙහෙයුම් සිදුවූ විට පවා කවුද මොනවා කළේද ලුහුබඳින්නට හැකියාව ලබා දෙයි.
Q4. මම අනපේක්ෂිතව sudoers ගොනුව සංස්කරණය කළා. මොකද කරන්නේ?
A:
පළමුව, සංස්කරණය කිරීමට පෙර සැමවිටම sudo visudo භාවිතා කරන්න.
ව්යාකරණ දෝෂයක් නිසා sudo භාවිතා කළ නොහැකි නම්, පහත ක්රමවලින් එකකින් එය අලුත්වැඩියා කිරීමට උත්සාහ කරන්න:
- root ගිණුමෙන් ලොග් වී
visudoභාවිතයෙන් එය නිවැරදි කරන්න. - එය Ubuntu නම්, “Recovery Mode” වෙතින් root ලෙස බූට් වී එය අලුත්වැඩියා කරන්න.
pkexec visudo(polkitසක්රිය කර ඇති පරිසරවල).
ව්යාකරණ දෝෂ පද්ධතියේ සම්පූර්ණ මෙහෙයුමට බලපාන බැවින්, නිවැරදි කිරීමෙන් පසු ආයෙත් පරීක්ෂා කරන්න.
Q5. sudo භාවිතා නොකර root හිමිකම් ලබාගන්නා ආකාරයක් තිබේද?
A:
ඔව්, නමුත් ආරක්ෂාවේ අවදානම් වැඩිවීම නිසා එය නිර්දේශ නොකෙරේ.
උදාහරණයක් ලෙස:
suපණිවිඩයෙන් root වෙත මාරු වන්න (root මුරපදය අවශ්යයි).- root ගිණුමෙන් සෘජුව ලොග් වන්න (Ubuntu හි අක්රිය කර ඇත).
බොහෝ Linux විතරණ root ගිණුමේ සෘජු භාවිතය වළක්වා ගැනීමේ ප්රතිපත්තියක් ඇති අතර, sudo භාවිතා කිරීම ආරක්ෂිත ය.
Q6. sudo භාවිතයෙන් GUI යෙදුම් ආරම්භ කිරීම හොඳද?
A:
මූලික වශයෙන්, එය වළක්වා ගැනීම හොඳ ය. උදාහරණයක් ලෙස, sudo gedit වැනි දෙයක් ධාවනය කිරීම root හිමිකම්වලින් GUI සැකසුම් ගොනු පිටපත් කිරීමට හේතු විය හැකි අතර, එය අවසර නොගැනීම් අනනුකූලතා හෝ සැකසුම් දූෂණයට හේතු විය හැකිය.
GUI යෙදුම් භාවිතා කිරීමේදී, පහත පරිදි gksudo හෝ pkexec භාවිතා කිරීම නිර්දේශ කෙරේ (නමුත්, පරිසරය අනුව මෙම මෙවලම් පරණ හෝ ස්ථාපිත නොවිය හැකිය):
pkexec gedit
8. නිගමනය
sudo හි භූමිකාව නිවැරදිව තේරුම් ගන්න
මෙම ලිපියෙන්, Linux සහ Unix-වැනි පද්ධතිවල ඉතා වැදගත් පණිවිඩයක් වන “sudo,” එහි මූලික භූමිකාව, භාවිතය, සැකසුම් ක්රම, යෙදුම්, ආරක්ෂා පියවර, සුලබ දෝෂ, සහ FAQ ආවරණය කර ඇත.
sudo “පණිවිඩයකට ඉදිරියට දමන” දෙයක් පමණක් නොව, පද්ධති ආරක්ෂාව රැකගෙන අවශ්ය කාර්යයන් සිදුකිරීමට හැකි වැදගත් ප්රවේශ පාලන යාන්ත්රණයකි.
නිවැරදි භාවිතය ගැටලු වළක්වයි
පහත කරුණුවලට විශේෂ අවධානය යොමු කිරීම sudo ආරක්ෂිතව භාවිතා කිරීමේ යතුර ය:
- අවම අවශ්ය හිමිකම්වලින් මෙහෙයුම් සිදුකරන්න (අඩුම හිමිකම් මූලධර්මය).
visudoභාවිතයෙන් සැකසුම් ආරක්ෂිතව කළමනාකරණය කරන්න.- මෙහෙයුම් ඉතිහාසය පරීක්ෂා කිරීම සහ කළමනාකරණය සඳහා ලොග් භාවිතා කරන්න.
- පයිප් සහ රිඩයිරෙක්ට් සමඟ ඒකාබද්ධ කිරීමේදී හැසිරීම ගැන සැලකිලිමත් වන්න.
- මූලික වශයෙන් GUI යෙදුම් සඳහා එය භාවිතා නොකරන්න.
මෙම කරුණු නොතේරුම් ගැනීම “ගොනු දූෂණය වී ඇත,” “සැකසුම් ප්රතිස්ථාපනය කළ නොහැක,” හෝ “sudo භාවිතා කළ නොහැකි” වැනි ගැටලුවලට හේතු විය හැකිය.
ඔබේ පද්ධති මෙහෙයුමට ගැලපෙන ශෛලිය තෝරන්න
Linux ඉතා නම්යශීලී පද්ධතියකි. sudo භාවිතා කිරීමට අමතරව, අවශ්ය නම් doas වැනි විකල්ප මෙවලම් භාවිතා කළ හැකිය.
ඔබේ මෙහෙයුම් ප්රතිපත්තිය සහ ආරක්ෂා ප්රතිපත්තිය අනුව, ඔබට ගැලපෙන ශෛලිය තෝරා එය නිවැරදිව සැකසීම සහ මෙහෙයුම් කිරීම, හොඳින් පද්ධති කළමනාකරණයට තුඩු දෙයි.
අන්තිමට
sudo තේරුම් ගැනීම Linux තේරුම් ගැනීමේ පළමු පියවර ය.
එය පහසු පණිවිඩයක් ලෙස පමණක් නොව, “පද්ධතියේ සම්පූර්ණය ආරක්ෂා කිරීමේ යතුරක්” ලෙස නිවැරදි දැනුම සහ භාවිතය ලබාගන්න.
අපි බලාපොරොත්තු වන්නේ Linux භාවිතා කිරීමේදී, ඔබේ සෑම පණිවිඩයක්ම වැඩි විශ්වාසයෙන් ධාවනය වනු ඇති බවයි.


