리눅스 시스템에서의 사용자 분류
- Root (Privileged User / Super User)
: 시스템 운영에 있어 모든 권한을 가진 사용자
: 0번 UID (User Identity)를 가진 사용자
- Normal User / Unprivileged User)
: 시스템에 대해 제한적인 권한을 가진 사용자
: CentOS 이후 1000번대의 UID를 할당 받음
사용자 관련 명령어
- useradd
- passwd
- su
- pwconv
- pwunconv
- pwck
- usermod
- userdel
- chage
- users
- who
- whoami
- w
- logname
- id
useradd
: 사용자 계정 생성. adduser라고 입력해도 동일
- 형식
: useradd [option] <user name>
- 주요옵션
: -p (--password)
> 암호 추가
: -d (--home-dir)
> 홈 디렉터리 지정
: -g (--gid)
> 기본 그룹 지정 (미지정 시 래드햇 계열에서는 아이디와 동일한 그룹에 포함 / 다른 배포판에서는 users에 포함)
: -G (--groups)
> 기본 그룹 외 추가로 다른 그룹에 할당
: -c (--comment)
> 사용자에 대한 설명
:-s (--shell)
> 사용자가 이용할 셸
: -D (--defaults)
> 사용자 추가에 대한 기본값 확인
: -m (--create-home)
> 사용자 생성 시 홈 디렉터리 생성. 래드햇 계열에서는 자동이지만 다른 배포판에서는 필요
: -k (--skel)
> 사용자 생성에 대한 환경 파일 지정 (기본: /etc/skel)
: -f (--inactive)
> 사용자 패스워드의 만기일 (날짜수)
: -e (--expiredate)
> 계정 만기일을 YYYY-MM-DD 형식으로 지정
: -u (--uid)
> 사용자 추가 시 UID 값 지정
: -h (--help)
> useradd 명령어의 주요 옵션 및 설명 출력
su
: substitude user라는 뜻의 명령어로, 시스템에 로그인 되어 있는 상태에서 다른 사용자의 권한으로
셸을 실행할 수 있도록 전환
: root 계정으로 로그인 하기 위해 필요
: 옵션 없이 실행할 경우 로그인한 사용자의 환경변수를 가지고 다른 사람의 권한만 가짐
- 형식
: su [option] [user name]
- 주요 옵션
: -l (--login)
> 실제 로그인을 하기위해 필요한 옵션
: -c (--command)
> 사용자를 전환하지 않고 명령을 일시적으로 실행
passwd
: 사용자에게 비밀번호를 지정하거나 변경
: useradd로 계정을 생성한뒤 비밀번호를 지정하지 않으면 로그인 할 수 없음
- 형식
: passwd [option] <user name>
- 주요옵션
: -S
> 비밀번호 정보 확인
: -l (--lock)
> 계정에 잠금설정
: -u (--unlock)
> 계정 잠금 해제
: -d
> 계정에 대한 비밀번호 삭제
: -n
> 비밀번호 변경 후 최소 사용 일수 지정
: -x
> 현재 비밀번호의 유효기간
: -w
> 비밀번호 만료전 경고 출력 날짜
: -i
> 비밀번호 만료 후 실제 잠금까지의 유예기간
: -e
> 다음 로그인 시 비밀번호를 변경하도록 설정
> /etc/shadow의 3번째 필드 값이 0으로 수정됨
chage
: 사용자 비밀번호에 대한 정보 출력 및 설정
: /etc/shadow 파일의 모든 날짜 관련 필드 설정
- 형식
: chage [option] <user name>
- 주요 옵션
: -l (--list)
> 사용자 비밀번호에 대한 정보 출력
: -d (--lastday)
> 사용자 계정의 최근 비밀번호 수정일 변경 (/etc/shadow 3번째 필드)
: -m (--mindays)
> 설정한 비밀번호를 사용해야하는 최소 일수
: -M (--maxdays)
> 설정한 비밀번호의 만기일
: -I (--inactive)
> 비밀번호 만기 후 계정이 잠기기 까지의 유예기간
: -E (--expiredate)
> 계정이 만기일 지정
: -W (--warndays)
> 비밀번호 만료전 경고 출력 날짜 지정
: -h (--help)
> 사용법
pwconv
: 사용자의 비밀번호를 /etc/shadow 파일에서 관리 하도록 설정
pwunconv
: 사용자의 비밀번호를 /etc/passwd 파일에서 관리하도록 설정
pwck
: password check의 약자로, /etc/passwd와 /etc/shadow 파일을 검사
- 검사항목
: 사용자의 필드 개수
: 아이디 중복 유무
: 유효한 사용자 여부
: 유효한 UID 및 GID 여부
: 사용자의 주 그룹 유무
: 홈 디렉터리 유무
: 로그인 셸 등
usermod
: 사용자의 정보를 변경 (셸, 홈 디렉터리, 그룹, UID, GID 등)
- 형식
: usermod [option] <user name>
- 주요 옵션
: -d (--home)
> 홈 디렉터리 변경
: -m (--move-home)
> -d 옵션과 함께 사용되며, 사용하던 홈 디렉터리의 파일도 같이 이동
: -g (--gid)
> 기본 그룹 변경
: -s (--shell)
> 셸 변경
: -u (--uid)
> UID 변경
: -e (--expiredate)
> 계정 만기일 변경. YYYY-MM-DD 또는 YY/MM/DD 형태로 지정
: -f (--inactive)
> 비밀번호 만기일 이후 계정을 잠글때 까지의 유예기간 설정
: -c (--comment)
> 사용자에 대한 설명
: -G (--groups)
> 소속 그룹 추가
: -a (--append)
> -G 옵션과 같이 사용하며, 기존 2차 그룹 외 2차 그룹을 추가로 지정
: -p (--password)
> 암호화된 패스워드로 설정
: -l (--login)
> 아이디 변경
: -L (--lock)
> 계정 잠금
: -U (--unlock)
> 계정 잠금 해제
userdel
: 사용자 계정 삭제
- 형식
: userdel [option] <user name>
- 주요 옵션
: -r (--remove)
> 사용자의 홈 디렉터리 및 메일 관련 파일까지 삭제
users
: 시스템에 로그인 되어있는 사용자들을 출력
who
: 시스템에 로그인 되어있는 사용자들을 출력
- 형식
: who [option]
- 주요 옵션
: -b (--bool)
> 시스템 부팅 시간
: -d (--dead)
> 죽은 프로세스
: -H (--heading)
> 현재 사용자의 터미널에 출력되고 있는 정보의 헤더
: -l (--login)
> 시스템 로그인 프로세스
: -p (--process)
> init 프로세스에 의해 발생되어 활성화된 프로세스
: -r (--runlevel)
> 현재의 런레벨
: -t (--time)
> 마지막으로 시스템 시간이 변경된 정보
: -T (-w / --mesg)
> 사용자의 메시지 상태
: -u
> 시스템에 로그인한 사용자의 목록
: -m
> 표준 입력과 관련된 호스트명과 사용자명 출력
: -a
> 모든 옵션
who am i
: 실질적으로 사용중인 권한자를 출력
: 표준 입력과 관련된 호스트명과 사용자명 출력
w
: 시스템에 로그인 되어 있는 사용자와 사용자가 수행중인 작업 확인
- 형식
: w [option] [user]
- 주요 옵션
: -h
> 헤더 생략
: -s
> LOGIN@, JCPU, PCPU를 제외하고 간략히 출력
- 출력 항목
: USER
> 로그인한 사용자의 아이디
: TTY
> 터미널 타입
: FROM
> 접속한 위치
: LOGIN@
> 로그인한 시간
: IDLE
> 마지막 명령 수행 후 대기 시간
: JCPU (Job cpu)
> 로그인 후 CPU를 사용한 시간
: PCPU (Process cpu)
> what에 표시된 작업에 의해 사용된 프로세스 시간
: WHAT
> 현재 사용중인 셸 혹은 작업
logname
: 사용자의 로그인 계정 출력
: su를 사용했을 경우 최초의 로그인 계정을 출력
id
: 시스템에 등록된 아이디에 대한 정보 출력
: UID, GID, 그룹 정보 등 출력
- 형식
: id [option] [user]
- 주요 옵션
: -g
> 주 그룹의 GID만 출력
: -G
> 사용자가 속한 모든 그룹의 GID 출력
: -u
> 사용자의 UID 값만 출력
: -n
> -u 혹은 -g 옵션과 함께 사용하여 UID나 GID 대신 이름을 출력
> -un / -Gn / -gn
사용자 관련 파일
- /etc/passwd
- /etc/shadow
- /etc/default/useradd
- /etc/login.defs
/etc/passwd
: 시스템에 로그인하여 자원을 이용할 수 있는 사용자의 목록이 기재된 파일
: 시스템이 사용자를 감시하기 위한 근거가 되는 파일
: 콜론 (:)을 구분자로 하여 7개의 기본적인 정보를 가짐
: /etc/passwd의 패스워드 부분은 /etc/shadow 파일로 암호화 되어 저장됨
- 기본구조
username : password : UID : GID : fullname : home directory : shell
/etc/shadow
: /etc/passwd 파일의 패스워드 부분을 암호화 하여 관리하는 파일
: 총 9개의 필드로 구성되어 있으며 root 사용자만 접근할 수 있음
- 기본구조
username : password : last : may : must : warn : expire : disable : reserved
- 항목별 설명
: username
> 사용자 아이디
: password
> 암호화된 비밀번호
: last
> 최근 비밀번호 수정일
: may
> 비밀번호 최소 사용일
: must
> 비밀번호 최대 가용일
: warn
> 비밀번호 만료전 사용자에게 경고하는 기간
: expire
> 비밀번호 만료 후 계정 잠금때까지의 유예기간
: disable
> 계정 만료일로 부터 사용이 불가능하게 되는 날
: reserved
> 예약 공간
/etc/default/useradd
: useradd 명령어로 계정 생성 시 기본적으로 적용되는 사항이 기재된 파일
: useradd -D 명령어로 확인 가능
- 항목
: GROUP
> 사용자 생성 시 기본으로 정해지는 주 그룹의 GID
: HOME
> 홈디렉터리의 루트 디렉터리
: INACTIVE
> 비밀번호 사용기간 지난뒤 계정 잠금까지의 유예기간
: EXPIRE
> 계정 유효기간
: SHELL
> 사용자 생성시 할당되는 셸
: SKEL
> 사용자 생성시 제공되는 파일 및 디렉터리가 들어있는 디렉터리
: CREATE_MAIL_POOL
> 사용자 생성시 메일 파일 생성 여부
> yes로 설정 시 /var/spool/mail/사용자명 으로 메일 관련 파일도 생성됨
- useradd -D
: 사용자를 생성하면서 /etc/default/useradd 파일의 설정도 함께 수정
/etc/login.defs
: 메일 디렉터리, 비밀번호 관련 설정, UID 최솟값 및 최댓값, GID 최솟값 및 최댓값, 홈 디렉터리 생성 여부,
기본 UMASK 값, 비밀번호에 적용되는 암호화 알고리즘 등의 설정을 정의한 파일
- 형식
: MAIL_DIR /var/spool/mail
: CREATE_HOME yes
- 주요설정
: MAIL_DIR
> 사용자의 메일 디렉터리
: PASS_MAX_DAYS
> 패스워드 최대 사용 기간
: PASS_MIN_DAYS
> 패스워드 변경 후 사용하는 최소기간
: PASS_MIN_LEN
> 패스워드 최소 길이
: PASS_WARN_AGE
> 패스워드 만기일 이전 경고 출력 날짜
: UID_MIN
> UID의 최솟값
: UID_MAX
> UID의 최댓값
: SYS_UID_MIN
> 시스템 계정의 UID 최솟값
: SYS_UID_MAX
> 시스템 계정의 UID 최댓값
: GID_MIN
> GID의 최솟값
: GID_MAX
> GID의 최댓값
: SYS_GID_MIN
> 시스템 계정의 GID 최솟값
: SYS_GID_MAX
> 시스템 계정의 GID 최댓값
: CREATE_HOME
> 사용자 추가 시 홈 디렉터리 생성 여부
: UMASK
> 사용자 추가 시 기본 UMASK
: USERGROUPS_ENAB
> 레드햇 계열에서 옵션 없이 사용자 생성 시 아이디와 동일한 그룹을 생성하고 포함 시키는데,
사용자 제거 시 해당 그룹의 삭제 여부
: ENCRYPT_METHOD
> 사용자 비밀번호에 사용할 암호화 알고리즘
Refference
'Certification > 리눅스마스터' 카테고리의 다른 글
리눅스 시스템 정보 조회 및 관리 (0) | 2022.10.08 |
---|---|
리눅스 그룹 관리 (0) | 2022.10.07 |
vim 에디터 사용방법 (0) | 2022.10.04 |
리눅스 메뉴얼 및 탐색 명령어 (0) | 2022.10.04 |
리눅스마스터 1급 2차 요약정리 - 9 (DHCP / VNC / NTP / iptables) (0) | 2021.11.14 |