“: () {: |: &};:” විධානය මගේ පද්ධතිය ප්‍රමාද වීමට හේතු වූයේ ඇයි මට නැවත ආරම්භ කිරීමට සිදු වූයේ?


298

අනතුර!

ඔබ බිඳවැටීමකට සහ / හෝ ඔබේ පද්ධතිය බලහත්කාරයෙන් නැවත ආරම්භ කිරීමට සූදානම් නැතිනම් එය 'පරීක්ෂා කිරීමට' මෙම විධානය ක්‍රියාත්මක නොකරන්න.

මම මගේ වර්චුවල් බොක්ස් ධාවනය කරමින් 12.04 ධාවනය කරමින් යෙදුමක් සම්පාදනය කිරීමට උත්සාහ කළ අතර, බලා සිටියදී මට සංවාද මණ්ඩපයකට අහම්බෙන් සිදුවිය.

:(){ :|: & };:
විනෝදය සඳහා උත්සාහ කරන්න , සහ root අවශ්‍ය නොවේ.

සිතීමකින් තොරව මම එය මගේ ග්නෝම් පර්යන්තය තුළ ධාවනය කළෙමි. එය මගේ 12.04 (අතථ්‍ය පෙට්ටියේ) පසුගාමී විය, මට එය වසා දැමීමට සිදුවිය.

මගේ ප්‍රශ්නය නම් මෙම විධානය කරන්නේ කුමක්ද?

: () {: |: &};:



1
පැරණි නූලක් ද බලන්න: ubuntuforums.org/showthread.php?t=1392511
වී ලෑන්ඩෝ


11
"පසුගාමී වීම" තරමක් ශුභවාදී ය.
pstadler

Answers:


381

මෙය දෙබලක බෝම්බයක් ලෙස හැඳින්වේ .

:() එයින් අදහස් වන්නේ ඔබ නම් කරන ලද ශ්‍රිතයක් අර්ථ දක්වන බවයි :

{:|: &}එයින් අදහස් වන්නේ ශ්‍රිතය ධාවනය කර :එහි ප්‍රතිදානය :නැවත ශ්‍රිතයට යවා එය පසුබිමේ ධාවනය කිරීමයි.

මෙම ;විධාන වෙන්කර ඇත.

: පළමු වරට ශ්‍රිතය ක්‍රියාත්මක කරයි.

අත්‍යාවශ්‍යයෙන්ම ඔබ නිර්මාණය කරන්නේ සෑම ඇමතුමකටම දෙවරක් තමාටම කියා ගන්නා අතර එය අවසන් කිරීමට ක්‍රමයක් නොමැත. ඔබ පද්ධති සම්පත් ඉවර වන තුරු එය දෙගුණ කරයි.

අතථ්‍ය පෙට්ටියේ ධාවනය කිරීම ඉතා සංවේදී ය. එසේ නොවුවහොත් ඔබට ඔබේ පරිගණකය නැවත ආරම්භ කිරීමට සිදුවනු ඇත.


28
මෙම පිළිතුර මඟින් නැවත පණගැන්වීම එකම මඟ බව යෝජනා කරයි . නමුත් ඇත්ත වශයෙන්ම මෙම දෙබලක බෝම්බය නැවත පණගැන්වීමකින් තොරව මරා දැමිය හැකි අතර, ඇත්ත වශයෙන්ම එය සමහර පද්ධතිවල නිසි ලෙස ක්‍රියා නොකරන බව මම නිරීක්ෂණය කර ඇත්තෙමි.
කොන්රාඩ් රුඩොල්ෆ්

28
ඇත්ත වශයෙන්ම, සම්පූර්ණ පැහැදිලි කිරීමක් සඳහා මෙය ;විධාන බෙදුම්කරුවෙකු බව සඳහන් කළ යුතුය . මෙම { ... }කොටස හුදෙක් ක්රියාව අන්තර්ගතය වේ.
සීවීඑන්

1
Up සුපර්මැට් මෙම ප්‍රශ්නය තවමත් සක්‍රීයදැයි මම නොදනිමි, කෙසේ වෙතත් මට අවශ්‍ය වූයේ කුමක්ද |සහ &කරන්නේ කුමක්ද යන්න දැන ගැනීමටය . ඔබ ශ්‍රිතයේ ක්‍රියාකාරිත්වය සපයා ඇති බව මට වැටහී ඇති නමුත් මේ දෙදෙනා කරන්නේ කුමක්දැයි දැන ගැනීමට මට අවශ්‍ය විය
නොබර්

