정보보안

🧾 리눅스에서 시스템 계정과 일반 계정의 차이 및 보안 설정

후추멍멍이 2025. 6. 30. 14:20
728x90

 

리눅스 시스템을 다루다 보면 다양한 사용자 계정이 등장한다. root, nobody, sshd, ubuntu, user01 등 각각의 계정이 어떤 용도로 존재하며, 어떻게 구분되고 관리되어야 하는지 정리한다.


📂 계정의 두 가지 유형

리눅스에서 계정은 크게 다음 두 가지로 나뉜다:

유형 설명
시스템 계정 운영체제나 서비스가 내부적으로 사용하는 계정
일반 계정 실제 사용자가 로그인해서 사용하는 계정

🧠 구분 기준: UID 범위

리눅스에서는 사용자 ID(UID)를 기준으로 계정 유형을 판단할 수 있다.
배포판마다 다소 차이는 있지만 일반적으로 다음과 같이 구분한다:

uid 범위 계정 유형 설명
0 root 시스템 최상위 관리자 계정
199 또는 1999 시스템 계정 데몬 또는 서비스용 (예: 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