정보보안
🧾 리눅스에서 시스템 계정과 일반 계정의 차이 및 보안 설정
후추멍멍이
2025. 6. 30. 14:20
728x90
리눅스 시스템을 다루다 보면 다양한 사용자 계정이 등장한다. root, nobody, sshd, ubuntu, user01 등 각각의 계정이 어떤 용도로 존재하며, 어떻게 구분되고 관리되어야 하는지 정리한다.
📂 계정의 두 가지 유형
리눅스에서 계정은 크게 다음 두 가지로 나뉜다:
유형 | 설명 |
시스템 계정 | 운영체제나 서비스가 내부적으로 사용하는 계정 |
일반 계정 | 실제 사용자가 로그인해서 사용하는 계정 |
🧠 구분 기준: UID 범위
리눅스에서는 사용자 ID(UID)를 기준으로 계정 유형을 판단할 수 있다.
배포판마다 다소 차이는 있지만 일반적으로 다음과 같이 구분한다:
uid 범위 | 계정 유형 | 설명 |
0 | root | 시스템 최상위 관리자 계정 |
1 |
시스템 계정 | 데몬 또는 서비스용 (예: sshd, bin, mail) |
1000 이상 | 일반 계정 | 사용자가 직접 만든 계정 (예: user01, devteam) |
확인은 /etc/passwd 파일에서 UID 항목을 통해 가능하다.
🔍 예시
sshd:x:106:65534::/run/sshd:/usr/sbin/nologin
alice:x:1001:1001:Alice:/home/alice:/bin/bash
- sshd: UID 106 → 시스템 계정 (로그인 셸 없음)
- alice: UID 1001 → 일반 사용자 계정 (로그인 가능)
🔒 보안 설정 차이
항목 | 시스템 계정 | 일반 계정 |
로그인 가능 여부 | 기본적으로 비활성화 (/usr/sbin/nologin) | 로그인 가능 (/bin/bash 등) |
홈 디렉터리 | 없음 또는 제한적 (/run/, /var/) | /home/사용자명 |
비밀번호 설정 | 비밀번호 없음 또는 잠금 상태 | 비밀번호 필수 |
접근 권한 | 제한적 실행만 허용 | 사용자가 다양한 작업 가능 |
주요 목적 | 데몬 실행, 내부 동작 | 실제 사용자 로그인 및 작업 수행 |
🛠 설정 및 관리 팁
- 시스템 계정은 /etc/passwd에서 로그인 셸을 nologin 또는 false로 설정해두어야 한다.
- usermod -s /usr/sbin/nologin ftp
- 일반 계정은 passwd 명령어로 주기적인 비밀번호 변경을 유도하고, /etc/login.defs를 통해 보안 정책을 설정할 수 있다.
- 필요 없는 시스템 계정은 삭제하지 말고, 잠금(usermod -L)하거나 접근을 제한하는 것이 안정적이다.
- 사용자 계정 생성 시에는 기본적으로 useradd, adduser 명령어를 사용하고, 반드시 UID, 홈 디렉터리, 로그인 셸, 기본 그룹을 검토해야 한다.
✅ 요약 정리
구분 | 시스템 계정 | 일반 사용자 계정 |
UID | 보통 0~999 | 1000 이상 |
목적 | 서비스/프로세스용 | 사용자 작업용 |
로그인 가능 여부 | 불가능 | 가능 |
홈 디렉터리 | 거의 없음 | 기본 생성됨 |
셸 | /usr/sbin/nologin 등 | /bin/bash 등 |
728x90