본문 바로가기
IT/Linux

리눅스 사용자 관리

by 혁클 2021. 3. 23.

사용자 관리

 

사용자 정보를 가지고 있는 파일 : /etc/passwd

(pwconv/pwunconv : 사용자의 패스워드를 passwd 파일로 병합/해제)

 

ex) root:x:0:0:root:/root:/bin/bash

“:” : 항목의 구분자(Delimiter)

  • root: 사용자의 ID, 로그인 시 사용
  • x : 사용자의 패스워드 정보. 현재 다른 파일로 분리되어 있음. 여기는 전부 x 표시
  • 0 : UID (Unique Identifier). 사용자를 식별할 수 있는 유일한 번호
  • 0 : 소속된 기본 기룹의 정보 (주 그룹=기본 그룹). 그룹의 번호(GID, Group Identifier)
  • root : Comment(주석), GECOS, 사용자의 구체적인 정보를 기술
  • /root : 사용자의 홈 디렉토리 경로. 사용자 생성시 별도로 지정하지 않을 경우  /home/[사용자명]으로 지정, 사용자 추가시 해당 경로 자동생성
  • /bin/bash : 사용자의 기본 로그인 쉘
    1. /sbin/nologin : 사용자 로그인 쉘 지정 위치에 사용할 경우, 이 사용자에 대해서는 로그인 접근을 허용하지 않음

 

================================================

 

사용자의 암호 정보를 가지고 있는 파일: /etc/shadow

  • 사용자의 암호 자체가 저장되어 있는 파일 - 보안이 강화되어 있음 (---------)
  • 암호와 관련된 설정값이 들어있음

 

Shadow 암호의 형식

user:$ⓐ$ⓑ$ⓒ::0:99999:7:::

ⓐ : 숫자 한 자리로 암호의 해쉬(Hash) 방식을 지정. 6-SHA512, 1-MD5

ⓑ : Salt. 패스워드 해시를 계산할 때 함께 집어넣는 값. 패스워드 크래킹을 방지하기 위해.

ⓒ : 패스워드+Salt로 계산된 패스워드의 해쉬값

 

패스워드 변경 명령

passwd

일반사용자 : passwd로 자신의 패스워드를 변경 (현재 패스워드를 알아야 함)

관리자(root) : passwd [사용자명] 으로 다른 사용자의 패스워드를 변경가능(강제)

 

userid:hash:lastchange:min:max:warning:inactive:expire

  • userid: 사용자 ID
  • hash: 패스워드 해쉬 방식+Salt+패스워드 해시
  • lastchange : 1970년 1월 1일을 기준으로 해서 계산된 패스워드 변경 날짜
  • min: 패스워드 최소 사용기간. 패스워드 변경시 최소 이 기간만큼 사용
  • max: 패스워드 최대 사용기간. 날짜로 계산. 지정하지 않을 경우 99999(무제한)
  • warning: 패스워드 만료 기간 전 경고 기간
  • inactive: 패스워드 만료 후 이 설정값 만큼 지난 후 계정을 잠금
  • expire: 지정된 시점에 사용자 계정 만료

 

계정 잠금

  • 사용자 계정 shadow 암호의 Hash 앞부분에 !! 추가됨
  • 잠금된 계정은 로그인 불가
  • 직접 계정 잠금 명령 : 관리자 권한으로 다음 명령 수행
    • passwd -l <사용자명>
  • 계정 잠금 해제 : 관리자 권한으로 다음 명령 수행
    • passwd -u <사용자명>

 

shadow 파일 내 패스워드 설정과 관련된 값 변경 가능 : chage

 

================================================



특권 사용자(슈퍼유저)

  • 리눅스/유닉스 시스템에서는 시스템 관리권한을 가지는 사용자 : root(0)
  • 특권: 기본적인 권한을 초월할 수 있음. rights(what to do), permission

 

root 사용자로 접근하는 방법

  • root 사용자로 직접 로그인
  • su : Switch User / Substitute User. 현재 사용자 계정을 다른 사용자로 전환 
  • su [사용자명] : 지정한 사용자로 변경
    • su : root 사용자로 변경
    • su - : 해당 사용자의 초기 설정을 로드 (- 사용시 현재 위치 변경 : 변경된 사용자의 루트 디렉토리)
  • sudo : 관리자 권한으로 명령을 실행
    • 관리자 권한을 일회적으로 사용할 수 있도록 함 (sudo [명령어])
    • 권한을 얻어오기 위해 자신의 패스워드로 인증 (root 패스워드가 아님)
    • 아무나 쓸 수 있는 것은 아님 - wheel 그룹의 구성원만 사용 가능
      • 이 설정은 /etc/sudoers 파일에 있음
      • /etc/sudoers.d/ : 직접 /etc/sudoers 파일을 직접 수정하지 않고, 이 위치에 sudoers 설정에 해당 항목만 추가하여 설정 가능
    • -i : su와 같이 관리자 권한의 쉘 사용

 

================================================



