목차
1. 사용자(user), 슈퍼 사용자(super user)란?
사용자(user) 란?
윈도우처럼 리눅스에서도 여러 사용자를 만들어 사용할 수 있다.
다음은 리눅스 환경에서 기본적으로 생성되어 있는 사용자들이다. 첫 번째 : 을 기준으로 왼쪽에 있는 값들이 사용자들(users)이다.
기본적으로 root , daemon, bin, sys 등 다양한 사용자가 이미 생성되어 있다. 여러 사용자들 중에서 가장 위에 있는 root 와 가장 아래에 있는 ubuntu 만 거의 사용하니 이 두 가지 사용자만 기억해두자.

리눅스에서 사용자 유형
- 슈퍼 사용자 (관리자) : 시스템의 모든 권한을 가진 계정
- 어떠한 제한도 없이 모든 명령어를 실행시킬 수 있으며 모든 파일을 조작할 수 있다.
- 실수로 중요한 시스템 파일을 지우는 것도 가능하므로, 안전을 위해 평소에는 일반 사용자 계정을 사용하는 것을 추천한다.
- 일반적으로 root 계정이 슈퍼 사용자로 설정되어 있다.
- 일반 사용자
- 권한이 허용된 명령어만 실행시킬 수 있고, 권한이 허용된 파일만 조작할 수 있다.
- 실수로 중요한 시스템 파일을 지우는 것이 불가능하다.
- ex) ubuntu
- 시스템 사용자
- 사람이 직접 로그인해서 쓰는 계정이 아닌, 운영체제나 서비스(데몬, 서비스 프로그램)가 동작하기 위해 만들어진 계정이다.
- 보안 강화 : 보안 취약점이 뚫렸을 때, root 권한이 아닌 시스템 사용자로 실행된다면 피해를 제한할 수 있다.
- 권한 분리 : 서비스별로 계정을 나누어 간섭을 피하고 권한을 분리한다.
- 관리 편의성 : 로그 파일이나 실행 파일, 설정 파일의 소유권을 해당 시스템 사용자로 두면, 관리가 깔끔해진다.
이 3가지 중 자주 사용하게 되는 슈퍼 사용자와 일반 사용자만 일단 기억하고 가자.
현재 접속한 계정은
1. 터미널 창에서 @ 왼쪽에 있는 이름이 현재 접속해있는 사용자 계정이다.

2. 명령어로 whoami 라고 입력하면 현재 접속해있는 사용자 계정을 알려준다.

다른 사용자로 접속하려면 어떻게 할까?
슈퍼 사용자 (root 계정) 로 접속하는 방법 : $ sudo su

- root 라는 사용자로 변경되었다.
- 슈퍼 사용자로 전환되면 입력창에서 $ 가 # 로 바뀐다.
- # 으로 바뀌는 이유는 슈퍼 사용자임을 직관적으로 알려주기 위함이다.
일반 사용자 (ubuntu 계정) 으로 접속하는 방법 : $ su ubuntu

2. 그룹(group) 이란?
그룹(group)이란?
리눅스에서 그룹(group) 이란 사용자 계정을 묶어서 관리하기 위한 단위이다.
여러 사용자에게 공통된 권한을 한번에 부여하고 관리할 때 유용하게 사용된다.
그룹(group) 의 특징
- 한 사용자는(user) 는 반드시 하나의 그룹(group) 에 속해야 한다.
- 한 사용자(user)는 여러 그룹(group) 에 속할 수 있다.
특정 계정이 어떤 그룹(group)에 속해 있는 지 확인하는 방법
group 을 확인하는 명령어 : $ groups [사용자명]

- ubuntu 사용자는 ubuntu, adm, cdrom, sudo, dip, lxd 라는 그룹에 속해있다.
- root 사용자는 root 라는 그룹에만 속해있다.
3. 권한(Permission) 이란?
권한(Permission)이란
리눅스에서는 여러 사용자 계정을 만들어 사용할 수 있다고 했다. 그러다보니 특정 사용자가 다른 사용자의 파일을 마음대로 접근하는 걸 막기 위해 권한(Permission) 이라는 기능을 추가했다.
권한(Permission) 을 활용하면 특정 사용자에 대해서만 특정 파일 또는 디렉터리에 접근할 수 있게 만들 수 있다.
권한(Permission) 확인 방법
리눅스의 모든 파일에는 '누구에게 어떤 권한까지 허용할 지'와 '소유자'와 '소유 그룹'이 설정되어 있다. 직접 확인해 보자.

- 먼저 노란 박스에 표시된 계정은 소유자를 의미한다. 파일을 생성한 사용자가 자동으로 소유자가 된다. (변경 가능하다.)
- 그 다음 하늘색 박스에 표시된 이름은 소유 그룹을 의미한다. 파일을 생성한 사용자의 기본 그룹(primary group)으로 자동 설정 된다. (변경 가능하다.)
- 그 다음 보라색 박스를 보자. 보라색 박스의 문자는 아래와 같이 총 10개의 문자로 이루어져있다.
여기서 각 문자의 의미는 아래와 같다.

