MacOs [OS X] මත පද්ධති අඛණ්ඩතාව ආරක්ෂණ (SIP) AKA “මූල රහිත” අක්‍රීය කරන්නේ කෙසේද?


168

ඇපල් විසින් OS X 10.11, El Capitan සමඟ "මූල රහිත" ලෙස හඳුන්වන පද්ධති අඛණ්ඩතාව ආරක්ෂණය හඳුන්වා දී ඇත . මෙය අනිෂ්ට මෘදුකාංග වලින් ආරක්ෂා වීම සඳහා වන පියවරක් බව මට වැටහී ඇති නමුත් සංවර්ධකයෙකු ලෙස එය අගුළු දමා ඇති සමහර ගොනු වෙත ලිඛිත ප්‍රවේශය අවශ්‍ය වේ.

මෙම ආරක්ෂාව අක්‍රීය කරන්නේ කෙසේද?


2
ඔබට සියලු SIP අංග නිවැරදි කළ හැකි වුවද, මේ සඳහා ඕනෑ තරම් ඇතුළත් කිරීම් තිබේ - මතක තබා ගන්න පද්ධතිය සම්මුතියෙන්, ඔබ ඔබේ සේවාදායකයාගේ යන්ත්‍රය තුළ ක්‍රියාත්මක නොවිය හැකි දේවල් ගොඩනඟන බව මතක තබා ගන්න, එහිදී SIP සක්‍රිය කර ඇති අතර පරිශීලකයින් එය ක්‍රියා විරහිත නොකරනු ඇත.
Motti Shneor

5
OttMotti Shneor - කෙසේ වෙතත්, සමහර අවස්ථාවල සංවර්ධන අරමුණු සඳහා සමහර SDK ස්ථාපනය කිරීමට ලිඛිත ප්‍රවේශයක් ලබා ගැනීම සඳහා මෙය හැරවිය යුතුය. මෙය සේවාදායකයාට එසේ කිරීමට අවශ්‍ය නොවනු ඇත.
defaultNINJA

මා පැමිණියේ යුනික්ස් පසුබිමකිනි, මූල රහිත තර්කනය තේරුම් ගැනීමට උත්සාහ කරමි: පරිගණකය බොහෝ දුරට තනි පරිශීලක යන්ත්‍රයක් වීමට ඉඩ ඇති හෙයින්, සියල්ල පරිශීලක නිවාස නාමාවලියෙහි ස්ථාපනය වනු ඇත, එවිට පද්ධති නාමාවලිය අවුල් කිරීමට අවශ්‍ය නොවේ. / usr / share / vim / වැනි.
කෙමින් ෂෝ

Answers:


153

ඇපල් හි ප්‍රලේඛනය මඟින් SIP අක්‍රීය කිරීම, ඔබේ මැක් මත පද්ධති අඛණ්ඩතාව ආරක්ෂා කිරීම සහ පද්ධති අඛණ්ඩතාව ආරක්ෂාව වින්‍යාස කිරීම ආවරණය කරයි .

Lifehacker.com හි ලිපියක් මෙම පියවර ලැයිස්තුගත කරයි:

  1. ඔබේ පරිගණකය නැවත ආරම්භ කිරීමෙන් සහ ඔබේ තිරය මත ඇපල් ලාංඡනය දිස්වන තුරු Command+ රඳවා තබා ගැනීමෙන් ඔබේ මැක් ප්‍රතිසාධන ප්‍රකාරයට නැවත ආරම්භ කරන්න R.
  2. උපයෝගිතා> පර්යන්තය ක්ලික් කරන්න.
  3. ටර්මිනල් කවුළුව තුළ, ටයිප් කර csrutil disableඔබන්න Enter.
  4. ඔබේ මැක් නැවත ආරම්භ කරන්න.

lsදිගු ලැයිස්තුගත ධජය වෙනස් කිරීම සඳහා O (සහ ශුන්‍ය 0 නොවේ) ප්‍රාග්ධනය භාවිතා කරමින් මෙම විධානය නිකුත් කිරීමෙන් ගොනුවක් හෝ ෆෝල්ඩරයක් සීමා වී ඇත්දැයි ඔබට තහවුරු කළ හැකිය :

