본문 바로가기
Linux

사용자 계정

by Nirah 2022. 10. 31.

Linux는 관리자 계정인 root 계정과 일반 사용자 계정으로 나누어 관리한다.

-사용자 계정은 다시 login이 가능한 사용자 계정과 
  login없이 시스템에의해서 만들어지는 시스템 사용자 계정으로 나누어 관리한다.

-일반적으로 'root' 계정이 관리자 계정인 Super user라고 인식하지만 실제 시스템은 ID형식이 아닌
  UID라고하는 숫자 형식을 사용하여 계정을 인식한다.

-UID는 정수형식으로 할당되며 UID값이 '0'인 계정이 관리자 계정으로 동작하기때문에
  root 계정이 관리자 계정 (Super User)로 동작한다.

-RedHat 계열은 일반 사용자 계정의 UID값이 500번부터 할당되며 나머지 다른 배포판은 1000번부터 할당된다.
  (CentOS 7버전부터 일반 사용자 계정의 UID값이 1000번부터 할당된다.)

-하나의 계정은 반드시 하나 이상의 Group에 소속되어야 한다.

-root 계정 사용자는 바로 root 계정으로 접속하지 않고
  일반 사용자 계정으로 접속한 후 관리자 권한을 획득하는 방법을 권장한다.

 

-계정 생성은 관리자 권한(root 권한)으로만 생성이 가능하다.

 

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

 

 

 

1. 사용자 추가


 # useradd  [옵션 1] [옵션 1의 값]  [옵션 2] [옵션 2의 값] .... [계정명]

 

-c : comment로 닉네임을 설정시 사용하는 옵션 (Server로 직접 접속시 확인된다.)
-s : 사용자가 사용할 shell을 지정시 사용하는 옵션 (shell 설정시 shell의 경로까지 입력해야 한다.)
-d : 사용자 계정의 홈 디렉터리를 변경시 사용하는 옵션 우선적으로 해당 디렉터리가 생성되있어야 한다.

-u : UID 지정
-g : GID 지정, 단 UID와 동일하게 자동 생성됨으로 최초 사용시 UID와 동일한 ID를 입력하면
"없는 그룹입니다"란 메세지가 출력되면서 계정 생성 불가하니 유의.
먼저 GID가 존재한 뒤에야 계정에 부여 가능.

-G : 기본 그룹 외에 추가로 속하게 할 그룹 추가 (0번은 root 라고 쳐도 됨)

-N : 유저id와 같은 유저 그룹을 안만듬

 

 

2. 사용자 제거

 

# userdel [계정명]

-r 옵션을 반드시 사용한다.

만약 빼먹었을 경우 /home/[계정명] 디렉토리와 /var/spool/mail/[계정명] 디렉토리를 직접 삭제해 준다.

 

 

3. 사용자 수정

 

# usermod  [옵션1] [옵션값1]  [계정명]

생성된 사용자 계정의 디렉터리 , 속성 , Group 정보를 변경할 수 있다.

주의해야 할 점은 홈 디렉토리 변경시엔 -md 옵션을 써야한다.

 

 

4. 암호 변경

 

# passwd [계정명]

 

 

문제 Q. 사용자 m3을 생성하면서 uid 3000, gid 3000, 코멘트는 wasted, 홈디렉토리는 /korea,

로그인 불가능하게 하기(불가능한 이유 떠야함)

 

 

 

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

 

 

사용자 계정 생성에 관련된 파일 목록

1  /etc/passwd : 관리자 및 사용자 계정의 정보가 포함된 파일 (계정ID , UID , GID , 홈디렉터리 , shell)
2  /etc/shadow : 관리자 및 사용자 계정의 Password가 저장된 파일 

3  /etc/group : 관리자 및 사용자 계정들이 소속된 Group 정보가 저장된 파일
4  /etc/default/useradd : 사용자 계정 생성시 긱본적으로 적용되어야할 정보나 경로가 포함된 파일
5  /etc/login.defs : 사용자 계정 생성시 필요한 UID , GID 정보가 포함된 파일
6  /etc/skel/ : 사용자 계정 생성시 필요한 파일 또는 디렉터리 정보가 포함된 디렉터리
7  /var/spool/mail/ : 사용자 계정 생성시 해당 경로에 자동으로 Mail계정이 생성된다.

/etc/shell : shell 관련 파일

 

 

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

 

자세한 속성 분석방법

 

1. /etc/passwd

관리자 및 사용자 계정의 정보가 포함된 파일

 

guest:x:1000:1000:guest:/home/guest:/bin/bash

 

(: 콜론 단위로 끊어 해석한다)