1
Ou ඔබ තවමත් පුදුම වන්නේ නම් (ලිනක්ස් වන මෙම කළු කුහරය තුළ මම සිටින්නේ ලිනක්ස් ලෙසිනි) මම දනිමි! | පහත දැක්වෙන විධානයට ආදානය ලෙස එම විධාන ප්‍රතිදානය යැවීමට විධානයකට පසුව එය තබනු ලබන නලයකි. & එය
දෙබලකි,

1
lflurbius ගේ ප්‍රතිචාරය මත ගොඩ නැගීමට සහ එය පිළිතුරෙහි සඳහන් කර ඇති නිසා: &&සමමුහුර්ත විධානයක් වන අතර එය පහත දැක්වෙන කේතය ක්‍රියාත්මක කිරීමට පෙර පෙර විධානය අවසන් වන තෙක් බලා සිටී. උදා: mkdir new_directory && cd new_directoryනව නාමාවලියක් සාදනු ඇති අතර එය අවසන් වූ පසු ක්‍රියාත්මක වේ cd new_directory; ඔබ එසේ කළහොත් ඔබට වැඩසටහනෙන් mkdir new_directory & cd new_directoryදෝෂයක් ලැබෙනු ඇත cd(නමුත් නාමාවලිය නිර්මාණය කරන ලද mkdirනමුත් එය cdක්‍රියාවට mkdirනැංවීමට පෙර ක්‍රියාත්මක විය).
Sgnl

182

මෙය ෂෙල් වලින් ක්‍රියාත්මක කරන ඊනියා ෆෝක් බෝම්බයකි .

විකිපීඩියාවෙන්:

:(){ :|:& };:
\_/| |||| ||\- ... the function ':', initiating a chain-reaction: each ':' will start    two more.
 | | |||| |\- Definition ends now, to be able to run ...
 | | |||| \- End of function-block
 | | |||\- disown the functions (make them a background process), so that the children    of a parent
 | | |||   will not be killed when the parent gets auto-killed
 | | ||\- ... another copy of the ':'-function, which has to be loaded into memory.
 | | ||   So, ':|:' simply loads two copies of the function, whenever ':' is called
 | | |\- ... and pipe its output to ...
 | | \- Load a copy of the function ':' into memory ...
 | \- Begin of function-definition
 \- Define the function ':' without any parameters '()' as follows:

5
එය ස්පර්ශක ලක්ෂ්‍යයක් වුවද, 'ප්‍රතික්ෂේප කිරීම' යන පදය අධික ලෙස පැටවිය හැකි වුවද, තාක්‍ෂණිකව, පසුබිමට ඇතුළත් කරන ලද ක්‍රියාවලියක් නොසලකා හරිනු නොලබන අතර සෑම විටම 'fg' විධානය සමඟ පෙරට ගෙන යා හැකි අතර, ක්‍රියාවලිය (එස්) අවසන් වුවහොත් පරිශීලකයා ඉවත් වීම ( ලොග්අවුට් ඉටු කිරීම සඳහා තවමත් සම්පත් තිබේ නම් ) .... ක්‍රියාවලිය හෝ රැකියාව පිළිබඳ යමෙකු 'බැහැර කිරීම' ක්‍රියාත්මක කළහොත් මිස. ඊට පසු එය සැබවින්ම ප්‍රතික්ෂේප කරනු ලැබේ: ඉවත් වීම අවසන් නොවන අතර fg කිසිදු බලපෑමක් ඇති නොකරයි.
රොන්ඩෝ

2
එය සුළු කාරණයක් වුවද, වරහන් යනු බාෂ් වැනි ෂෙල් වෙඩි වල පරාමිතීන් නොමැති බව අදහස් නොකෙරේ, ඒවා සී විලාසිතාවේ භාෂාවලින් ඉතිරිව ඇති සැරසිලි පමණි.
චාලි හාඩිං

76

එම විධානය ෆෝක් බෝම්බයේ ප්‍රසිද්ධ අනුවාදයකි

විකිපීඩියාවෙන් ෆෝක් බෝම්බ පික්

ක්‍රියාවලියක් අනන්තවත් කිරීමෙන් ඔබේ පරිගණකය මතකය නැති වී යයි. ඔබට එරෙහිව භාවිතා කළ හැකි ආරක්ෂණ කිහිපයක් ද තිබේ:

