Computer >> 컴퓨터 >  >> 문제 해결 >> Mac

Mac 터미널 'zsh: permission denied' 오류 해결 방법 총정리

macOS 터미널에서 파일이나 폴더를 열고 수정 명령어를 입력했을 때 "zsh: permission denied"(권한이 거부되었습니다) 또는 "zsh: command not found"라는 오류 메시지가 나타난 적이 있으신가요? 이 글에서는 Mac에서 발생하는 Zsh 권한 거부 오류를 해결하는 방법을 단계별로 자세히 안내해 드립니다.

목차:

  • 1. Zsh란 무엇인가?
  • 2. macOS 터미널의 'zsh: permission denied'란?
  • 3. 터미널에서 권한 거부 오류가 발생하는 이유
  • 4. Mac에서 Zsh 권한 거부 오류 해결하기
  • 5. 권한 거부 오류를 예방하는 방법
  • 6. Mac의 Zsh 권한 거부 관련 FAQ

Zsh란 무엇인가?

Zsh(Z shell)는 대화형 로그인 셸로도, 셸 스크립팅용 명령 인터프리터로도 사용할 수 있는 Unix 셸입니다. macOS의 기본 셸인 bash를 기반으로 설계되었으며, ksh와 tcsh의 일부 기능까지 포함하고 있습니다.

Zsh는 플러그인과 테마 설정이 훨씬 간편하고, 테마 디자인도 더 깔끔하고 아름답습니다. 무엇보다 엄격한 사용자 권한 요구 없이 편리하게 사용할 수 있다는 점이 큰 장점입니다.

macOS 터미널의 'zsh: permission denied'란?

오류 이름 그대로, 이는 명령어를 통해 파일을 열거나 수정하지 못하도록 막는 권한 오류입니다. sudo 명령어나 bash 명령어 실행 시에도 발생할 수 있으며, 여러 사용자 보고에 따르면 루트(root) 권한으로 파일을 열 때조차 이 오류가 나타나는 경우가 있습니다.

대부분의 사례에서는 터미널을 통해 설치 파일(installer)을 열려고 하거나, 파일을 터미널 창으로 드래그 앤 드롭했을 때 "permission denied" 오류가 발생합니다. 물론 다른 종류의 파일에서도 동일한 문제가 일어날 수 있습니다.

Mac 터미널  zsh: permission denied  오류 해결 방법 총정리

터미널에서 권한 거부 오류가 발생하는 이유

Mac에서 Zsh 권한 거부 오류가 발생하는 원인은 다양하지만, 가장 흔한 원인은 다음과 같습니다.

파일이 잠겨 있는 경우

잠긴 파일이나 프로그램을 설치·수정하려고 하면 권한 거부 오류가 발생할 가능성이 높습니다. 관리자 권한이 없거나, 파일 제작자가 chmod 명령어로 파일을 잠갔기 때문일 수 있습니다. 이 오류는 현재 사용자 계정이 소유하지 않은 디렉터리에 명령어가 쓰기를 시도하고 있다는 신호이기도 합니다.

잘못된 chmod x 또는 시스템 명령어 입력

chmod x 명령어나 기타 시스템 명령어를 잘못 입력했을 때도 이 오류가 발생할 수 있습니다. 올바른 명령어를 사용하고 있는지 확인하세요. 애플리케이션을 실행하려는 경우라면 해당 프로그램 명령어가 유효하고 컴퓨터에 실제로 설치되어 있는지도 점검이 필요합니다.

Mac에서 Zsh 권한 거부 오류 해결하기

본격적인 문제 해결에 앞서 관련 파일의 복사본을 미리 만들어 두세요. 강제로 명령어를 실행하는 과정에서 시스템에 문제가 생기거나 예상치 못한 오류가 추가될 수 있으므로, 백업 파일이 있다면 언제든 복구할 수 있습니다.

또한 Mac을 최적화하여 다른 문제가 발생하지 않도록 정리하고, 작업이 끝나면 Mac을 재시동한 뒤 아래 가이드를 따라 진행하세요.

1단계: 현재 권한 상태 확인

  1. Mac Dock 또는 유틸리티 폴더에서 터미널을 실행합니다.
  2. 다음 명령어를 입력하고 마지막 문자 뒤에 공백 한 칸을 추가합니다. 아직 Enter는 누르지 마세요.
    ls -l
  3. 열고 싶은 파일을 드래그하여 터미널 창에 놓습니다. 파일 경로가 자동으로 명령어 뒤에 추가되지만, 실제로 파일이 옮겨지는 것은 아닙니다.
  4. 터미널 창을 클릭한 후 Enter 키를 누릅니다.

이렇게 하면 해당 파일에 대한 쓰기 및 수정 권한이 있는지 확인할 수 있습니다.

2단계: 디렉터리 소유권 변경

디렉터리의 소유권을 변경하려면 chown 명령어를 사용합니다. 터미널에 다음 명령어를 입력한 후 Enter 키를 누르세요.