1. 1번째 문자 : 파일 유형(File Type)
- - : 일반 파일
- d : 디렉토리
- l : 심볼릭 링크
2. 2~4번째 문자 : 소유자에게 허용된 권한
[일반 파일인 경우]
- r (read) : 파일을 읽을 수 있다. (파일 내부 내용 확인 가능)
- w (write) : 파일을 수정할 수 있다.
- x (execute) : 파일을 실행할 수 있다. (실행 파일 또는 쉘 스크립트인 경우)
[디렉토리인 경우]
- r : 디렉토리 내부 파일 조회 ( ls ) 가 가능하다.
- w : 디렉토리 내부에 파일을 생성/삭제할 수 있다.
- x : 디렉토리 내부로 접근 ( cd ) 할 수 있다.
3. 5~7번째 문자 : 소유 그룹에게 허용된 권한을 의미
4. 8~10 번째 문자 : 그 외의 사용자에게 허용된 권한을 의미
4. 권한 변경하는 방법 (chmod)
chmod 라는 명령어를 이용하면 파일에 권한을 변경할 수 있다. 숫자 3개를 활용해서 변경할 권한을 설정한다.
각 권한은 아래와 같이 해당하는 숫자에 있다. 이 숫자를 더해서 소유자, 그룹, 다른 사용자에 대한 권한을 설정할 수 있다.

예시1
어떤 파일에 소유자, 소유 그룹, 그 외의 사용자 에게 모든 권한을 부여하고 싶다고 가정하다. 그러면 아래와 같이 권한을 부여해야 한다. 어떤 계정에 모든 권한을 주고싶다면 4(r) + 2(w) +1(x) 를 더하여 7이라는 숫자를 주면 된다.
이 때, 소유자, 소유 그룹, 그 외의 사용자 에게 모든 권한을 주려면 chmod 777 하여 rwxrwxrwx 라는 권한을 부여할 수 있다.

예시2
이번에는 파일에 rw-r--r-- 라는 권한을 부여하고 싶다고 가정하자.
rw- 권한은 4(r) + 2(w) +0(-) = 6 으로 주고 r-- 권한은 4(r) + 0(-) + 0(-) = 4 로 주면 된다.
그래서 chmod 644 하여 rw-r--r-- 권한을 줄 수 있다.

5. 관리자 권한 (sudo)
관리자 권한
root 사용자는 슈퍼 사용자이다. 슈퍼 사용자는 시스템의 모든 권한을 가진 계정이다. 슈퍼 사용자는 파일에 설정된 권한과 별개로 모든 권한을 가지고 있기 때문에 어떠한 조작이든 전부 다 가능하다.
root 사용자가 아니더라도 권한이 없는 파일에 접근하는 방법
일반 사용자가 슈퍼 사용자처럼 명령어를 실행하거나 파일에 접근할 수 있는 방법이 있다. 그것이 바로 sudo 라는 명령어이다.
아래에서 sudoers 라는 파일은 root계정외에는 어떠한 권한도 없다는 것을 알 수 있다.


실제로 ubuntu 계정으로 조회하려고 하면 Permission denied 가 뜬다.
sudo 를 이용하여 관리자 권한으로 파일 내용을 출력해보자.

sudo 명령어를 활용하면 권한이 없어도 조회가 가능하다.
root 사용자로 로그인 vs sudo 명령어 활용
권한이 없을 때, 이를 해결하는 방법 2가지를 학습했다.
- 슈퍼 사용자( root ) 로 접속해서 명령어 실행
- 명령어를 입력할 때마다 sudo 를 붙이지 않아도 되서 편리하다.
- 하지만 실수로 시스템에 치명적인 명령어를 입력해 시스템이 손상될 가능성이 있다.
- 명령어 앞에 sudo 를 붙여서 명령어 실행
- 명령어를 입력할 때마다 sudo 를 붙여야 한다.
- root 계정을 이용하는 것보다 안전한방식이고 추천되는 방식이다.
'리눅스 > 리눅스 입문' 카테고리의 다른 글
| [리눅스 입문] 백엔드 서버를 운영할 때 자주 사용하는 명령어 (0) | 2025.10.06 |
|---|---|
| [리눅스 입문] 표준 출력(stdout), 표준 에러 출력(stderr), 리다이렉션 (0) | 2025.10.03 |
| [리눅스 입문] 패키지 매니저 (apt) (0) | 2025.10.01 |
| [리눅스 입문] 우분투 리눅스(Ubuntu Linux) 시작 및 기본 명령어 (1) | 2025.09.28 |
| [리눅스 입문] AWS EC2 를 이용한 리눅스 실습환경 구축 (0) | 2025.09.28 |