යුනික්ස් වර්ගයේ පද්ධති සාමාන්‍යයෙන් ක්‍රියාවලි සීමාවක් ඇති අතර එය පාලනය කරනු ලබන්නේ ulimit shell විධානයක් හෝ එහි අනුප්‍රාප්තිකයා වන setrlimit විසිනි. ලිනක්ස් කර්නල් ක්‍රියාවලියක RLIMIT_NPROC rlimit ("සම්පත් සීමාව") සකසා බලාත්මක කරයි. ක්‍රියාවලියක් දෙබලක සිදු කිරීමට උත්සාහ කරන්නේ නම් සහ එම ක්‍රියාවලිය සතු පරිශීලකයාට දැනටමත් ක්‍රියාවලි තිබේ RLIMIT_NPROCනම්, දෙබල අසමත් වේ. මීට අමතරව, ලිනක්ස් හෝ * බීඑස්ඩී මත යමෙකුට pam_limitsවින්‍යාස ගොනුව /etc/security/limits.confඑකම බලපෑමකට සංස්කරණය කළ හැකිය . කෙසේ වෙතත්, ලිනක්ස් හි සියලුම බෙදාහැරීම් pam_limitsපෙරනිමියෙන් මොඩියුලය ස්ථාපනය කර නොමැත.


19

අනුව මෙම :(){ :|: & };: හැඳින්වේ

ෆෝක්බොම්බ් යනු කාව්‍යමය වෛරස් නිර්මාපකයෙකි

... වංචනික කුඩා වැඩසටහන මඟින් එහි පිටපත් කිහිපයක් සෑදීමට අණ කරයි, දාම ප්‍රතික්‍රියාවක් සකසා පද්ධතියේ සම්පත් ඉක්මනින් වෙහෙසට පත් කරයි ...

එබැවින් මෙය ක්‍රියාත්මක නොකරන ලෙසට උපදෙස් දී ඇති අතර, දෘඩාංග වලට හානි සිදුවිය හැකි බැවින් එය ලිහිල්ව ක්‍රියාත්මක වන අතර ලැප්ටොප් පරිගණකවල පහසුවෙන් උණුසුම ලබා ගත හැකිය.

තවත් සබැඳියක් මෙහි තිර දර්ශන හරහා පැහැදිලි කරයි .


60
දෙබලක බෝම්බයක් දෘඩාංග වලට හානි කරයි නම්, ඔබට වඩා විශාල හා ගැඹුරු ගැටළුවක් ඇත.
සීවීඑන්

40
සමහර විට ඔහු ඔබේ පරිගණකය අසල පුපුරා යා හැකි දෙබලක හැඩැති බෝම්බයක් ගැන කතා කරමින් සිටියාද?
dsocolobsky

3
තිර රුව සඳහා සබැඳිය කැඩී ඇත.
IMustBeSomeone

1
එය දෘඩාංග හානිවලට හේතු වේ නම්, එයින් අදහස් වන්නේ එය දැනටමත් පැවති දෘඩාංග ගැටළුවක් නිරාවරණය කර ඇති බවයි. අවහිර කළ සිසිලන පංකා හෝ වායු නාලිකා සහිත ලැප්ටොප් පරිගණකයක් මෙන්. එය යන්ත්රය 100% ක බරකින් දිගු කාලයක් ධාවනය කරයි. (CPU, ප්‍රධාන මතකය සහ දෘඩ තැටිය (අතථ්‍ය මතකය උපකල්පනය කිරීම) අධික බරකින් ධාවනය වන අතර, ඉන් එකක් වන්නේ 100% ක් ධාවනය වන සීමිත කොටසයි). බොහෝ ආකාරයේ සමාකරණ මෘදුකාංග වැනි පරිපූර්ණ අමිහිරි අවස්ථාවන්හිදී එය සිදුවිය හැකිය.
වොල්කර් සීගල්

1

ඉහත විස්තර කර ඇති පරිදි එය “ දෙබලක බෝම්බයක් ” ලෙස හැඳින්වෙන අතර මෙය සිදු කළ හැකි තවත් ක්‍රමයක් වන්නේ නල මාර්ගයට වඩා පසුබිම් ක්‍රියාත්මක කිරීම ය:

:(){ :&:;};:
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.