리눅스를 처음 사용하는 사람이라면 누구나 한 번쯤 만나는 에러가 있습니다. 바로 이 문장:
Permission denied
처음엔 ‘뭐가 문제지?’ 싶다가, 나중엔 ‘아 또야?’ 싶은, 리눅스의 단골 손님이죠.
이번 글에서는 이 에러가 발생하는 이유와 해결 방법을 가장 현실적인 예제 중심으로 쉽게 풀어보겠습니다.
🔍 왜 ‘Permission denied’ 에러가 뜨는 걸까?
리눅스는 보안이 철저한 시스템입니다. 파일 하나를 열거나, 디렉토리를 수정하거나, 프로그램을 실행할 때에도 권한(Permission)을 확인하죠.
이 때, 당신에게 해당 작업을 수행할 권한이 없다면 리눅스는 정중하지만 단호하게 말합니다.
“Permission denied. (접근 권한 없음)”
그럼 언제 이런 일이 생길까요?

💥 에러가 자주 뜨는 상황 3가지
- 실행 권한이 없는 스크립트를 실행하려 할 때
./myscript.sh
bash: ./myscript.sh: Permission denied
- 시스템 디렉토리에 파일을 복사할 때
cp myfile.txt /usr/bin/
cp: cannot create regular file '/usr/bin/myfile.txt': Permission denied
- 시스템 설정 파일을 수정할 때
vi /etc/hosts
"hosts" E212: Can't open file for writing
🔍 권한 확인부터 시작하자 – ls -l
가장 먼저 할 일은 권한을 확인하는 것!
파일이나 디렉토리에 어떤 권한이 있는지 보려면 이렇게 입력해 보세요:
ls -l myscript.sh
결과:
-rw-r--r-- 1 yunha yunha 1234 May 28 12:00 myscript.sh
해석:
r
: 읽기(Read), w
: 쓰기(Write), x
: 실행(Execute)
실행 권한(x
)이 없으니 실행하려고 하면 Permission denied
가 뜨는 거죠.
🛠️ 해결 방법: 상황별로 정리해 드릴게요
1️⃣ 실행 권한을 주자 – chmod +x
chmod +x myscript.sh
이제 다시 실행해보면:
./myscript.sh
2️⃣ 사용자/그룹 변경 – chown
sudo chown yunha:yunha myscript.sh
파일의 소유권을 현재 사용자에게 넘기는 명령입니다.
3️⃣ 루트 권한이 필요한 작업이라면 – sudo
sudo cp myfile.txt /usr/bin/
sudo
는 Super User Do의 약자. 관리자 권한으로 명령을 실행합니다.
⚠️ 자주 하는 실수 – chmod 777
무조건 사용?
chmod 777 myfile.txt
이건 정말 위험합니다!
모든 사용자에게 모든 권한을 부여하겠다는 뜻이기 때문이죠. 가능하면 피하세요.
+x
, u+x
, g-w
등 필요한 권한만 부여하는 습관을 들이는 게 중요합니다.
✅ 정리
상황 | 원인 | 해결책 |
---|---|---|
스크립트 실행 오류 | 실행 권한 없음 | chmod +x |
시스템 파일 수정 | 루트 권한 필요 | sudo 사용 |
파일 복사 불가 | 소유자 아님 | sudo chown , sudo cp |
🧭 마무리하며
리눅스에서 Permission denied
는 ‘당신이 뭘 하려고 했고, 왜 안 됐는가’를 알려주는 좋은 신호입니다.
한 번의 에러가 곧 학습의 기회가 되기도 하니까요.
📚 다음 글 예고
다음 편에서는 리눅스에서 심볼릭 링크(ln -s)를 어떻게 만들고, 언제 쓰는 게 유용한지 알려드릴게요.