본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

리눅스에서 사용자 계정과 그룹을 만들고, 바꾸고, 지우는 일과 그 정보가 저장되는 파일을 정리한 문서이다.

계정 정보 파일

편집 원본 편집
파일 내용 권한(Rocky 8 기본)
/etc/passwd 사용자 계정 정보 644
/etc/shadow 암호화된 비밀번호와 비밀번호 만료 정보 000 (root만 접근)
/etc/group 그룹 정보 644
/etc/gshadow 그룹 비밀번호 정보 000
/etc/login.defs 계정 생성 시 기본 정책 (UID 범위, 비밀번호 만료 기본값, 홈 디렉터리 생성 여부 등) 644
/etc/default/useradd useradd의 기본값 (홈 기준 경로, 셸, skel 경로 등) 644
/etc/skel/ 새 사용자 홈 디렉터리에 복사될 기본 파일 (.bashrc, .bash_profile 등) -

콜론(:)으로 구분된 7개 필드로 이루어진다.

사용자명:비밀번호:UID:GID:설명(GECOS):홈 디렉터리:로그인 셸
ihduser:x:1000:1000:IHD User:/home/ihduser:/bin/bash
  • 비밀번호 자리의 x는 실제 비밀번호가 /etc/shadow에 있다는 뜻이다.
  • UID 0은 root, 1~999는 시스템 계정, 1000 이상은 일반 사용자이다. (Rocky 8 login.defs의 UID_MIN 1000 기준)
  • 로그인을 막으려면 셸을 /sbin/nologin 또는 /bin/false로 둔다.

콜론으로 구분된 9개 필드로 이루어진다.

사용자명:암호화된 비밀번호:최종 변경일:최소 사용일:최대 사용일:경고일:비활성일:만료일:예약
ihduser:$6$...:19800:0:99999:7:::
  • 최종 변경일과 만료일은 1970년 1월 1일부터 지난 일 수로 저장된다.
  • 비밀번호가 $6$로 시작하면 SHA-512, $5$는 SHA-256, $1$은 MD5 방식이다.
  • 비밀번호 앞에 !가 붙으면 잠긴 계정이다. (passwd -l, usermod -L)
그룹명:비밀번호:GID:구성원 목록
wheel:x:10:ihduser,admin

사용자 관리 명령어

편집 원본 편집
명령어 용도 자주 쓰는 옵션
useradd 사용자 생성 -u UID, -g 기본 그룹, -G 보조 그룹, -d 홈, -m 홈 생성, -s 셸, -c 설명, -e 만료일, -f 비활성일, -D 기본값 확인·변경
usermod 사용자 정보 변경 -l 이름 변경, -G 보조 그룹 지정, -aG 보조 그룹 추가, -L 잠금, -U 잠금 해제, -d -m 홈 이동
userdel 사용자 삭제 -r 홈 디렉터리와 메일 스풀까지 삭제
passwd 비밀번호 설정 -l 잠금, -u 해제, -d 비밀번호 삭제, -e 즉시 만료, -S 상태, --stdin 표준 입력으로 설정(Rocky 8)
chage 비밀번호 만료 정책 -l 확인, -m 최소일, -M 최대일, -W 경고일, -I 비활성일, -E 만료일, -d 0 다음 로그인 때 변경 강제
chsh 로그인 셸 변경 -s 셸, -l 사용 가능 셸 목록
chfn GECOS(설명) 정보 변경
newusers 파일로 여러 사용자 일괄 생성
pwck /etc/passwd·shadow 무결성 검사
pwconv /etc/passwd의 비밀번호를 /etc/shadow로 옮김

그룹 관리 명령어

편집 원본 편집
명령어 용도
groupadd 그룹 생성 (-g GID)
groupmod 그룹 변경 (-n 새 이름, -g 새 GID)
groupdel 그룹 삭제 (기본 그룹으로 쓰는 사용자가 있으면 삭제되지 않음)
gpasswd 그룹 구성원·관리자 관리 (-a 추가, -d 제거, -A 관리자 지정)
newgrp 현재 셸의 기본 그룹을 바꿈
groups, id 소속 그룹 확인
grpck, grpconv 그룹 파일 검사, gshadow 변환
# UID 1500, 보조 그룹 wheel, 셸 bash로 사용자 생성
# useradd -u 1500 -G wheel -s /bin/bash kaituser
# passwd kaituser

# useradd 기본값 확인
# useradd -D

# 기존 보조 그룹을 유지하면서 developers 그룹 추가
# usermod -aG developers kaituser

# 비밀번호 최대 사용일 90일, 만료 7일 전 경고
# chage -M 90 -W 7 kaituser
# chage -l kaituser

# 다음 로그인 때 비밀번호 변경 강제
# chage -d 0 kaituser

# 홈 디렉터리까지 삭제
# userdel -r kaituser

사용자 전환과 확인

편집 원본 편집
  • su : 다른 사용자로 전환한다. su - 는 대상 사용자의 로그인 환경까지 불러온다.
  • sudo : /etc/sudoers에 허용된 명령만 다른 사용자 권한으로 실행한다.
  • who, w, users, whoami, last : 로그인 사용자와 기록 확인
  • /etc/passwd 7개 필드, /etc/shadow 9개 필드의 순서와 의미
  • usermod -G는 보조 그룹을 덮어쓰고, -aG는 추가한다.
  • chage 옵션과 /etc/shadow 필드의 대응 (-m 최소, -M 최대, -W 경고, -I 비활성, -E 만료)
  • userdel -r, useradd -D, /etc/skel의 역할