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
'주요 개념 > 리눅스' 카테고리의 다른 글
[Linux] 리눅스 VI / VIM 편집기 (1) | 2023.11.30 |
---|---|
Linux 리눅스 프로세스 확인 명령어(ps, ps -ef, grep) (0) | 2023.11.18 |
VMware Centos7 Nginx 설치하기 (0) | 2023.11.13 |