ඇලෙන සුළු බිට් වැඩ කරන්නේ කෙසේද?


153

SUID

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

නමුත් එය මතකයේ ගබඩා වී ඇති දේ මම නොදනිමි. මේ අවස්ථාවේ දී මම ඔවුන්ව දකින්නේ කෙසේද?


වැඩ කළ උදාහරණ සහ පැහැදිලි කිරීම් සහිත හොඳ නිබන්ධනයක් මෙන්න. මෙය අවබෝධ කර ගැනීම සඳහා යතුර වන්නේ අෂ්ටක ක්‍රමයයි. වැඩ කළ උදාහරණ සමඟ ලිනක්ස් ස්ටිකි බිට්ස් නිබන්ධනය .
සීඑම්පී

Answers:


201

මෙය මිනිසුන් නිතරම අවුල් කරන මගේ වඩාත්ම අවුල් සහගත දේවලින් එකක් විය හැකිය. SUID / GUID බිට් සහ ඇලෙන සුළු බිට් සම්පූර්ණයෙන්ම වෙනස් දේවල් 2 කි.

ඔබ එසේ කරන්නේ නම් ඔබට man chmodSUID සහ ඇලෙන සුළු බිටු ගැන කියවිය හැකිය. මෙම man පිටුව මෙතන ලබා ගත මෙන්ම.

පසුබිම

උපුටා ගැනීම

RwxXst අක්ෂර බලපෑමට ලක්වූ පරිශීලකයින් සඳහා ගොනු මාදිලි බිටු තෝරන්න: කියවීම (r), ලිවීම (w), ක්‍රියාත්මක කිරීම (හෝ නාමාවලි සෙවීම) (x), ක්‍රියාත්මක කිරීම / සෙවීම ගොනුව නාමාවලියක් නම් හෝ දැනටමත් සමහරක් සඳහා අවසර ලබා දී තිබේ නම් පමණි පරිශීලක (X), ක්‍රියාත්මක කිරීමේදී පරිශීලකයන්ගේ හෝ කණ්ඩායම් හැඳුනුම්පත සකසන්න , සීමිත මකාදැමීමේ ධජය හෝ ඇලෙන සුළු බිට් (ටී) .

SUID / GUID

ඉහත මිනිසාගේ පිටුව කියන්නට උත්සාහ කරන්නේ x බිටු rwxrwxrwx හි පරිශීලක අෂ්ටක (1 වන rwx කාණ්ඩය) සහ කණ්ඩායම් අෂ්ටක (2 වන rwx කාණ්ඩය) සඳහා x යන ස්ථානය x බවට පත්වන අතිරේක තත්වයක් ගත හැකි බවයි. එස්. මෙය සිදු වූ විට මෙම ගොනුව ක්‍රියාත්මක වන විට (එය වැඩසටහනක් මිස ෂෙල් ස්ක්‍රිප්ට් එකක් නොවේ නම්) අයිතිකරුගේ හෝ ගොනුවේ කණ්ඩායමේ අවසරය ඇතිව ක්‍රියාත්මක වේ.

එබැවින් ගොනුව root සතු වන අතර SUID බිට් සක්‍රිය කර ඇත්නම්, වැඩසටහන root ලෙස ක්‍රියාත්මක වේ. ඔබ එය සාමාන්‍ය පරිශීලකයෙකු ලෙස ක්‍රියාත්මක කළත්. GUID බිට් සඳහා එකම දේ අදාළ වේ.

උපුටා ගැනීම

සැකසුම් සහ සෙට්ජිඩ් බිටු