chown -R $USER:$USER /path/to/directory

$USER 부분에는 현재 로그인한 사용자 이름을, /path/to/directory에는 쓰기를 원하는 경로를 입력합니다.

3단계: 터미널에 전체 디스크 접근 권한 부여

터미널이 디스크에 대한 전체 접근 권한(full disk access)을 갖고 있지 않아서 macOS 터미널 권한이 거부될 수도 있습니다. 전체 디스크 접근이 허용되지 않으면 "Operation not permitted" 오류가 발생하기도 합니다. 이를 해결하려면 시스템 환경설정 > 보안 및 개인 정보 보호 > 개인 정보 보호 탭으로 이동한 뒤, 전체 디스크 접근 권한 목록에 터미널을 추가하세요.

Mac 터미널  zsh: permission denied  오류 해결 방법 총정리

4단계: sudo 명령어 활용

sudo 명령어는 간단하지만 강력해서, 터미널에서 거의 모든 명령어를 실행할 수 있게 해 줍니다. 따라서 Mac에서 권한 거부 문제가 발생했다면 원래 명령어 앞에 sudo를 붙여 실행해 보세요. 예시는 다음과 같습니다.

sudo chmod 755 /dvtcolorconvert.rb

sudo chmod 755 ~/Themes/ObsidianCode.xccolortheme

sudo 명령어를 처음 사용하는 경우 비밀번호 입력을 요구받지만, 한 번 입력한 후에는 매번 입력할 필요가 없습니다.

위 방법을 모두 시도한 후에도 문제가 해결되지 않았다면 Oh My Zsh 앱을 설치해 보세요. Oh My Zsh는 macOS와 Linux에서 Zsh 설정을 손쉽게 관리할 수 있도록 도와주는 오픈소스 프레임워크입니다.

Mac에서 권한 거부 오류를 예방하는 방법

앞으로 macOS 터미널에서 권한 거부 오류가 반복되지 않도록 하려면, Mac의 권한 설정을 변경하여 누가 파일을 열고 수정할 수 있는지 미리 지정해 두는 것이 좋습니다. 아래 방법들을 참고하세요.

방법 1: 사용자 및 그룹에 권한 할당하기

  1. Mac에서 디스크, 폴더 또는 파일을 선택한 후 파일 > 정보 가져오기를 클릭합니다.
  2. 잠금 아이콘을 클릭하여 잠금을 해제합니다.
  3. 관리자 이름과 비밀번호를 입력합니다.
  4. 이름 열에서 사용자나 그룹을 클릭한 뒤, 팝업 메뉴에서 권한 설정을 선택합니다.
    읽기 & 쓰기: 항목을 열고 내용을 변경할 수 있습니다.
    읽기 전용: 항목을 열 수는 있지만 내용을 변경할 수 없습니다.
    쓰기 전용: 폴더가 Drop Box(드롭 박스)로 변환됩니다. 사용자는 항목을 복사해 넣을 수만 있고 열람은 소유자만 가능합니다.

Mac 터미널  zsh: permission denied  오류 해결 방법 총정리

방법 2: 폴더 또는 디스크 내 모든 항목에 권한 적용하기

  1. Mac에서 폴더나 디스크를 선택한 후 파일 > 정보 가져오기를 클릭합니다.
  2. 잠금 아이콘을 클릭하여 잠금을 해제합니다.
  3. 관리자 이름과 비밀번호를 입력합니다.
  4. 작업(⋯) 팝업 메뉴를 클릭한 후 "내부 항목에 적용"을 선택합니다.

Mac 터미널  zsh: permission denied  오류 해결 방법 총정리

방법 3: 이름 열에서 사용자 또는 그룹 추가·삭제하기

  1. Mac에서 항목을 선택한 후 파일 > 정보 가져오기를 클릭합니다.
  2. 자물쇠 아이콘을 클릭하여 잠금을 해제합니다.
  3. 관리자 이름과 비밀번호를 입력합니다.
  4. 공유 및 권한 섹션에서 다음 중 원하는 작업을 수행합니다.
    사용자/그룹 추가: 목록 아래의 추가(+) 버튼을 클릭하고 사용자 또는 그룹을 선택한 후 '선택'을 누릅니다.
    사용자/그룹 삭제: 삭제할 사용자나 그룹을 선택한 후 목록 아래의 삭제(-) 버튼을 클릭합니다.

Mac의 Zsh 권한 거부 관련 FAQ

Q. Mac의 기본 셸이 Zsh인가요?

A. 네, macOS Catalina부터 Mac은 운영체제 전반에서 Zsh를 기본 로그인 셸이자 대화형 셸로 사용하기 시작했습니다.

Q. Mac 터미널에서 "permission denied"라고 표시되는 이유는 무엇인가요?

A. 관리자 권한이 없거나, 파일 소유자가 chmod 명령어로 파일을 잠갔기 때문에 권한 거부 오류가 발생합니다.