그룹: 사용자들의 모임. 권한을 편리하게 할당하기 위해 사용.

  • 리눅스/유닉스 시스템의 사용자들은 무조건 최소 1개 이상의 그룹에 가입되어야 함
  • 운영체제/배포판 종류에 따라 조금씩 다르지만, 사용자 생성시 기본적으로 가입을 시킴 (유닉스: others, 리눅스: 사용자 이름의 그룹을 자동 생성) => 주그룹(기본그룹)
  • 사용자별로 선택적으로 다른그룹에 함께 포함 가능 - 보조그룹  
  • 주 그룹/보조그룹 상관없이 해당 그룹에 들어있을 경우 그룹의 권한 사용 가능
  • 그룹의 정보는 /etc/group 파일에 저장됨
    • user:x:1000:user
      • user : 그룹의 이름
      • x : 과거 그룹의 패스워드 저장 위치
      • 1000 : 그룹의 ID (GID)
      • user : 해당 그룹에 소속되어 있는 사용자 정보

 

================================================

 

사용자 관리 명령어

 

useradd : 사용자 생성

  • 기본 명령어 사용법: useradd [옵션]... <생성할 사용자 ID>
  • 각 속성별로 지정이 가능
    • 사용자ID: 필수항목
    • UID: -u [사용할  UID번호]
    • 주보조그룹의 이름 or GID],[두번째 보조그룹 이름 or GID]... 
    • 사용자 설명그룹: -g [주그룹의 이름 or 주 그룹의 GID]
    • 보조그룹: -G [: -c [코멘트]
    • 홈 디렉토리: -d [사용할 홈 디렉토리 경로], -m (지정한 홈 디렉토리 생성)
    • 사용자의 로그인 쉘: -s [쉘 실행파일의 경로] (eg. /bin/zsh, /bin/ksh, /bin/csh)

usermod : 사용자 정보 수정

  • 기본 명령어 사용법 : usermod [변경할 내용]... <변경할 ID>
  • 대부분의 속성은 useradd와 유사
    • ID 변경 가능: -n [변경할 ID]
    • 보조그룹 변경시 주의 사항: -G 뒤에 추가할 그룹만 적을 경우, 기존 보조그룹 삭제됨. -aG 옵션으로 기존 보조그룹 정보에 추가하도록 설정

userdel : 사용자 삭제

  • 기본 명령어 사용법 : userdel [옵션] <삭제할ID>
  • 옵션 : -r 사용자 삭제 시 사용자의 홈디렉토리를 함께 삭제

 

그룹 관리

groupadd : 그룹 추가

  • 명령어 사용법: groupadd [옵션] <그룹이름>
    • -g : 생성할 그룹의 GID 번호

groupmod : 그룹 정보 변경

  • 명령어 사용법 : groupmod [옵션] <그룹이름>
    • -g : 그룹의 GID 변경
    • -n : 그룹의 이름 변경

groupdel : 그룹 삭제

 

==================================================

 

사용자 패스워드 관련 설정 변경

 

chage: 사용자 패스워드 설정 변경 명령어

  • -d : 사용자의 패스워드 마지막 변경일자 수정 (날짜)
    • -d 0 : 패스워드의 마지막 변경일자를 0으로 변경 → 다음 접속시 패스워드 변경 강제로 진행
    • -d [년-월-일] : 패스워드 마지막 변경일자를 지정한 시점으로 변경
  • -m : 패스워드 최소 사용기간 변경 (기간,일)
  • -M : 패스워드 최대 사용기간 변경 (기간,일)
  • -W : 패스워드 변경 경고기간 변경 (기간,일)
  • -I : 패스워드 만료 후 계정 잠금(비활성화) 까지 유예기간 설정 (기간,일)간
  • -E : 계정 만료일자 지정 (날짜), 숫자/날짜 모두 사용가능(18650, 2021-02-10)

 

===================================================

 

사용자 생성시 기본적용되는 값 설정

  1. /etc/default/useradd : 사용자 기본 그룹, 사용자 쉘, 기본 배포 파일, 만료일자, inactive
  • useradd -D 명령으로 조회 및 변경 가능
  1. /etc/login.defs : 사용자 암호 관련 설정(최소/최대/경고/암호길이), UID관련 설정 등

 

=======================================================

 

ssh 연결 사용

 

SSH : Secure Shell

  • Telnet, rlogin : 원격에서 시스템 쉘 연결하는 도구. 암호화가 없음
  • SSH를 사용하여 쉘 연결 가능
  • SSH를 사용하여 일회성 명령 전달 가능
  • SSH를 사용한 터널링 구현 가능
  • SFTP 기능 포함
  • SCP : SSH를 통한 cp명령

 

*이 포스팅은 엔코아 플레이 데이터 수업 내용을 참고로 합니다.

'IT > Linux' 카테고리의 다른 글

systemd  (0) 2021.03.29
저장소 관리(LVM,RAID)  (0) 2021.03.27
저장소 관리 (파티션,파일 시스템,스왑)  (0) 2021.03.25
권한 / 프로세스  (0) 2021.03.24
리눅스 기본 명령어  (0) 2021.03.22

댓글