පරිශීලකයාට සුදුසු වරප්‍රසාද නොමැති නම්, ගොනුවේ කණ්ඩායම් හැඳුනුම්පත පරිශීලකයාගේ group ලදායී කණ්ඩායම් හැඳුනුම්පතට හෝ පරිශීලකයාගේ අතිරේක කණ්ඩායම් හැඳුනුම්පතට නොගැලපේ නම් chmod සාමාන්‍ය ගොනුවක කට්ටල-කණ්ඩායම් හැඳුනුම්පත ඉවත් කරයි. අතිරේක සීමාවන් නිසා MODE හෝ RFILE හි set-user-ID සහ set-group-ID බිටු නොසලකා හැරිය හැක. මෙම හැසිරීම රඳා පවතින්නේ යටින් පවතින chmod පද්ධති ඇමතුමේ ප්‍රතිපත්ති සහ ක්‍රියාකාරිත්වය මත ය. සැකයක් ඇති විට, යටින් පවතින පද්ධති හැසිරීම පරීක්ෂා කරන්න.

ඔබ වෙනත් ආකාරයකින් පැහැදිලිව සඳහන් නොකරන්නේ නම් chmod ඩිරෙක්ටරියක set-user-ID සහ set-group-ID බිටු ආරක්ෂා කරයි. ඔබට u + s සහ gs වැනි සංකේතාත්මක මාතයන් සමඟ බිටු සැකසීමට හෝ ඉවත් කිරීමට හැකි අතර සංඛ්‍යාත්මක මාදිලියකින් බිටු සැකසිය හැකිය (නමුත් පැහැදිලි නැත).

SUID / GUID උදාහරණ

suid / guide නැත - rwxr-xr-x බිටු පමණක් සකසා ඇත.

$ ls -lt b.pl
-rwxr-xr-x 1 root root 179 Jan  9 01:01 b.pl

suid & user's executable bit enable (සිම්පල්) - බිටු rwsr-xrx සකසා ඇත.

$ chmod u+s b.pl 
$ ls -lt b.pl 
-rwsr-xr-x 1 root root 179 Jan  9 01:01 b.pl

suid enable & executable bit disable (ලොකු අකුරු) - බිටු rwSr-xr-x සකසා ඇත.

$ chmod u-x b.pl
$ ls -lt b.pl 
-rwSr-xr-x 1 root root 179 Jan  9 01:01 b.pl

මාර්ගෝපදේශ සහ සමූහයේ ක්‍රියාත්මක කළ හැකි බිට් සක්‍රීය (කුඩා අකුරු) - බිටු rwxr-sr-x සකසා ඇත.

$ chmod g+s b.pl
$  ls -lt b.pl 
-rwxr-sr-x 1 root root 179 Jan  9 01:01 b.pl

මාර්ගෝපදේශය සක්‍රීය සහ ක්‍රියාත්මක කළ හැකි බිට් අක්‍රීය කර ඇත (ලොකු අකුරු) - බිටු rwxr-Sr-x සකසා ඇත.

$ chmod g-x b.pl
$  ls -lt b.pl 
-rwxr-Sr-x 1 root root 179 Jan  9 01:01 b.pl

ඇලෙන සුළු බිට්

අනෙක් අතට ඇලෙන සුළු බිටු නාමාවලිය tසමඟ දැක්වේ /tmp:

$ ls -l /|grep tmp
drwxrwxrwt. 168 root root 28672 Jun 14 08:36 tmp

මෙම බිට් සෑම විටම "සීමිත මකාදැමීමේ බිට්" ලෙස හැඳින්විය යුතුව තිබුනේ එය සැබවින්ම අදහස් කරන්නේ එයයි. මෙම මාදිලියේ බිට් සක්‍රිය කර ඇති විට, එය පරිශීලකයින්ට එහි හිමිකරුවන් වන ලිපිගොනු සහ නාමාවලි පමණක් මකා දැමිය හැකි නාමාවලියක් සාදයි.

උපුටා ගැනීම

සීමා කරන ලද මකාදැමීමේ කොඩිය හෝ ඇලෙන සුළු බිට්

