Kylian 태그 관리 글쓰기 방명록
2023-06-14 21:40:54

CentOS-7 기반으로 사용자 계정을 만들었을 때 특징에 대해 공부했습니다. 

사용자 계정을 만드는 명령어는 다음과 같습니다.

useradd /usermod

계정을 생성하면 총 6개의 파일이 만들어집니다.

1. /etc/passwd

/etc/passwd에는 시스템에 등록된 사용자의 정보들이 담겨있습니다.

파일의 이름이 passwd라서 패스워드 정보가 있는 줄 알았으나 사용자의 패스워드는 /etc/shadow에 저장된다고 합니다. 

/etc/passwd를 열어보면 아래와 같이 사용자의 정보가 있습니다.

 

1. /etc/passwd
  - 원본: root:x:0:0:root:/root:/bin/bash
  - 분석: 첫째 줄의 의미를 확인해봅니다. 각 필드는 콜론(:)으로 구분됩니다.

문자 필드 설명
root 사용자 계정명 맨 앞의 필드는 사용자의 계정 명을 나타냅니다.
:x 패스워드 x는 사용자의 패스워드가 /etc/shadow에 암호화되어 저장되어 있다는 뜻입니다.
:0 UID 사용자의 user id이며 관리자 계정은 UID가 0이고
일반 사용자는 1000부터 시작합니다.
명령어: -u
:0 GID 사용자의 group id이며 관리자 계정은 UID가 0이고
일반 사용자는 1000부터 시작합니다.
명령어: -g       /        *-G: 추가그룹
:root comment(설명) 사용자와 관련된 기타 정보로 일반적으로 사용자의 이름입니다.
명령어: -c
:/root 홈 디렉토리 사용자의 홈 디렉토리를 의미합니다.
관리자 계정의 홈 디렉토리는 /root
일반사용자의 홈 디렉토리는 /home/ 의 하위에 계정이 위치합니다.
명령어: -d
:/bin/bash 로그인 쉘 사용자가 로그인 시 사용할 쉘을 의미합니다. 기본적으로 성능이 우수한 bash 쉘을 사용합니다. 기본 쉘도 사용가능합니다(/bin/sh)

기타 로그인 쉘
/bin/false      로그인 불허 이유 설명 안함.
 /sbin/nologin        로그인 불허 이유 설명함.
   


root  ID
:x 패스워드
:0 uid -u
:0 gid -g -G : 추가그룹
:root comment(설명) -c
:/root 홈 디렉토리 -d
:/bin/bash login shell -s    /bin/bash   /bin/sh
                                                           /bin/false       로그인 불허 이유 설명안함
                                                          /sbin/nologin 로그인 불허 이유 설명

 

과제) 사용자 a를 생성하면서 uid 11000, gid 11000 / 홈 디렉토리는 /home_1/a
코멘트는 sales 로그인은 불허합니다. 단 접속하지 못하는 이유는 설명합니다.

 

useradd -u 11000 -d /home_1/a -c sales -s /sbin/nologin a

=> 사용자 계정 a를 만들면서 uid 11000대로 시작, 홈 디렉토리는 /home_1/a 위치에,
코멘트 사용자 이름 sales, 로그인 불허하면서 이유를 설명합니다.

 

echo 'It1' | passwd --stdin a
a 계정의 패스워드는 'It1'로 합니다.

 

tail -5 /etc/passwd
5줄까지 사용자계정의 정보를 보여 줍니다.

 

su - a
일반사용자로 로그인하면
"This account is currently not available."
이런 메시지가 뜬다

=> /sbin/nologin : 로그인을 허용하지 않으면서 이유를 설명합니다.

 

usermod -s /bin/false a
useradd와 usermod는 같다, login shell도 로그인을 허용하지않지만 이유는 설명하지 않습니다.

 

[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
접속할 수 있는 shell의 종류(sh, bash)를 보여줍니다.

 

[root@localhost ~]# echo $SHELL
/bin/bash
현재 사용하고 있는 shell을 보여줍니다.

 

chsh -s /bin/sh root
=> 사용할 shell을 기본 쉘로 변경하는 명령어입니다.
Changing shell for root.
Shell changed.

변경하면 이런 문구가 뜹니다.

 

[root@localhost ~]# su - root
마지막 로그인: 화  6월 13 20:08:04 KST 2023 10.0.0.253에서 시작 일시 pts/0
-sh-4.2# exit
shell 변경 후 로그인 시 기본 shell로 변경되어 로그인됩니다.

 

# shell을 변경하면 다음 로그인 시 계속 변경된 쉘로 입력해야 되기 때문에 번거로움을 피하기 위해

쉘을 변경해줍니다.

 

[root@cont ~]# chsh -s /bin/bash root
Changing shell for root.
Shell changed.

 

 

2. /etc/group

 

3. /etc/shadow

  - 암호화된 패스워드와 패스워드 설정 정보가 담겨있습니다. 

 

4. /etc/default/useradd

  - 사용자 계정을 생성할 때 기본 설정 값을 볼 수 있습니다.

[root@localhost ~]# vi /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home => 사용자 계정을 만들때 위치
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash => 사용자 계정으로 사용할 shell
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

 

5. /etc/login.defs

CentOS-7
계정 생성 후 id a 명령어 입력
33번 UID 최소값 1000
42번 GID 최소값 1000
최소값을 변경하면 계정 최소값이 변함.

# Rocky9
144번 UID 최소값 1000
157번 GID 최소값 1000

 

6. /etc/skell

Kylian. Designed by bskyvision.