ls -lO /System /usr 

SIP බලාත්මක කරන්නේ කොතැනදැයි දැක්වීමට සීමිත පෙළ සොයන්න .

පෙරනිමියෙන් (= SIP සක්‍රීය කර ඇත), පහත දැක්වෙන ෆෝල්ඩර සීමා කර ඇත ( ඇපල් ආධාරක පිටුව බලන්න ):

/System
/usr
/bin
/sbin
Apps that are pre-installed with OS X

... සහ පහත දැක්වෙන ෆෝල්ඩර නොමිලේ:

/Applications
/Library
/usr/local

1
ධාවනයෙන් ls -lO /usr/localසීමා කර නොමැති බව මට පෙනේ. මමත් /usr/local/පුනරාවර්තනයෙන් චොන්ඩ් කරමි . නමුත් මම දිගටම මූලයන් හිමිකාරීත්වය දරන /usr/local/binඅතර /usr/local/shareඑය හෝම්බ rew ට බලපානවා. මෙය SIP හි කාර්යයක් ද?
සැක්ස් ඩැඩි

2
AxSaxDaddy /usr/localසීමා කර නොමැති තාක් කල් , ඔබට මෙම නාමාවලිය "පහළින්" ඇති ඕනෑම අවසරයක් පහසුවෙන් නිවැරදි කළ හැකිය. sudo chown -R $(whoami) /usr/localඅවසර ගැටළු විසඳීම සඳහා (පරිපාලක පරිශීලකයෙකු ලෙස ලොග් වී සිටියදී) ධාවනය කිරීමට හෝම්බ rew සැබවින්ම නිර්දේශ කරයි.
nohillside

4
Ax සැක්ස් ඩැඩි ඔබ අහම්බෙන් සොෆොස් ප්‍රති-වයිරස භාවිතා කරනවාද? සොෆොස් සමඟ දන්නා ගැටළුවක් ඇති අතර එම නාමාවලිවල අවසරයන් වෙනස් කරයි. ඔවුන්ගේ ප්‍රජා සංසදවල ඇති නූලකට අනුව , එය “ඉක්මනින්” යාවත්කාලීන කිරීමකින් විසඳිය යුතුය.
එන් ඩී ගීක්

1
@NDGeek: +1: දීප්තිමත්, ස්තූතියි! ඔබ එය නිවැරදිව ඇමතුවා. SAV 9.4.1 (18nov15 නිකුත් කරන ලදි) ගැටළුව විසඳූ බව මට පෙනේ. මම එම අනුවාදය ස්ථාපනය කර ඇති අතර /usr/localදැන් අවසර නිවැරදිව සකසා ඇති බව තහවුරු කර ඇත.
සැක්ස් ඩැඩි

1
මෙම -O ධජය @andro කරන්නේ තවමත් 10.11.6 වැඩ. එය ඔබට ප්‍රයෝජනවත් නොවන්නේ නම්, එය වෙනම ප්‍රශ්නයක් වන අතර ඔබ නව ප්‍රශ්නයක් ඇසිය යුතුය.
මයික් ස්කොට්

117

ප්‍රතිසාධන HD වෙත ආරම්භ කිරීමෙන් සහ පහත දැක්වෙන විධානය ක්‍රියාත්මක කිරීමෙන් SIP අක්‍රීය කළ හැකිය :

csrutil disable

රූප විස්තරය මෙහි ඇතුළත් කරන්න

csrutil enableවිධානයට කොඩි එකක් හෝ කිහිපයක් එකතු කිරීමෙන් SIP ආරක්ෂණ සක්‍රීය කිරීමට සහ එහි අංග තෝරා බේරා ගැනීමට ද හැකිය . ඒවා සැකසීම සඳහා සියල්ල ප්‍රතිසාධනයෙන් ආරම්භ කිරීම අවශ්‍ය වේ:

SIP සක්‍රිය කර අත්සන් නොකළ කර්නල් දිගු ස්ථාපනය කිරීමට ඉඩ දෙන්න

csrutil enable --without kext