සීමා කරන ලද මකාදැමීමේ ධජය හෝ ඇලෙන සුළු බිට් යනු තනි බිට් එකක් වන අතර එහි අර්ථ නිරූපණය ගොනු වර්ගය මත රඳා පවතී. නාමාවලි සඳහා,
නුසුදුසු පරිශීලකයින්ට ගොනුව හෝ නාමාවලිය අයිති නැතිනම් නාමාවලියෙහි ගොනුවක් ඉවත් කිරීම හෝ නම් කිරීම වළක්වයි; මෙය නාමාවලිය සඳහා සීමිත මකාදැමීමේ ධජය ලෙස හැඳින්වෙන අතර එය පොදුවේ දක්නට ලැබෙන්නේ / tmp වැනි ලෝක ලිවිය හැකි නාමාවලි වල ය. සමහර පැරණි පද්ධතිවල සාමාන්‍ය ලිපිගොනු සඳහා, බිට් මඟින් වැඩසටහනේ පෙළ රූපය swap උපාංගයේ සුරකින අතර එය ක්‍රියාත්මක වන විට එය ඉක්මණින් පටවනු ඇත; මෙය ඇලෙන සුළු බිට් ලෙස හැඳින්වේ.


46
ඇත්ත වශයෙන්ම ඇලෙන සුළු බිට් මීට පෙර ක්‍රියාත්මක කළ හැකි ඒවා සඳහා යෙදිය හැකි අතර, එමඟින් ඒවා ප්‍රථමයෙන් පැටවූ පසු ඒවා හුවමාරුවේ පවතී. මෙය බොහෝ විට භාවිතා කළ වැඩසටහන් සඳහා අනවශ්‍ය තැටි / ජාල (එන්එෆ්එස්) සහ සීපීයූ භාවිතය ඉතිරි කර ගත හැකිය. කෙසේ වෙතත්, ලිනක්ස් හෝ බොහෝ (සියල්ලම?) යුනික්ස් පද්ධති මෙයට තවදුරටත් සහාය නොදක්වයි (එය කර්නලයෙන් ඉවත් කරන ලදි). එය "ඇලෙන සුළු" ය, මන්ද යත් ක්‍රියාත්මක කළ හැකි දේ හුවමාරුවේ සිරවී ඇති බැවිනි. ඊට අමතරව, ඔබ විස්තර කරන පරිදි එය නාමාවලි සඳහා භාවිතා කරන ලදී.
බාඩ් කොපෙරුඩ්

4
ඇත්ත වශයෙන්ම "බොහෝ භාවිතා කරන ලද හෝ ඉතා විශාල" වඩා හොඳ විස්තරයක් වනු ඇත. මගේ විද්‍යාලයේ නෙට්ස්කේප් වෙබ් බ්‍රව්සරය ඔවුන්ගේ HP-UX පරිගණකයේ 1995 දී "ඇලෙන සුළු" ලෙස තිබූ බව මතක තබා ගන්න. එබැවින් බොහෝ විට භාවිතා කරන ලද කුඩා වැඩසටහන් (උදා: පද්ධති විධාන නිතරම ක්‍රෝන් මඟින් ක්‍රියාත්මක වේ) සහ විශාල වැඩසටහන් (උදා: නෙට්ස්කේප්) "ඇලෙන සුළු" බවට පත් කළ යුතු ප්‍රධාන අපේක්ෂකයින් විය. අවස්ථා දෙකේදීම, ඒවා තැටියෙන් / එන්එෆ්එස් වෙතින් නිරන්තරයෙන් නැවත පූරණය කිරීම නාස්තියකි.
බාඩ් කොපෙරුඩ්

10
ඇලෙන සුළු බිට් වැඩසටහන් අදහස් කළේ RAM හි රැඳී සිටීම සඳහා මිස swap හි නොවේ (swap ගොනුවකින් රූපයක් පැටවීම ගොනු පද්ධති තැටියෙන් පැටවීමට වඩා වේගවත් නොවේ). එය අත්‍යවශ්‍ය මෙහෙයුම් මට්ටමේ විධාන සඳහා අදහස් කරන ලදී ls. නිසැකවම, ගොනුවක ඇලෙන සුළු බිට් සැකසිය හැක්කේ සුපිරි පරිශීලකයාට පමණි. අතථ්‍ය මතකය සහ හවුල් පුස්තකාල හඳුන්වා දීමෙන් පසුව එය එතරම් වැදගත් නොවූ අතර, විශේෂයෙන් පේජර්වරු වඩාත් දක්ෂ වූ අතර පදිංචිව සිටිය යුතු පිටු ගතිකව තීරණය කළ හැකිය.
ඇලෙක්සිස්

