මුරපදයක් නොමැතිව නිශ්චිත sudo විධාන ක්‍රියාත්මක කරන්නේ කෙසේද?


223

එක් විශේෂිත යන්ත්‍රයක මට බොහෝ විට sudoවිධාන ක්‍රියාත්මක කිරීමට අවශ්‍ය වේ . sudoබොහෝ අවස්ථාවන්හිදී මුරපදය ඇතුළත් කිරීම ගැන මම සතුටු වෙමි .

කෙසේ වෙතත් මුරපදය ඇතුළත් නොකර මට ක්‍රියාත්මක කිරීමට අවශ්‍ය විධාන තුනක්sudo තිබේ :

  • sudo reboot
  • sudo shutdown -r now
  • sudo shutdown -P now

මුරපද ආරක්ෂණයේ සිට මෙම විධානයන් බැහැර කරන්නේ කෙසේද sudo?


Answers:


300

NOPASSWDවිධානය භාවිතා කරන්න

NOPASSWDඔබේ /etc/sudoersගොනුවේ විධානය භාවිතා කළ හැකිය .

ඔබේ පරිශීලකයා කැඳවා userඔබේ සත්කාරක සමාගම කැඳවනු ලැබුවහොත් ඔබට hostමෙම රේඛා එකතු කළ හැකිය /etc/sudoers:

user host = (root) NOPASSWD: /sbin/shutdown
user host = (root) NOPASSWD: /sbin/reboot

මුරපදයක් ඇතුළත් නොකර පරිශීලකයාට userඅපේක්ෂිත විධාන ක්‍රියාත්මක කිරීමට මෙය ඉඩ දෙයි host. අනෙක් සියලුම sudoසංස්කරණ සඳහා තවමත් මුරපදයක් අවශ්‍ය වේ.

මෑන් පිටුවේ විස්තර කර ඇති පරිදි sudoersගොනුවේ දක්වා ඇති විධානයන් පූර්ණ සුදුසුකම් ලැබිය යුතුය (එනම් ක්‍රියාත්මක කිරීමට විධානයට නිරපේක්ෂ මාර්ගය භාවිතා කිරීම) . සාපේක්ෂ මාර්ගයක් සැපයීම සින්ටැක්ස් දෝෂයක් ලෙස සැලකේ.sudoers

විධානය පසුපස /අක්‍ෂරයකින් අවසන් වී නාමාවලියකට යොමු කරන්නේ නම්, පරිශීලකයාට එම නාමාවලියෙහි ඕනෑම විධානයක් ක්‍රියාත්මක කිරීමට හැකි වනු ඇත (නමුත් එහි කිසිදු උප නාමාවලියක නොවේ). පහත උදාහරණයේ දී, පරිශීලකයාට userනාමාවලියෙහි ඕනෑම විධානයක් ක්‍රියාත්මක කළ හැකිය /home/someuser/bin/:

user host = (root) NOPASSWD: /home/someuser/bin/

සටහන: ඔබ පද්ධතියෙන් ඉවත් නොවී සිටින බවට වග බලා ගැනීම සඳහා ගොනුව visudoසංස්කරණය කිරීමට සෑම විටම විධානය භාවිතා කරන්න sudoers- ඔබ අහම්බෙන් sudoersගොනුවට වැරදි යමක් ලිවුවහොත් . visudoඔබගේ වෙනස් කළ ගොනුව තාවකාලික ස්ථානයකට සුරකිනු ඇති අතර නවීකරණය කරන ලද ගොනුව දෝෂයකින් තොරව විග්‍රහ කළ හැකි නම් පමණක් සත්‍ය sudoersගොනුව නැවත ලියයි.

/etc/sudoers.dවෙනස් කිරීම වෙනුවට භාවිතා කිරීම/etc/sudoers

/etc/sudoersගොනුව සංස්කරණය කිරීමට විකල්පයක් ලෙස , ඔබට පේළි දෙක නව ගොනුවකට /etc/sudoers.dඋදා /etc/sudoers.d/shutdown. මෙය sudoඅයිතිවාසිකම්වල වෙනස් වෙනස්කම් වෙන් කිරීමේ අලංකාර ක්‍රමයක් වන sudoersඅතර පහසු ගොනුව වැඩිදියුණු කිරීම සඳහා මුල් ගොනුව ස්පර්ශ නොකරයි.

සටහන: නැවතත්, ඔබ visudoපද්ධතියෙන් ඉවත් නොවී සිටින බවට වග බලා ගැනීම සඳහා ගොනුව සංස්කරණය කිරීමට විධානය භාවිතා කළ යුතුය :

sudo visudo -f /etc/sudoers.d/shutdown 

නව ගොනුවේ හිමිකරු සහ අවසරයන් නිවැරදිව සකසා ඇති බව මෙය ස්වයංක්‍රීයව සහතික කරයි.

sudoersඅවුල් නම්

ඔබ visudoඔබේ ලිපිගොනු සංස්කරණය කිරීමට භාවිතා නොකළේ නම් සහ අහම්බෙන් අවුල් සහගත /etc/sudoersහෝ ගොනුවක් අවුල් /etc/sudoers.dකළහොත් ඔබ අගුළු දමනු ඇත sudo.

විසඳුම විය හැක්කේ pkexecවිකල්පයක් ලෙස ලිපිගොනු සවි කිරීමයි sudo.

නිවැරදි කිරීමට /etc/sudoers:

pkexec visudo

නිවැරදි කිරීමට /etc/sudoers.d/shutdown:

pkexec visudo -f /etc/sudoers.d/shutdown

කිසියම් sudoersගොනුවක් සඳහා හිමිකාරිත්වය සහ / හෝ අවසරයන් වැරදියි නම් , ගොනුව නොසලකා හරිනු ඇත, sudoඑවිට මෙම තත්වය තුළ ඔබම අගුළු දමා ඇති බව ඔබට පෙනී යනු ඇත. නැවතත්, ඔබට මෙය pkexecනිවැරදි කිරීමට භාවිතා කළ හැකිය .

නිවැරදි අවසරයන් මෙසේ විය යුතුය:

$ ls -l /etc/sudoers.d/shutdown 
-r--r----- 1 root root 86 Jul 16 15:37 /etc/sudoers.d/shutdown

හිමිකාරිත්වය සහ අවසරයන්pkexec නිවැරදි කිරීමට මේ ආකාරයට භාවිතා කරන්න :

pkexec chown root:root /etc/sudoers.d/shutdown
pkexec chmod 0440 /etc/sudoers.d/shutdown

2
පේළි දෙක විශේෂයෙන් මෙම විධාන දෙකට යොමු වේ. නම් userලබා දී වෙනත් ක්රම නැත sudoහිමිකම් වෙනත් කිසිදු විධාන මෙම පරිශීලකයාට sudoed කළ හැක. man sudoසහ බලන්න man sudoers.
mgd

4
@ ස්ටැන්කුර්ඩ්සියල් මම මැක් ඕඑස් එක්ස් යොස්මයිට් හි මෙම රේඛාව සමඟ උත්සාහ කළ අතර එය හොඳින් ක්‍රියාත්මක විය : mgd ALL=(root) NOPASSWD: /var/root/test. මම පරිශීලකයෙක් වන mgdඅතර ALLඑහි තේරුම "සියලු සත්කාරකයන්ගෙන්" යන්නයි . /var/root/testඅවසර සහිත සරල "හෙලෝ වර්ල්ඩ්" ෂෙල් පිටපතකි : -rwx------ 1 root wheel 27 12 Jun 09:54 /var/root/test. මම පද්ධතියේ වෙනත් වෙනස්කම් කර නැත .
mgd

2
කුමක්ද hostමේ sudoers ගොනුවේ?
user106563

1
එය පිළිතුරක් නොවේ, එය NOPASSWD විධානය පිළිබඳ සම්පූර්ණ මඟ පෙන්වීමකි. ඔබට ස්තුතියි.
Eray

1
Ic කරුණාකර මිනිසාගේ පිටුව කියවන්න. ඒ සියල්ල එහි ලියා ඇත. එය උපුටා දැක්වීම සඳහා: කෙසේ වෙතත්, ඔබට විධාන රේඛා තර්ක (ආදේශක කාඩ්පත් ද ඇතුළුව) නියම කළ හැකිය. විකල්පයක් ලෙස, විධානය ක්‍රියාත්මක විය හැක්කේ විධාන රේඛා තර්ක නොමැතිව බව දැක්වීමට ඔබට "" නියම කළ හැකිය.
mgd

7

කණගාටුයි, නමුත් මේ පිළිබඳව බොහෝ ව්‍යාකූලතා සහ ඇත්තෙන්ම සංකීර්ණ පිළිතුරු ඇත, යමෙකු වරදවා වටහාගෙන පිස්සු යමක් කිරීමට පෙර මා මෙහි බර තැබිය යුතු යැයි මට හැඟේ.

විසූඩෝ භාවිතා කිරීම !!

වින්‍යාසයට පහත පේළි එක් කරන්න:

ALL ALL=NOPASSWD: /sbin/reboot,/sbin/shutdown

ඕනෑම පරාමිතියක් සමඟ විධාන, නැවත ආරම්භ කිරීම සහ වසා දැමීම ඕනෑම පරිශීලකයෙකුගෙන් ක්‍රියාත්මක කිරීමට මෙය ඉඩ දෙයි.

කරුණාකර stackexchange, සරල සංක්ෂිප්ත පිළිතුරු දෙන්න.


2
නැත එක් අනෙකුත් පිළිතුර. මෙම පිළිතුර අනෙකා සමඟ සංසන්දනය කිරීම: අනෙක් පිළිතුර එක් සත්කාරකයක එක් පරිශීලකයෙකු සඳහා සකසන්නේ කෙසේද යන්න පැහැදිලි කළේය; බහු පරිශීලකයින් සහ බහු ධාරකයන් සඳහා සාමාන්‍යකරණය කිරීම පැහැදිලිය. ඔබගේ පිළිතුර මැජික් ප්‍රබන්ධයක් ලබා දෙයි (එය සැබවින්ම සියලුම පරිශීලකයින්ට හෝ සියලුම සත්කාරක සමාගම් වලට අදාළ වේ, නමුත් එය සම්පූර්ණයෙන්ම අවිනිශ්චිතය). අනෙක් වෙනස නම් ඔබේ පිළිතුර තනි පේළියක විධාන දෙකක් ලබා දීමයි. ඔබට එය කළ හැකි බව මම දැන සිටියේ නැත - එය සුළු වශයෙන් ප්‍රයෝජනවත් ය, නමුත් සුඩෝරයන්ගේ සංකීර්ණත්වය සැලකිල්ලට ගෙන මම එය කවදා හෝ භාවිතා කරනු ඇතැයි සැක කරමි.
මාටින් බොනර් මොනිකා
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.