Mac에서 / usr / bin에 심볼릭 링크를 만드는 방법은 무엇입니까?


11

환경 : OSX Sierra, Darwin Kernel 버전 16.3.0

근본 문제 : #! / usr / bin / zsh가있는 중앙 저장소에 많은 셸 스크립트를 사용하고 싶습니다. 내 Mac에서 zsh는 / bin / zsh에 있습니다.

시도한 해결책 : 심볼릭 링크를 만들고 싶습니다.

ln -s /bin/zsh /usr/bin/zsh

내 사용자 계정에는 관리자 권한이 있지만 루트가 아니며이 Mac에서 루트 사용자를 활성화하지 않는 것이 좋습니다. 따라서 나는 먼저

sudo su

루트 권한을 가진 쉘을 얻은 다음 ln 명령 을 실행합니다 . 그러나 여전히 ln : / usr / bin / zsh : Operation not allowed 오류 메시지가 나타납니다 .

질문 :

  • 이 오류 메시지가 나타나는 이유는 무엇입니까?

  • 링크를 만들려면 어떻게해야합니까?

  • 원래 목표를 달성하는 더 좋은 방법이 있습니까? #을 고정하면주의하십시오! 라인은 옵션이 아닙니다.


당신은 왜 복사하지 마십시오 /usr/bin/zsh합니다 /bin/zsh?
Lenniey

1
@Lenniey 이렇게하면 원본과 함께 업데이트되지 않는 느슨한 사본을 만들 수 있습니다.
Mario

@Mario whelp ... 물론 맞습니다. OP : 절대 그렇게하지 마십시오! ;)
Lenniey

1
@ Lenniey-다른 방법으로 복사해야합니다! 복사 할 수 있으면 링크 할 수 있습니다.
AFH

@AFH 그래 내 의견은 완전한 혼란입니다 ...
Lenniey

답변:


15

Apple의 시스템 무결성 보호로 인해이 메시지가 나타납니다 . 시스템 무결성 보호에는 시스템의 다음 부분에 대한 보호가 포함됩니다.

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

타사 앱 및 설치 관리자가 계속 쓸 수있는 경로 및 앱은 다음과 같습니다.

/Applications
/Library
/usr/local

이것은 단순히 심볼릭 링크를 만들 수 있음을 의미합니다 /usr/local/bin(여전히 $ PATH에 있습니다).

그러나에서 특별히 심볼릭 링크를 만들어야 할 것 같습니다 /usr/bin. 시스템 무결성 보호를 비활성화하여 달성 할 수 있습니다 (스크립트를 편집하지 마십시오.). 당신은 (나는 그것을 직접 테스트하지 않았습니다 !!!)에 의해 그것을 비활성화 할 수 있습니다 :

Click the  menu.
Select Restart...
Hold down command-R to boot into the Recovery System.
Click the Utilities menu and select Terminal.
Type csrutil disable and press return.
Close the Terminal app.
Click the  menu and select Restart....

2
요점을 놓쳤다. 질문자는 #!/usr/bin/zh쉘로 지정하는 스크립트를 가지고 있으므로 그가 찾는 해결책은이 위치를 쉘이 실제로있는 위치에 연결하는 것이지만, 그렇게하면 그가 할 수없는 것으로 보호됩니다. 보호를 우회하지 않는 한 유일한 해결책은 스크립트를 일괄 편집하는 것 같습니다.
AFH

글쎄, 당신은 맞습니다, 그는 스크립트를 편집해야합니다 (단일 명령으로 발생할 수 있음).
13dimitar

@Dimitar 질문을 살펴보십시오. 원래 목표를 달성하는 더 좋은 방법이 있습니까? #을 고정하면주의하십시오! 라인은 옵션이 아닙니다.
Lenniey

1
참고 사항, 나는 내 대답을 수정했습니다
13dimitar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.