4
ඇලෙන සුළු දේපල නාමාවලියක් සඳහා කිසිදු තේරුමක් නැති හෙයින්, ඩිරෙක්ටරි සඳහා සාම්ප්‍රදායික ලිපිගොනු නිර්මාණය කිරීමේ අර්ථ නිරූපණය වෙනස් කිරීම සඳහා එම අවසර පත්‍රයම පසුව අර්ථකථනය කරන ලදි.
ඇලෙක්සිස්

5
@alexis: මුලදී, ඇලෙන සුළු බිට් වැඩසටහන් swap අවකාශයේ තබා ඇත. මෙය ගොනු පද්ධතියෙන් කියවීමට වඩා වේගවත් විය. මන්දයත් swap ගොනු රූප කියවීම පරස්පර අංශ වන බැවින් බොහෝ දුරට අසමමුහුර්තව කියවිය හැකිය. මුල් ගොනු පද්ධති සමඟ, අංශවල “ධාවන දිග” නොතිබූ අතර බොහෝ මුල් ගොනු පද්ධති රියදුරන් වරකට එක් අංශයක් කියවති. පීඩීපී -40 හි ප්‍රති result ලය ඇලෙන සුළු වැඩසටහන් ක්ෂණිකව පටවන බවක් පෙනෙන්නට තිබූ අතර ඇලෙන සුළු වැඩසටහන් සුපුරුදු දෙවන හෝ දෙක ගත විය. මම හිතන්නේ අපිට තිබුණේ edඇලෙන සුළුයි.
වොලික්

8

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

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

කෙසේ වෙතත්, එම පැරණි හැසිරීම තුළ රූපය ("කේතය" පමණක් නොව දත්ත පමණක් නොවේ) අතථ්‍ය මතකයේ පමණක් තබා ඇත - සාමාන්‍යයෙන් මාරු වී ඇත, සැබෑ මතකයේ නොවේ, ඊළඟ වතාවේ එය වේගයෙන් ධාවනය කිරීමට.


3

ඇලෙන සුළු බිටු යනු කුමක්ද?

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

විවේචනාත්මක ෆෝල්ඩර සහ ඒවායේ අන්තර්ගතය (උප නාමාවලි සහ ලිපිගොනු) මකා දැමීම වළක්වා ගැනීම සඳහා මෙය ආරක්ෂක පියවරකි, නමුත් අනෙක් පරිශීලකයින්ට පූර්ණ අවසර ඇත.


1
එය නිවැරදි නැත: en.wikipedia.org/wiki/Sticky_bit
AB

7
@AB ඔබ උපුටා දක්වන විකිපීඩියා ලිපියේ ආරම්භය අක්ෂර වින්‍යාසය දක්වාම මට ඉතා නිවැරදි බව පෙනේ. එහි ඇති වරද කුමක්ද?
roaima

පිළිතුර අසම්පූර්ණ බව මම කියමි. "ස්ටිකි" යන්නෙන් ද කියවෙන්නේ ක්‍රියාත්මක කළ හැකි දේ වේගයෙන් ක්‍රියාත්මක වන පරිදි හුවමාරු අවකාශයේ තබා ඇති බවයි. දැන්, මෙය පුරාණ ඉතිහාසය වන නමුත් පැරණි ගොනු පද්ධතිවල රියදුරන් වරකට එක් අංශයක් කියවීමට පුරුදුව සිටියහ. මෙමඟින් ඇලෙන සුළු නොවන ක්‍රියාකාරීත්වයන් මන්දගාමී විය, ඇලෙන සුළු බව එකල අර්ථවත් විය.
හොස්ට් කෝඩ්
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.