JSCODE Logo
JSCODE 박재성JSCODE 제이온JSCODE 시니
온라인 강의프로그래밍 과외책/전자책무료 강의
유튜브블로그
후기
완강 후기 이벤트블로그 리뷰 이벤트AWS SAA 합격 후기 이벤트
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2026 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침

비전공자도 이해할 수 있는 리눅스 입문/실전

리눅스 기본 개념 / 리눅스 실습 환경 구축

리눅스(Linux)란?
다양한 리눅스의 종류 / 리눅스 배포판
리눅스 환경 구축하는 방법 (feat. AWS EC2)
[실습] AWS로 리눅스(Ubuntu) 환경 구축하기
터미널(Terminal)이란 ?
리눅스를 실행시키자마자 뜨는 첫 화면 해석하기 / 기본 조작법 익히기

필수로 꼭 알아야 하는 기본 명령어

리눅스에서의 파일(file), 디렉터리(directory)의 의미
폴더 이동하면서 파일 둘러보기 / 리눅스의 기본 폴더 구조 (pwd, cd, ls)
파일 종류 확인 / 숨김 파일 조회 (ls -l, ls -a)
리눅스 명령어들의 공통적인 패턴 - 옵션(Option)
상대 경로, 절대 경로란? / 구분 방법
경로에 물결 표시(~)는 무슨 의미일까?
파일 및 디렉터리 생성 / 삭제 (touch, mkdir, rm)
파일 및 디렉터리 복사 / 이동 / 이름 변경 (cp, mv)
명령어를 일일이 다 칠 필요 없는 자동완성 기능 / 이전에 썼던 명령어 불러오기
[연습문제] 지금까지 배운 명령어 실전처럼 써먹어보기

파일을 작성/조회할 때 자주 사용하는 명령어

