Etc

리눅스 마스터 2급 정리(3) - 사용자 생성 및 계정 관리 명령어

하다보면 되겠지 2025. 5. 2. 00:13

사용자 관련 정리

사용자 설정 관련 환경 구성 파일

  • /etc/default/useradd
    • 사용자 추가 시 기본 설정 정보로 활용
    • vi 편집기나 -D 옵션으로 변경 가능
    $ cat /etc/default/useradd
    > GROUP=100
    > HOME=/home
    INACTIVE=-1
    SHELL=/bin/bash
    SKEL=/etc/skel  # 사용자 홈 디렉터리로 복사될 초기 환경 설정 파일이 저장된 디렉터리
    
  • /etc/passwd
    • 사용자 계정 정보를 담고 있으며 리눅스 로그인 시 사용됨
    • 비밀번호 뿐 아니라 여러 필드가 콜론(:)으로 구분됨
    • username:password:uid:gid:comment:home-directory:shell
    • 패스워드 필드는 “x”로 표시되며 pwconv ↔pwunconv로 설정 가능
  • /etc/shadow
    • 패스워드 정보가 암호화되어 저장
    • username:password:lastchange:mindays:maxdays:warndays:inactive:expire:flag
    • mindays: 비밀번호 변경 후 재설정 가능한 최소 기간
    • inactive: 비밀번호 만료 후 계정 사용 불가능까지 유예 기간
  • etc/login.defs
    • 사용자 계정 설정 시 기본값
    • 새로운 계정을 생성할 때 반드시 참조하는 파일임

 

useradd, adduser

  • 사용자 계정과 관련 정보를 생성
  • 기본 홈 디렉터리: /home/계정명
  • 계정 정보 파일: /etc/passwd, /etc/shadow, /etc/group
  • useradd <-옵션> [계정명]

 

passwd

  • 계정의 패스워드 입력 및 변경
  • /etc/shadow 파일에 패스워드 변경 및 저장
  • passwd <-옵션> [계정명]

 

su(switch user)

  • 로그아웃 없이 다른 사용자의 계정으로 로그인하여 해당 사용자의 권한을 획득
  • su <옵션> [계정명] <쉘변수>

 

usermod

  • 사용자 홈 디렉터리, 그룹, 유효 기간, 쉘 정보를 변경
  • usermod <-옵션> [계정명]

 

userdel

  • 사용자 계정 정보 삭제
  • /etc/passwd, shadow, group에서 사용자 정보 삭제
  • usermod <-옵션> [계정명]
  • -r: 사용자의 메일 파일과 홈 디렉터리 모두 삭제

 

chage

  • 패스워드 만료 정보를 변경
  • change <-옵션> [명령어]

 


그룹 관련 정리

그룹 설정 관련 환경 구성 파일

  • /etc/group
    • 사용자 그룹에 대해 정의
    • 모든 계정은 한 개 이상의 그룹에 포함되어 있음
    • 해당 파일을 이용하여 계정자의 그룹 정보를 직접 변경 가능
    • groupname:password:gid:users
    • users: 콤마(,)로 구분된 사용자 계정 나열
  • /etc/gshadow
    • 그룹의 패스워드를 MD5로 암호화하여 저장
    • 그룹의 소유주, 구성원 설정 가능
    • groupname:password:owner:users
    • password: !이면 암호가 없는 상태
    • users: 콤마(,)로 구분된 사용자 계정 나열

 

groupadd

  • 새로운 그룹 생성
  • group add <-옵션> [그룹명]
  • -g: GID 지정
    -r: 시스템 그룹 시 500번 이하의 값 중 가장 높은 범위를 할당

 

groupdel

  • 기존 그룹 삭제
  • 소속된 유저가 있을 경우 삭제 불가능
  • groupdel [그룹명]

 

groupmod

  • 그룹 설정 변경
  • groupmod <-옵션> [그룹명]
  • -g: GID 변경
    -n: 새로운 그룹명 설정

 


접속 정보 조회 정리

users

  • 시스템에 로그인한 사용자 정보를 출력
  • users <-옵션>

 

who

  • 현재 시스템에 접속해 있는 사용자들을 조회
  • 사용자 계정명, 터미널 정보, 접속 시간 등 확인 가능
  • 관리자 root와 일반 사용자 모두 사용 가능
  • who am i 혹은 whoami로 자신의 정보 조회 가능
  • who <-옵션>

 

w

  • 현재 접속 중인 사용자들의 정보를 나타냄
  • 현재 서버 시간, 부팅 후 작동 시간, 접속자 수, 접속자별 평균 부하율, 접속자별 계정명, TTY 이름, 로그인 시간 등
  • JDPU: TTY 장치명에서 사용되는 모든 프로세스의 CPU 사용 시간
  • PCPU: 해당 프로세스 결과값에서 WHAT 필드에 표시된 프로세스에서 사용하는 CPU 총 시간

 

id

  • uid, gid, group 정보 표시

id <-옵션> [계정명]
$ uid=0(root) gid=0(rooT) groups=0(root)

 

groups

  • 계정이 속한 그룹 목록을 확인
  • groups [계정명]

 


References