රූප විස්තරය මෙහි ඇතුළත් කරන්න

SIP සක්‍රිය කර ගොනු පද්ධති ආරක්ෂණ අක්‍රීය කරන්න

csrutil enable --without fs

රූප විස්තරය මෙහි ඇතුළත් කරන්න

SIP සක්‍රිය කර නිදොස්කරණය සීමා කරන්න

csrutil enable --without debug

රූප විස්තරය මෙහි ඇතුළත් කරන්න

SIP සක්‍රිය කර DTrace සීමාවන් අක්‍රීය කරන්න

csrutil enable --without dtrace

රූප විස්තරය මෙහි ඇතුළත් කරන්න

SIP සක්‍රීය කර NVRAM වෙත ලිවීමේ සීමාවන් අක්‍රීය කරන්න

csrutil enable --without nvram

රූප විස්තරය මෙහි ඇතුළත් කරන්න

SIP පිළිබඳ වැඩි විස්තර සහිත ලිපියක් මා සතුව ඇත:

පද්ධති අඛණ්ඩතාව ආරක්ෂා කිරීම - ඇපල් හි ආරක්ෂක ආකෘතියට තවත් තට්ටුවක් එක් කිරීම


6
දැනුමේ පිළිගැනීමේ ධනය. මට මෙම
ත්‍යාගය දෙගුණ කිරීමට සිදුවේ

මට දෝෂයක් ඇතිවිය:csrutil: failed to modify system integrity configuration. This tool needs to be executed from the Recovery OS.
ඉගෝර්ගනාපොල්ස්කි

5
G ඉගෝර්ගනාපොල්ස්කි පිළිතුර කියවන්න. ' ප්‍රතිසාධන HD වෙත ආරම්භ කිරීමෙන් SIP අක්‍රීය කරන්න ' .
ගඩොල්

14

ඉලක්කය වන්නේ පද්ධති අඛණ්ඩතාව ආරක්‍ෂාව අක්‍රීය කිරීමයි නම්, අනෙක් පිළිතුරු වල කලින් නිර්දේශ කර ඇති පරිදි ප්‍රතිසාධන HD කොටසට ආරම්භ කිරීම Command+ rඇරඹුම් හරහා + හරහා ආරම්භ කිරීම මෙය කිරීමට වේගවත්ම ක්‍රමය නොවේ .

ලේඛනගත නොකළ ආරම්භක යතුරු සංයෝජනයකින් ඔබට ප්‍රතිසාධන HD ඇරඹුම සමඟ තනි පරිශීලක මාදිලියේ ඇරඹුම ඒකාබද්ධ කළ හැකිය:

  • https://support.apple.com/en-us/HT204904 සාමාන්‍ය ප්‍රකෘතිය ආවරණය කරයි
  • තනි පරිශීලක ප්‍රතිසාධන ප්‍රකාරයට ආරම්භ කිරීමට Command+ r+ රඳවා ගන්න s.

මෙය සෘජුවම අවශ්‍ය අවම පරිසරයට ඔබව යොමු කරයි .


7

එය වෙනස් කිරීමට ආරක්ෂිත වනු /etc/pathsපිණිස /usr/local/binහුදෙක් පෙර ය usr/bin. එමඟින් ඔබට /usr/local/binSIP අක්‍රීය නොකර ඔබේ සංවර්ධන කටයුතු කළ හැකිය .

මෙහෙයුම් පද්ධතියේ පිරිසිදු ස්ථාපනයන් /etc/pathsඑල් කැපිටන් සිට මේ ආකාරයෙන් ඇණවුම් කර ඇත , නමුත් ඔබ යෝසෙමයිට් වෙතින් හෝ ඊට පෙර මෙහෙයුම් පද්ධතිය යාවත්කාලීන කරන්නේ නම්, ඔබට මාර්ග අනුපිළිවෙල අතින් වෙනස් කළ යුතුය.


