macOS에서 / tmp 디렉토리에 쓸 수없고 권한을 수정할 수 없습니다 :“작업이 허용되지 않습니다”


13

macOS El Capitan (10.11)은 /tmp/private/tmp폴더를 쓸 수 없어서 소프트웨어 업데이트를 설치하거나 소프트웨어를 설치할 수 없습니다 .

이것을 실행 :

sudo /usr/libexec/repair_packages --repair --standard-pkgs --volume /

이 오류가 발생합니다 :

unable to set owner and group on "tmp" Error 1 Operation not permitted
unable to set permissions on "tmp" Error 1 Operation not permitted

tmp 폴더를 수동으로 삭제하고 다시 만드는 방법이 있습니까? 내가 이름을 바꾸거나 삭제했을 때 /tmp또는 /private/tmp내가 작업을 얻고 유지되지 허용. 폴더 와 폴더 sudo chmod 1777모두에서 동일한 방식으로 실패했습니다./tmp/private/tmp

디스크 유틸리티는 응급 처치를 실행할 때 아무런 문제도 발견되지 않고 디스크가 정상이라고 말합니다.

tmp위치를 다른 쓰기 가능한 폴더 로 리디렉션 할 수있는 방법이 있습니까?


1
SIP를 먼저 비활성화 했습니까? 복구에서; 터미널csrutil disable
Tetsujin

2
나도 같은 문제가있어. Tetsujin의 조언을 따르고 복구 모드에서 다시 시작한 다음 실행했습니다 csrutil disable. 그 후, 나는 repair_packages성공적 으로 실행할 수 있었고 평소와 같이 / tmp에 액세스 할 수있었습니다. 그러나 복구 모드로 돌아가서를 실행 한 후 csrutil enable시스템에 동일한 문제가 있습니다. / tmp에 액세스 할 수있는 유일한 방법은 시스템 무결성 보호를 비활성화하는 것입니다.
Andrew Ferk

4
결국 복구 모드로 돌아가서 실행했습니다 csrutil disable. : 다시 시작 후, 나는 TMP 폴더를 삭제 sudo rm /tmp; sudo rm /private/tmp, 생성 TMP 폴더를 sudo mkdir /private/tmp; sudo chown root:wheel /private/tmp; sudo chmod 1777 /private/tmp, 심볼릭 링크를 생성 : sudo ln -s /private/tmp /tmp및 실행 repair_pacakges다시. 복구 모드로 돌아가서 실행 한 후 csrutil enable모두 다시 작동합니다! 그러나 / private / tmp의 권한은 예전 drwxrwxrwt@과 같았습니다 drwxrwxrwt. 나는 그것이 무엇인지 확신하지 못하며 이것이 @문제가 될지 모르겠습니다 .
Andrew Ferk

1
@AndrewFerk : 확장 권한 마커에 대한 설명은 apple.stackexchange.com/questions/42177/… unix.stackexchange.com/questions/10/what-does-the-mean-in-ls-l 게시물을 참조하십시오@
Adam Michalik

또, 간단 솔루션 : 분명히, sudo mkdir /private/tmp다음에 sudo chmod +t /private/tmp충분하다.
Clément

답변:


22
  1. Mac을 복구 모드 로 재부팅
  2. 상단 바에서 유틸리티 메뉴 열기> 터미널 열기

    csrutil disable
    
  3. 재부팅

  4. tmp 폴더를 제거하십시오

    sudo rm -i /tmp
    sudo rm -i /private/tmp
    
  5. tmp 폴더 생성

    sudo mkdir /private/tmp
    sudo chown root:wheel /private/tmp
    sudo chmod 1777 /private/tmp
    
  6. 심볼릭 링크 만들기

    sudo ln -s /private/tmp /tmp
    
  7. 실행 repair_packages(이 작업을 수행하지 않아도 됨)

    sudo /usr/libexec/repair_packages --repair --standard-pkgs --volume /
    
  8. 복구 모드로 다시 부팅하고 실행

    csrutil enable
    
  9. 재부팅


수정을 알아 내기 위해 Andrew Ferk에게 제안합니다. 커뮤니티 위키 답변으로 댓글을 작성하면 더 읽기 쉽습니다.


2
감사합니다!!! 나는 이것을 통해 머리를 뽑는 데 3 일을 보냈다. 권한이 처음부터 어떻게 고정되었는지는 알지 못했지만 언젠가는 Mac에서 경고, 프로그램이 작동하지 않고 아무것도 설치할 수 없음을 선택했습니다. 이 문제를 해결했습니다.
johngeorgewright

왜이 CW를 만들었습니까?
Revetahw는 Reinstate Monica가

1
내가 다른 사람의 의견을 변환 한 답변에 대한 크레딧을 받고 싶지 않기 때문에
ento

좋아, 멋지다. BTW, @Fiksdal이 없기 때문에 지금까지 귀하의 의견을 보지 못했습니다.
Revetahw는 Reinstate Monica가

10.13 : sudo : / usr / libexec / repair_packages : 명령을 찾을 수 없음
Даниил Пронин


0

Time Machine 백업에서 시스템을 복원하여이 문제를 해결했습니다. 그러나 의견의 다른 제안도 시도해 볼 가치가 있습니다.


0

maxOS Mojave를 사용하여 터미널 (또는 iTerm)에이 메시지가 표시되는 경우

작동이 허용되지 않습니다

그것은> "전체 디스크 액세스가"나는 Settings.app "보안 및 개인 정보 보호 정책"을 내 터미널 응용 프로그램을 추가하는 데 필요한 밝혀졌다
(I 모두 추가 terminal.appiTerm.app)


-1

/private/tmp실행하지 않고 폴더 에 대한 권한을 작성하고 수정하십시오 csrutil disable. 이것은 삭제에 실패하고 부팅시 오류 메시지가 사라진 후에 저에게 효과적이었습니다.


슈퍼 유저에 오신 것을 환영합니다. 다른 답변이 효과가 있는지 확인하기 위해 답변을 게시하지 마십시오. 사이트의 Q & A 형식은 질문에 대한 솔루션에 대한 답변을 예약하며 각 답변은 다른 솔루션에 기여해야합니다. 답변이 유용했음을 나타내는 방법은 사이트에 약간의 시간을 투자하는 것이며 원하는 답변을 공언 할 수있는 충분한 권한 을 얻게됩니다 .
fixer1234
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.