developer tip

OS X El Capitan의 "제한된"폴더 / 파일

optionbox 2020. 11. 5. 07:56
반응형

OS X El Capitan의 "제한된"폴더 / 파일


OS X Yosemite에서 OS X El Capitan Developer Preview로 업그레이드 한 후 /System/Library/LaunchDaemons/ssh.plist편집 하여 기본 SSH 포트를 사용자 지정 포트로 변경 하려고했습니다 . 이것이 제가 몇 년 동안 사용해온 프로세스입니다.

문제는 El Capitan이이 폴더의 어떤 것도 변경할 수 없다는 것입니다 ( "sudo"를 사용하더라도). "ls -lO"로 내용을 나열하면 폴더와 해당 파일이 "제한됨" 으로 표시됩니다 . 이전 버전의 OS X에서 동일한 폴더 목록이 "제한됨"으로 표시되지 않습니다.

OS X El Capitan의 새로운 기능입니까? "제한된" 파일 / 폴더를 편집하려면 어떻게 해야합니까?


이것이 El Capitan에 도입 된 "SIP"(System Intregrity Protection) 라는 새로운 기능 때문 이라는 것을 알았습니다 .

자세한 내용은 https://forums.developer.apple.com/thread/4731?q=SIP에서 확인하세요.

안타깝게도 실제로 SIP를 비활성화하지 않고 "제한된"파일 / 폴더를 편집하는 방법을 제안한 사람은 없습니다.


다음과 같은 방법으로 SIP를 일시적으로 비활성화 할 수도 있습니다.

  1. 재부팅
  2. 회색 화면에서 "Mac 사운드"가 들리면 Cmd + R을 눌러 복구 모드로 들어갑니다.
  3. 유틸리티-> 터미널 열기
  4. 명령 실행 csrutil disable
  5. 재부팅하면 SIP가 비활성화 된 일반 OS가됩니다.
  6. 원하는 모든 변경을 수행하십시오.
  7. 다시 재부팅
  8. 회색 화면에서 "Mac 사운드"가 들리면 Cmd + R을 눌러 복구 모드로 들어갑니다.
  9. SIP 활성화 csrutil enable
  10. 다시 재부팅
  11. 끝난

10.11이 / System / Library의 특정 파일을 보호 해제하거나 사용자가 직접 수행하도록 허용 할 때까지 SIP를 비활성화하지 않는 유일한 방법은 다음과 같이 파일을 다른 곳에 복사하여 다른 서비스를 만드는 것입니다.

sudo cp /System/Library/LaunchDaemons/ssh.plist /Library/LaunchDaemons/ssh.plist

그런 다음 시스템 환경 설정의 공유 패널을 사용하는 대신 서비스를 직접 관리 할 수 ​​있습니다.

sudo launchctl unload /Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /Library/LaunchDaemons/ssh.plist

/ Library / Preferences /의 plist에 필요한 인수를 추가하는 것이 좋습니다. 예를 들어, 제 경우에는 AlwaysAppendSearchDomains 플래그를 추가하기 위해 mDNSResponder를 약간 변경해야했습니다. Apple 개발자 포럼의 "bwells"가 제안한대로

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sudo defaults write /Library/Preferences/com.apple.mDNSResponder.plist AlwaysAppendSearchDomains -bool YES
sudo launchctl load /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

이것은 훨씬 더 깔끔한 접근 방식이며 재부팅 후에도 지속되며 업그레이드 후에도 유지되어야합니다 (적어도 베타 동안 SIP를 비활성화 한 후 수동 변경 사항을 덮어 썼습니다). 내가 아는 한 이것은 El Capitan에 새로운 것입니다.


파일 시스템 관리를 비활성화하는 동안 SIP를 활성화 된 상태로 둘 수도 있습니다. 복구 모드로 재부팅하고 다음을 실행합니다.

csrutil enable --without fs

이렇게하면 필요에 따라 권한을 변경할 수 있습니다.


  1. 재부팅하는 동안 "CMD + R"을 눌러 "복구"모드로 부팅하십시오.
  2. 터미널 열기
  3. 디스크는 / Volumes / Macintosh HD에 마운트됩니다.
  4. "rm"을 통해 파일 삭제 : 해당 터미널에서 절대적으로 제어 할 수 있습니다.

복제 가능한 백업을 만들기 위해 카본 카피 클론을 사용합니다.

Bombich의 마이크에 따르면 "SIP는 현재 부팅 된 볼륨에만 적용되므로 백업 볼륨에서 부팅하여 [파일]을 삭제할 수 있습니다."라고 말합니다.

johannes의 답변 (복구 드라이브, csrutil 활성화 / 비활성화)을 사용했지만 재부팅 —> 복구 드라이브 —> sip 끄기 —> 재부팅 —> 쓰레기 삭제 —> 재부팅 —> 복구 드라이브 —> sip 다시 켜기 — > reboot ... 4 번의 재부팅.

하지만 클론에서 부팅하고 원본 드라이브를 보조 드라이브로 보는 것은 두 번의 재부팅으로 문제가있는 파일을 삭제할 수 있습니다 ... 예?


시스템 그룹의 Finder 앱을 통해 파일에 대한 권한을 수정하여 SIP 보호를 "통과"할 수 있습니다.

권한 수정

재부팅 후에도 잘 작동했습니다.

ProductName: Mac OS X ProductVersion: 10.11 BuildVersion: 15A284

참고 URL : https://stackoverflow.com/questions/30768087/restricted-folder-files-in-os-x-el-capitan

반응형