JSCODE Logo
프로그래밍 과외블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

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

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

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

어떠한 제약도 없이 모든 기능을 사용할 수 있는 관리자 권한 (sudo)

JSCODE 박재성
JSCODE 박재성
2025-12-06
author
JSCODE 박재성
category
Linux
createdAt
Dec 6, 2025
series
비전공자도 이해할 수 있는 리눅스 입문/실전
slug
what-is-sudo
type
post
updatedAt
Dec 6, 2025 05:39 AM

✅ 권한이 허용되지 않았는데 접근이 가능한 경우

$ su ubuntu # ubuntu 계정으로 로그인 $ cd /var/log $ ls -al
notion image
/var/log 내부의 파일들을 살펴보면 chrony라는 디렉터리가 있다. chrony 디렉터리의 소유자와 소유 그룹이 _chrony이다. 그리고 권한 정보(rwxr-x---)를 보니 _chrony를 제외한 사용자는 아무런 접근 권한이 없다. 정말 그런지 테스트 해보자.
 
$ ls chrony # chrony 디렉터리 내부를 조회
notion image
Permission denied 에러 메시지가 뜨면서 접근을 할 수 없다. 그럼 이번에는 root 사용자로 접근해보자.
 
$ sudo su # root 사용자로 전환 $ ls chrony
notion image
이번에는 Permission denied 에러가 뜨지 않았다. 명령어를 입력했는데 아무것도 출력되지 않은 이유는 chrony 디렉터리 내부에 아무 파일도 존재하지 않기 때문이다.
 
root 사용자는 분명 _chrony 사용자가 아닌데 왜 접근을 할 수 있었던 걸까?
 
root 사용자는 슈퍼 사용자로 설정되어 있기 때문이다. 이전에 슈퍼 사용자는 시스템의 모든 권한을 가진 계정이라고 설명했었다. 슈퍼 사용자는 파일에 설정된 권한과 별개로 모든 권한을 가지고 있기 때문에 어떠한 조작이든 전부 다 가능하다.
(참고 :
📖
사용자(user), 슈퍼 사용자(super user)란?
)
 
 

✅ root 사용자가 아니더라도 권한이 없는 파일에 접근하는 방법

일반 사용자가 슈퍼 사용자처럼 명령어를 실행하거나 파일에 접근할 수 있는 방법이 있다. 바로 sudo라는 명령어이다.
$ su ubuntu # ubuntu 사용자로 전환 # sudo [실행하고자 하는 명령어] $ sudo ls chrony # Permission denied 에러가 안 뜸
 
또 다른 파일로 테스트해보자.
$ cd /etc $ ls -l # sudoers라는 파일의 권한 조회
notion image
root 이외의 사용자는 파일에 대한 어떠한 권한도 없다는 걸 알 수 있다. 정말 그런지 테스트해보자.
 
$ cat sudoers # sudoers라는 파일의 내부 내용 출력
notion image
sudoers라는 파일의 내용을 출력하려고 했는데 역시나 권한이 없어서 에러가 떴다. 그럼 sudo를 붙이면 권한과 상관없이 파일 내용을 출력하는 지 확인해보자.
 
$ sudo cat sudoers # (sudo를 활용해 명령어 실행)
notion image
sudo 명령어를 활용했더니 권한이 없는데도 불구하고 잘 작동했다.
 
 

✅ root 사용자로 로그인 vs sudo 명령어 활용

어떤 명령어를 실행시켰을 때Permission denied라는 에러 메시지를 만났다면 권한이 부족하다는 뜻이라는 걸 알았다. 이를 쉽게 해결하는 방법으로 크게 2가지를 배웠다.
  1. 슈퍼 사용자(root 사용자)로 접근해서 명령어 실행
    1. $ sudo su # root 사용자로 전환
 
  1. 명령어 앞에 sudo를 붙여서 명령어 실행
    1. $ sudo [실행시키고자 하는 명령어]
 
첫 번째 방법이 root 사용자로 아예 전환해서 명령어를 실행시키는 것이기 때문에, 명령어를 입력할 때마다sudo를 붙이지 않아도 된다는 편리함이 있다. 두 번째 방법은 권한이 필요할 때마다 sudo를 매번 붙여야 된다는 게 불편하다. 그래서 첫 번째 방법이 편해보인다.
하지만 root 사용자로 아예 전환해서 명령어를 조작하다보면 실수로 시스템에 치명적인 명령어를 입력해 시스템이 손상될 수도 있다. 그래서 일반 사용자로 명령어를 입력하다가, 정말 권한이 필요한 명령어에 한해서만 sudo를 붙여 사용하는 방식을 권장한다.
author
JSCODE 박재성
category
Linux
createdAt
Dec 6, 2025
series
비전공자도 이해할 수 있는 리눅스 입문/실전
slug
type
series-footer
updatedAt
Dec 6, 2025 05:28 AM
📎
이 글은 비전공자도 이해할 수 있는 리눅스 입문/실전 강의의 수업 자료 중 일부입니다.