oniconoclast එල් කැපිටන් වලට පෙර, පොදු සම්මුතියක් වූයේ වැඩසටහන් ස්ථාපනය කිරීමයි usr/bin. SIP දැන් මෙය වලක්වන බැවින්, වැඩසටහන් ස්ථාපනය කළ යුතු usr/local/binඅතර එය SIP විසින් සීමා නොකෙරේ. usr/local/binමුල් තැන දීමෙන් පරිශීලකයින්ට වැඩසටහනට නිරපේක්ෂ මාර්ගය ටයිප් නොකර වැඩසටහන් ක්‍රියාත්මක කළ හැකිය. මෙය අර්ථවත්ද? ඔබ වෙනත් දෙයක් ගැන ව්‍යාකූලද?
user260467

ඕනෑම දෙයක් දැමීම ඉතා නරක පුරුද්දක් බව මම නිතරම තේරුම් ගෙන ඇත්තෙමි /usr/bin... නමුත් මම අනුමාන කළ යුතුව තිබුණේ "මෙය OP ගේ ප්‍රශ්නයට පිළිතුරු දෙන්නේ කෙසේද?" මම මුලින් එය යැයි උපකල්පනය කරන ලදී කළේ යම් ආකාරයකින්, සහ මම ඇති සම්බන්ධය සිදු නොකරන බව. නමුත් දැන් මට කිසිම සැකයක් නැහැ.
iconoclast

oniconoclast යෙදුමක් සංවර්ධනය කිරීම සඳහා ඔවුන් සැබවින්ම SIP අක්‍රීය නොකළ යුතු බව සංවර්ධකයෙකුට සඳහන් නොකිරීම වගකීම් විරහිත යැයි මම සිතමි.
user260467

6

ඔබට අවශ්‍ය වන්නේ / usr / local වෙත පිවිසීමට නම්, මෙම පිටුව බලන්න: http://web.archive.org/web/20160117204214/https://github.com/Homebrew/homebrew/blob/master/share /doc/homebrew/El_Capitan_and_Homebrew.md

අදහස නම් , එම නාමාවලිය සීමා රහිත ලෙස සැකසීමට SIP භාවිතා කිරීම , එකතු කිරීම , chflags භාවිතා කිරීම තාවකාලිකව අක්‍රීය කිරීමයිcsrutil disable/usr/local

 sudo mkdir /usr/local && sudo chflags norestricted /usr/local && sudo chown -R $(whoami):admin /usr/local

SIP භාවිතයෙන් නැවත සක්‍රිය කරන්න csrutil enable.

/usr/localඔබගේ උත්ශ්‍රේණිගත කිරීමේ අවස්ථාවේදී දැනටමත් පවතී නම් , ඉහත සඳහන් දෑ පවා අවශ්‍ය නොවේ. ඔබට සරලව ධාවනය කළ හැකිය

sudo chown -R $(whoami):admin /usr/local

මට දිගින් දිගටම දෝෂයක් ඇති වේ:Read-only file system
ඉගෝර්ගනාපොල්ස්කි

මෙම සබැඳිය මිය ගොස් ඇත: 404 දෝෂයකි.
iconoclast

ස්ථාවර මළ සබැඳිය.
මැතිව් එල්වි

2

ඔබ වෙත ලබා ගැනීමට නොහැකි නම් මුදාගැනීම කොටස ක්රියාත්මක කිරීමට csrutil disable(අක්රිය කිරීමට SIP ), සමඟ ඇරඹුම් args සකසා උත්සාහ කරන්න nvram, විධාන උදා:

sudo nvram boot-args="rootless=0"

කෙසේ වෙතත්, ඔබට පහත දෝෂය තිබේ නම්:

nvram: දෝෂ සැකසීමේ විචල්‍යය - 'boot-args': (iokit / common) අවසර නැත

එවිට එය ක්‍රියා නොකරනු ඇත. ඔබ තවමත් එය ප්‍රතිසාධන / ආරක්‍ෂිත ප්‍රකාරය ආරම්භ කළ යුතුය.

බලන්න:


nvram: Error setting variable - 'boot-args': (iokit/common) not permitted
mghicks

1
gmghicks එවැනි අවස්ථාවක, එය ක්‍රියා නොකරනු ඇත. මම පිළිතුර යාවත්කාලීන කර ඇත.
kenorb
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.