리눅스에서 가장 많이 사용하는 텍스트 에디터 (vim) (
vim 에디터 기본 사용법 - 1
vim 에디터 기본 사용법 - 2
파일에 작성된 내용 보기 (vim, cat)
[연습문제] 지금까지 배운 명령어 실전처럼 써먹어보기

리눅스에서 빈번하게 마주치는 권한 문제(Permission Denied)

Permission Denied 에러 마주치는 경우
사용자(user), 슈퍼 사용자(super user)란?
그룹(group)이란?
권한(Permission)이란?
[실습] 왜 Permission Denied 에러가 발생하는 지 원인 분석해보기
권한 변경하는 방법 (chmod)
[실습] 보안을 위해 파일 접근 권한 제한하기
어떠한 제약도 없이 모든 기능을 사용할 수 있는 관리자 권한 (sudo)

외부 프로그램을 설치할 때 사용하는 패키지 매니저 (apt)

패키지 매니저(Package Manager)란?
자주 사용하는 apt 명령어 4가지
[실습] apt를 활용해 Nginx 설치해보기
[보충 자료] apt 명령어를 쓸 때 sudo를 써야 하는 이유

로그 남길 때 많이 사용하는 표준 출력(stdout), 표준 에러 출력(stderr)

표준 출력(stdout)이란?
[실습] 표준 출력(stdout) 활용해보기
표준 에러 출력(stderr)이란?
표준 출력(stdout)과 표준 에러 출력(stderr)의 추가 기능
[실습] Spring Boot 서버가 출력하는 로그를 파일로 남기기

실무에서 백엔드 서버를 운영할 때 자주 사용하는 명령어

특정 키워드가 들어간 문장만 찾고 싶을 때 (grep)
리눅스에서 실행 중인 프로세스 조회하기 / 종료하기 (ps, kill)
[실습] 실행시킨 Spring Boot 프로세스를 조회하고 종료해보기
터미널 창을 끄더라도 프로그램이 계속 실행되도록 만들기 (nohup, &)
백그라운드에서 실행되고 있는 프로세스의 로그 확인하는 법 (nohup)
특정 포트 번호에 실행되고 있는 프로세스 조회하기 / 포트 충돌 해결하기 (lsof) (
서버가 잘 작동하는 지 API 요청 보내보기 (curl)
내 IP 주소 확인하기 (ip)
컴퓨터가 느려질 때 CPU, Memory 성능 체크해서 원인 파악하기 (top)
로그 실시간으로 확인하는 법 (tail -f)

명령어들을 자동화시킬 수 있는 쉘 스크립트

문자열을 터미널 화면에 출력하는 명령어 (echo)
쉘 스크립트 파일 작성/실행 하는 법
[실습] ‘git pull 받아오기 → Spring Boot 빌드 → 빌드된 jar 파일 실행’의 과정을 자동화하기
[참고] 쉘 스크립트 공부 지침

Q&A / 마무리

[Q&A] 왜 윈도우에서는 배운 리눅스 명령어가 작동하지 않는 거죠?
[Q&A] 강의에서 안 배운 리눅스 명령어는 어떻게 공부해야 하나요?
[Q&A] 이 다음에는 어떤 걸 공부해야 하나요?
← 블로그 목록으로 돌아가기

[실습] 왜 Permission Denied 에러가 발생하는 지 원인 분석해보기

JSCODE 박재성
JSCODE 박재성
2026. 03. 27.
author
JSCODE 박재성
category
Linux
createdAt
Dec 6, 2025 05:13 AM
isPublic
isPublic
series
비전공자도 이해할 수 있는 리눅스 입문/실전
slug
practice-analyze-permission-denied
type
post
updatedAt
Mar 27, 2026 09:00

✅ 왜 Permission Denied 에러가 발생하는 지 원인 분석해보기

$ cd /var/log $ ls -al # 어떤 파일이 있는 지 확인, amazon이 디렉터리임을 확인 $ cd amazon # amazon 디렉터리로 접근
notion image
이 섹션의 초반부에서 경험했던 Permission denied 에러다. 이 에러가 왜 발생했는 지 분석해보자.
 
notion image
  • 소유자(파란 박스)가 root이고, 소유 그룹(초록 박스)이 root이다.
  • 빨간 박스의 10글자 분석
    • d : 파일 유형이 디렉터리이다.
    • rwx : 소유자(root)는 디렉터리에 대해 rwx 권한(= 모든 권한)을 가지고 있다.
    • --- : 소유 그룹(root)은 디렉터리에 대해 아무 권한을 가지고 있지 않다.
    • --- : 그 외의 사용자(root 사용자도 아니고, root 그룹에도 속하지 않는 사용자)도 디렉터리에 대해 아무 권한을 가지고 있지 않다.
    • [일반 파일인 경우]
      • r : 파일을 읽을 수 있다. (= 파일 내부 내용 확인 가능)
      • w : 파일을 수정할 수 있다.
      • x : 파일을 실행할 수 있다. (실행 파일 또는 쉘 스크립트인 경우)
      * 권한을 r, w, x의 순서로 표시한다. 해당 권한이 없을 경우 -로 표시한다.
       
      [디렉터리인 경우]
      • r : 디렉터리 내부 파일 조회(ls)가 가능하다.
      • w : 디렉터리 내부에 파일을 생성/삭제할 수 있다.
      • x : 디렉터리 내부로 접근(cd)할 수 있다.
      ** 디렉터리 내부의 파일을 생성/삭제(w)하려면 접근 권한(x)이 필수다. 그러다보니 대부분의 경우에는 디렉터리에 w 권한을 부여하고 싶다면 x 권한도 같이 부여하는 편이다.
 
 

✅ 실습

$ ls amazon # (amazon 폴더의 디렉터리 내부 파일을 조회) # ubuntu 사용자 입장에서 r 권한이 없어서 조회가 안 됨 $ cd amazon # ubuntu 사용자 입장에서 x 권한이 없어서 접근이 안 됨 # 디렉터리에 접근 자체를 못하니 디렉터리 내부 파일을 생성/삭제도 당연히 못 함 $ sudo su # root로 사용자 변경 $ ls amazon # root 사용자 입장에서 r 권한이 있어서 조회 가능 $ cd amazon # root 사용자 입장에서 x 권한이 있어서 접근 가능 $ touch testfile # root 사용자 입장에서 w 권한이 있어서 파일 생성 가능 $ ls # 파일 생성됐는 지 확인 $ su ubuntu # ubuntu로 사용자 변경
 
📎
이 글은 비전공자도 이해할 수 있는 리눅스 입문/실전 강의의 수업 자료 중 일부입니다.