- guest : 계정명 (계정 ID)
- x : Password를 의미 (실제 Password는 /etc/shadow 파일안에 저장된다.)
- 1000 : User-ID (UID) = 시스템 계정 = 1 ~ 999 , 사용자 계정 = 1000 ~
- 1000 : Group-ID (GID)
- guest : comment이며 닉네임이라고도 부른다. (생략시 기본값으로 계정명과 동일한 값이 설정된다.)
- /home/guest : 해당 계정의 홈 디렉터리 경로
- bin/bash : 해당 계정이 사용할 shell이 포함된 경로

 

 

 

2. /etc/shadow

관리자 및 사용자 계정의 Password가 저장된 파일 

 

a:$6$CLAKjoUA:18764:0:99999:7:::

 

(: 콜론 단위로 끊어 해석한다)
a                           ID
:$6$CLAKjoUA    암호화된 패스워드, sha5412(/etc/login.defs에서 이에 대해 정의함.)
:18764                 마지막으로 패스워드를 변경한 날짜 : 기준일 1970년 1월 1일 이후
:0                         패스워드 최소사용일수 (해당 기간동안은 패스워드 변경불가)
:30                       패스워드 최대사용일수 (해당 기간이 지나면 변경해야함)
:7                         패스워드 만료일전 경고메세지 출력일
:5                         유예기간 패스워드 만료일 후 해당 기간 동안 login 이전에 패스워드 변경 시 다시 로그인 가능하게
:                           계정의 만료일 (기간이 정해진 외부 프로젝트 인력이 조직내부에서 작업할때) 기준일 위와같음
:                           사용 안함

 

 

문제 Q. 유저 ccc의

패스워드 최대 사용일 : 40

패스워드 최소 사용일 : 1,

패스워드 최소길이 : 5 length,

패스워드 만료경고일 : 5일으로 변경

 

 

4. /etc/default/useradd

사용자 계정 생성시 긱본적으로 적용되어야할 정보나 경로가 포함된 파일

 

 useradd defaults file
GROUP=100              <---- GID 정보
HOME=/home            <---- 계정 생성시 해당 경로에 홈디렉터리가 생성된다.
INACTIVE=-1             <---- Password 만료일 비활성화
EXPIRE=                    <---- Password 만료일 설정
SHELL=/bin/bash       <---- 계정 생성시 적용되는 shell
SKEL=/etc/skel           <---- skel의 경로
CREATE_MAIL_SPOOL=yes   <---- 계정 생성시 E-mail 생성 유/무 설정

 

 

문제 Q.기본 로그인 shell sh로 한다. 기본 홈디렉토리를 /home_test 로 한다.

/etc/default/useradd 에서 위와 같이 설정하고 계정을 생성하면 아래와 같이

계정 shell과 홈 디렉토리 위치가 바뀐 것을 알수 있다.

 

 

 

 

5. /etc/login.def

사용자 계정 생성시 필요한 UID , GID 정보가 포함된 파일

 

USERGROUPS_ENAB : 유저 이름과 같은 유저 그룹 생성 여부

 

 

Q1. user id를 생성할 때 홈 디렉터리를 생성하지 않게 한다.

vi /etc/login.defs 를 이용해서 설정을 편집합니다.

실제로 유저 zz의 홈 디렉토리가 안 만들어 진 것을 확인

 

 

Q2. 유저 이름과 같은 유저 그룹을 자동 생성하지 않는다.

 

 

Q3. UID 값은 10000번대 이상으로 자동 생성되게 한다.

UID10000번대 이상이고, GID UID와 같지 않은 것을 볼 수 있다.

 

 

Q4. user mail 디렉토리의 위치는 /mail로 변경한다

           Zz의 메일함이 /mail에 들어와 있다.

 

 

 

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

 

 

 

사용자 계정에 대한 유통기한 설정

 

chage 옵션 [계정명]

-m 정수 패스워드 최소사용일
-M 정수 패스워드 최대사용일
-W 정수 경고메세지 출력일
-I 정수 유예기간
-E /yyyy/mm/dd 계정 만료일 

EX) chage -m 3 -M 30 -W 5 -I 4 -E 2021/06/24 b

 

적용 확인은 아래 명령어를 써서 확인한다.


# chage -l [계정명]

# tail -3 /etc/shadow
# date 
# date -s "2021/06/18 19:00:00"

 

 

Q. user id를 생성할 때 아래와 같이 생성하라

암호 최소 사용일 =5     UID = 2022

   최대사용일 = 30         GID = 2022

   경고메세지 출력일 = 6    HOME = /home_guest

   유예기간 = 5            SHELL = /bin/sh

   계정만료일 = 10         Coment = admin 

  

 

'Linux' 카테고리의 다른 글

Storage 관리-1 (partition - format - mount)  (0) 2022.10.31
파일 속성 분석 (권한)  (0) 2022.10.31
파일 압축 (compress)  (0) 2022.10.30
Vi 편집기  (0) 2022.10.30
Linux 기본 명령어  (0) 2022.10.30