728x90

- 사용자 계정 관리 실습에 이어 그룹 관리 실습 진행

- 아래 GID 값으로 변경 작업

 

사용자 UID GID 보조 그룹 설명 HOME SHELL
user01 1001 1001 wheel   /home/user01 /bin/bash
user02 1002 1002 wheel, adm user02 /home/user02 /bin/bash
user03 1003 1003 10   /home/user03 /bin/bash
user04 1004 1004 10, 2000 guser /home/user04 /bin/bash
user05         /home/user05 /bin/bash

 

 

1. 그룹 생성 및 변경

 

user01 계정의 GID를 1001로 변경

 

 

//그룹 이름이 user01이고 gid의 값이 1001인 그룹 생성

groupadd -g 1001 user01
usermod -g 1001 user01

//user02
groupmod -g 1002 user02

//user03
groupadd -g 1003 user03
usermod -g 1003 user03

//user04
groupmod -g 1004 user04

 

 

 

 

 

728x90
728x90

사용자 계정 관리 명령

 

1. 사용자 계정 정보 수정: usermod [옵션] [로그인 ID]

 

- 옵션

 

옵션 기능
-u UID 사용자 UID 변경
-g GID 사용자 기본 그룹 변경
-G GID 사용자 보조 그룹 변경
-a -G 옵션과 같이 사용, 사용자 보조 그룹 추가
-c 주석 주석 필드 값 변경
-d 디렉토리 사용자의 홈 디렉토리 변경
-m -d 옵션과 같이 사용, 홈 디렉토리 이동
-s 쉘 기본 쉘 변경
-o 사용자가 UID 변경 시 UID 중복 허용
-p 패스워드 패스워드 변경, /etc/passwd의 두 번째 필드
-e 만기일 EXPIRE 값 수정
-f 기간 INACTIVE 값 수정
-L 지정한 사용자를 잠금 상태로 변경
-U 지정한 사용자의 잠금 상태 해제

 

 

2. 사용자 계정 정보 삭제: userdel [옵션] [로그인 ID]

 

1) 사용자 계정 정보 삭제 시 -r 옵션과 함께 사용할 것을 권장

- -r 옵션을 사용하지 않을 경우, 삭제된 사용자의 홈 디렉토리가 남게 됨

- 남아 있는 홈 디렉토리와 파일은 삭제된 사용자와 같은 UID로 사용자를 생성하게 되면

   새로 생성된 사용자가 소유할 수 있음 > 보안상 문제 발생 

 

2) 보안상 소유자가 없어진 파일들을 삭제하는 명령어

 

find / -user [UID] -exec rm -r {} \;

find [경로 옵션] -exec command {} \;

 

 

3) 옵션

 

옵션 기능
-r 홈 디렉토리 삭제
-f 사용자 계정 로그인 중에도 강제로 삭제

 

 

 

그룹 관리 명령

 

1. 그룹 생성: groupadd [옵션] [그룹 이름]

 

1) /etc/group 파일에 그룹이 추가됨

2) 옵션

 

옵션 기능
-g 그룹 생성 시 GID 지정
-o 사용 중인 GID 중복 허용
-r 그룹 생성 시 시스템 그룹으로 생성

 

 

2. 그룹 정보 수정: groupmod [옵션] [그룹 이름]

 

1) 옵션

 

옵션 기능
-g GID 변경
-n 지정된 그룹의 그룹명 변경
-o GID 변경 시 GID 중복 허용
-p 패스워드 변경

 

728x90
728x90

* 스냅샷 복원 후 실습 진행

 

아레 조건으로 사용자 계정 생성

 

사용자 UID GID 보조 그룹 설명 HOME SHELL
user01 1001 10     /home/user01 /bin/bash
user02 2000 2000 wheel user /home/user02 /bin/sh
user03 3000 1000     /home/user03 /bin/csh
user04 4000 4000 10 guser /home/user04 /bin/bash

 

1. 사용자 계정 정보 확인

 

현재 user 계정만 생성되어 있는 상태

 

 

 

2. 사용자 계정 생성

 

1) user01 생성

 

 

2) user02 생성

 

 

3) user03 생성

 

 

4) user04 생성

 

 

5) 생성한 사용자 계정 정보 확인

 

 

 

3. 사용자 계정 정보 수정

 

* testuser01 계정 생성 후 user05로 사용자 정보 수정

사용자 UID GID 보조 그룹 설명 HOME SHELL
user01 1001 1000 wheel   /home/user01 /bin/bash
user02 1002 2000 wheel, adm user02 /home/user02 /bin/bash
user03 1003 1000 10   /home/user03 /bin/bash
user04 1004 4000 10, 2000 guser /home/user04 /bin/bash
user05         /home/user05 /bin/bash

 

1) 사용자 계정 수정

 

usermod -g 1000 -G wheel user01

usermod -u 1002 -aG adm -c user02 -md /home/user02 -s /bin/bash user02

usermod -u 1003 -G 10 -s /bin/bash user03

usermod -u 1004 -aG 2000 user04

usermod -l user05 -md /home/user05 -s /bin/bash testuser01

 

 

2) 사용자 계정 수정 정보 확인

 

 

728x90
728x90

사용자 및 그룹 정보 파일

 

1. 사용자: 실제로 시스템을 사용하려는 사람과 연결된 계정

2. UID

 1) 사용자 번호

 2) 같은 UID를 사용할 경우 같은 사용자로 식별함

 3) 그러나 중복 UID는 보안상 문제를 초래할 수 있으므로 주의

3. 그룹

1) 기본 그룹: 모든 사용자는 최소 하나의 그룹에 소속되어야 함, 필수

2) 보조 그룹: 사용자가 소속되는 또 다른 그룹, 필수 X

 

 

사용자 계정 관련 파일

 

1. /etc/passwd

 

- 시스템에 등록된 사용자 정보를 저장함

- 사용자 계정 정보 구성

 

root x 0 0 root /root /bin/bash
로그인 ID x UID GID 설명 홈 디렉토리 로그인 쉘
사용자 계정의 이름 사용자의 패스워드를 저장하는 필드 사용자 식별 번호(0: root, 1000이후: 일반 사용자) 그룹 식별 번호 사용자 계정에 대한 주석 홈 디렉토리의 절대 경로 기본 사용 쉘

 

2. /etc/shadow

 

- 사용자 암호에 관한 정보 관리

- root 계정으로만 내용 확인 가능

- /etc/shadow 파일의 구조

 

USER HASH LASTCHANGE MIN MAX WARNING INACTIVE EXPIRE BLANK
사용자 이름 해시 알고리즘을 사용하여 생성된 암호 마지막 변경 날짜 최소 사용 기간 최대 사용 기간 만료전 경고 메시지 출력 암호 만료 후 지정된 시간 내로 변경하지 않으면 계정 잠금 계정 만료일 예약된 필드

 

3. /etc/group

 

- 그룹에 대한 정보

- /etc/group 파일의 구조

 

그룹 이름 x GID 그룹 멤버
그룹의 이름 그룹의 암호를 저장 그룹 식별 번호 그룹에 속한 사용자 계정 이름

 

 

사용자 계정 관리 명령

 

1. 사용자 계정 생성: useradd [옵션] [로그인 ID]

 

옵션 설명
-u UID 지정
-o UID 중복 허용
-g [gid] 기본 그룹의 GID 지정
-G [gid] 보조 그룹의 GID 지정
-d [디렉토리명] 홈 디렉토리 지정
-s [쉘] 기본 쉘 지정
-m - 사용자의 홈 디렉토리가 존재하지 않을 경우 생성
- /etc/login.defs 파일의 CREATE_HOME 항목이 yes 로 설정되어야 함, 그렇지 않을 경우 생성되지 않음
-c 설명
-D 기본 값 설정 및 출력
-e [유효 기간] EXPIRE 항목 설정
-f [기간] INACTIVE 항목 설정

 

[실습 1] 옵션을 지정하여 사용자 계정 생성하기

 

1) 사용자 이름: test

2) uid: 2000

3) gid: 1000

4) 보조 그룹: 3

 

 

[실습 2] 옵션을 지정하여 사용자 계정 생성하기

 

1) 사용자 이름: user03

2) uid: 2000

3) 기본 그룹: 10

4) 홈 디렉토리: /home/guest/user03

5) 기본 쉘: /bin/sh

 

 

2. 사용자 생성 시 기본 값 설정: useradd -D

 

1) 기본 설정 항목들은 /etc/default/useradd 파일에 저장됨

 

 

2) 기본 설정 항목

 

 

GROUP HOME INACTIVE EXPIRE SHELL SKEL CREATE_MAIL
기본 그룹 홈 디렉토리의 생성 경로 -1: INACTIVE 비활성화
0: 암호 만료 시 바로 계정 잠금
계정 종료일 기본 로그인 쉘 홈 디렉토리에 복사할 기본 환경 파일의 경로 메일 디렉토리의 생성 여부

 

728x90
728x90

root 패스워드 복구 실습

 

1) systemd 시스템에서 root 패스워드를 복구 할 때 램 디스크 초기화 단계에서 진행

2) 램 디스크 초기화 단계에선 루트 파일 시스템이 /sysroot에 임시로 마운트 되어 있음

3) 읽기 전용으로 마운트 되어 있기 때문에 읽기-쓰기로 다시 마운트 작업 필요

 

 

1. 부트 로더에서 부팅할 커널 항목 선택

 

1) 시스템 부팅 시 방향키를 눌러 커널 항목을 선택

2) 선택된 커널 항목에서 'e'키를 눌러 커널의 설정 값 수정

 

 

 

2. 선택된 커널 항목 편집: rd.break 추가

 

1) linux16으로 시작하는 라인의 마지막에 rd.break 추가

2) rd.break: 램 디스크 초기화를 중단하는 옵션

3) 옵션 추가 후에는 ctrl + x 를 눌러 switch_root# 쉘로 진입

 

해당 위치에 rd.break 추가

 

 

3. 루트 파일 시스템 읽기-쓰기로 다시 마운트

 

1) 램 디스크 초기화 단계에서는 루트 파일 시스템이 /sysroot에 읽기전용으로 마운트 되어 있어 읽기-쓰기로 다시 마운트

2) mount -o rw,remount /sysroot

 

 

 

4. root 패스워드 지정

 

1) chroot: 루트 디렉토리를 변경하는 명령어

2) /sysroot를 루트 디렉토리로 변경

3) passwd: 패스워드 변경

4) chroot /sysroot

 

 

 

5. 자동 레이블 부여 파일 생성

1) chroot 명령을 사용하여 루트 디렉토리를 변경하게 되면 파일에 대한 레이블 정보가 전부 제거됨

2) 따라서 파일에 대한 레이블을 재지정 필요

3) /.autorelabel 파일을 빈 파일로 생성하면 시스템이 부팅 될 때 이 파일을 발견하고 파일에 대한 레이블을 자동으로 부여함

4) 파일에 대한 레이블이 종료되면 해당 파일은 삭제되고 root 패스워드가 복구됨

5) touch /.autorelabel

6) exit

7) exit

 

 

728x90
728x90

리눅스 시스템의 부팅 과정

1) 전원 ON

 

2) 바이오스 단계

- PC에 장착된 기본적인 하드웨어의 상태를 확인한 후 부팅 장치를 선택하여 부팅 디스크의 첫 섹터에서 512 바이트를 로딩함

- 512 바이트: 마스터 부트 레코드(MBR)

- MBR는 부트 로더를 메모리에 적재함

 

3) 부트 로더 단계

- 부트 로더는 부팅할 운영 체제를 선택할 수 있도록 메뉴 제공

- 부트 로더는 리눅스 커널을 메모리에 로딩

 

4) 커널 초기화 단계

- 커널은 가장 먼저 시스템에 연결된 메모리, 디스크, 키보드, 마우스 등 장치들을 검사

- 기본적인 초기화 과정이 끝나면 커널은 fork를 사용하지 않고 생성되는 프로세스와 스레드를 생성함

 

5) systemd 서비스 단계

- 기존의 init 스크립트를 대체한 것으로 다양한 서비스를 동작시킴

- 부팅 메시지 출력, 부트 스플래시 화면 출력

 

6) 로그인 프롬프트 출력

 

 

systemd 서비스

 

1) 리눅스의 init 런레벨

런레벨 의미 관련 스크립트의 위치
0 시스템 종료 /etc/rc0.d
1, S 단일 사용자 모드 /etc/rc1.d
2 다중 사용자 모드(NFS를 실행하지 않음) /etc/rc2.d
3 다중 사용자 모드(NFS 포함) /etc/rc3.d
4 사용하지 않음(예비 번호) /etc/rc4.d
5 X11 상태로 부팅 /etc/rc5.d
6 재시작 /etc/rc6.d

 

2) systemd의 기본 개념

 

- CentOS7부터 본격적으로 기존의 init 스크립트를 대체하기 시작함

- 거의 대부분의 서비스가 systemd 기반으로 변경됨

- systemd 방식의 장점: inetd와 호환성 유지, 셸과 독립적으로 부팅 가능, 마운트 제어 가능, fsck 제어 가능, SELinux와 통합 등

 

3) systemd 유닛

 

- systemd는 전체 시스템을 시작하고 관리하는 데 유닛(units)이라 부르는 구성 요소 사용

- 관리 대상 이름 형태: 서비스 이름.서비스 종류

 

4) systemctl

 

- systemd를 제어함

- 형식: systectl [옵션] [명령] [서비스명]

 

- 옵션

 

옵션 설명
-a 상태와 관계없이 서비스 전체 출력
-t 지정한 종류의 서비스만 출력

 

- 명령어

 

명령어 설명
start 서비스 시작
stop 서비스 정지
reload 서비스의 설정 파일을 다시 읽어옴
restart 서비스 재시작
status 서비스 상태 출력
enable 부팅 시 서비스가 시작하도록 설정
disable 부팅 시 서비스가 시작하지 않도록 설정
is-active 서비스가 동작하고 있는지 확인
is-enabled 서비스가 시작되었는지 확인
isolate 지정한 서비스 및 이와 관련된 서비스만 시작하고 나머지는 정지
kill 서비스에 시그널 전송
mask, unmask 서비스 잠금, 해제

 

 

리눅스 시스템의 종료

 

1) shutdown [시간] [메시지]

 

- 옵션

옵션 기능
-k 실제로 시스템을 종료하는 것이 아니라 사용자들에게 메시지만 전달
-r 종료 후 재시작
-h 종료하며 halt 상태로 이동
-f 빠른 재시작으로 이 과정에서 fsck 생략 가능
-c 이전에 내렸던 shutdown 명령 취소
[시간] 종료할 시간(hh:mm, +m, now)
[메시지] 모든 사용자에게 보낼 메시지

 

2) halt, poweroff, reboot

- 시스템을 종료하거나 재시작하기 위해 사용하는 명령어

- systemctl 명령의 심볼릭 링크

- /var/log/wtmp 파일에 시스템 종료 기록을 남김

 

- 옵션

옵션 기능
-n 재시작이나 종료 전에 sync를 호출하지 않음
-w 실질적으로 재시작하거나 종료하지는 않지만 wtmp 파일에 기록을 남김
-d wtmp 파일에 기록을 남기지 않음
-f 강제로 명령을 실행하며 shutdown을 호출하지 않음
-p 시스템의 전원을 끔

 

3) runlevel 0, 6

 

 

 

 

데몬 프로세스

 

1) 데몬

- 리눅스 백그라운드에서 동작하면서 특정한 서비스를 제공하는 프로세스

 

2) 데몬의 동작 방식

- 독자형: 시스템의 백그라운드에서 서비스별로 항상 동작, 자원 낭비 우려

- 슈퍼 데몬: 평소에는 슈퍼 데몬만 동작 > 서비스 요청 시 슈퍼 데몬이 해당 데몬을 동작 시킴, 응답 시간이 느리지만 효율적인 자원 사용

 

3) 주요 데몬

 

데몬 기능
crond 주기적으로 실행하도록 예약한 명령 실행
dhcpd 동적으로 IP 주소를 부여하는 서비스 제공
httpd 웹 서비스 제공
nfs 네트워크 파일 시스템 서비스 제공
smtpd 메일 전송 데몬
syslogd 로그 기록 서비스 제공
ftpd 파일 송수신 서비스 제공

 

728x90
728x90

* LVM 심화 실습-1에서 찍어두었던 스냅샷으로 복원하여 작업 진행

2. 볼륨 그룹, 논리 볼륨 확장 및 제거

 

1. pv, vg, lv 생성

1) 디스크 정보 확인: fdisk -l 

 

 

2) 물리 볼륨 생성: sdb1, sdb2, sdb3, sdb4

 

3) 볼륨 그룹 생성: mvvg

 

4) 논리 볼륨 생성: lv01, lv02, lv03

 

5) 볼륨 정보 확인

 

 

 

2. 파일 시스템 생성

 

 

 

3. 마운트

 

1) 마운트 포인트 확인

 

 

2) 마운트

 

 

3) 마운트 정보 확인

 

 

 

4. vg, lv 확장

- 논리 볼륨 확장 후에 파일 시스템도 확장해주어야 함

- 사람이 키가 크면 옷이 맞지 않는 것과 같기 때문에

- 파일 시스템은 종류에 따라 다른 명령어 사용

파일 시스템 종류 명령어
xfs xfs_growfs
ext4 resize2fs

 

 

1) mvvg 볼륨 그룹에 /dev/sdb3 추가

 

 

2) lv01 논리 볼륨 5G로 확장

 

 

3) xfs 파일 시스템 확장

 

 

4) lv02 6G로 확장

 

 

 

5) ext4 확장

 

 

6) 정보 확인

 

 

 

5. /dev/sdb4 볼륨 그룹 제거

 

- 볼륨 그룹 축소는 확장과 달리 준비 단계 필요: 물리 볼륨 이동

- 볼륨 그룹에서 사용 중인 물리 볼륨의 데이터를 다른 물리 볼륨으로 이동시키지 않고 디스크를 제거할 경우 데이터 손실 가능성이 높아짐

- 따라서 여분의 물리 볼륨에 데이터를 이동시켜야 함

 

1) 물리 볼륨 옮기기

* 에러 확인: 물리 볼륨의 공간 부족으로 옮기기에 실패

 

 

2) 볼륨 그룹 확장 후에 물리 볼륨 옮기기

 

 

3) /dev/sdb4 제거

 

728x90
728x90

1. 물리 볼륨(PV), 볼륨 그룹(VG), 논리 볼륨(LV) 생성

 

사전 실습 환경 구성

1) 하드디스크 추가: 21GB

2) 파티셔닝: 4GB, 4GB, 6GB, 6GB

3) 파티션 Id: 8e

 

 

 

lvm 명령어

1) pvcreate [장치명]

2) vgcreate [vg명] [pv명]... -s [PE 사이즈]

3) lvcreate [vg명] -n [lv명] -L [실제 크기], -l [PE 갯수]

 

4) 물리 볼륨 삭제: pvremove [pv명]

5) 볼륨 그룹 삭제: vgremove [vg명]

6) 논리 볼륨 삭제: lvremove [lv경로]

 

7) 볼륨 그룹 확장: vgextend [vg명] [pv명]...

8) 볼륨 그룹 축소: vgreduce [vg명] [pv명]

9) 물리 볼륨 내용 이동: pvmove [pv명]

10) 논리 볼륨 확장: lvextend [lv경로(장치명)]

10-1) lvextend lv경로(장치명) -r: 논리 볼륨 확장과 파일 시스템 확장이 자동으로 됨

 

11) xfs 파일 시스템 확장: xfs_growfs [마운트 포인트]

12) ext4 파일 시스템 확장: resize2fs [lv 경로]

 

 

1. 물리 볼륨 생성: /dev/sdb1, /dev/sdb2, /dev/sdb3, /dev/sdb4

 

 

 

2. 볼륨 그룹 생성: vg0

 

 

 

3. 논리 볼륨 생성: lv01, lv02

 

 

 

4. 논리 볼륨에 xfs 파일 시스템 생성 후 마운트

1) 파일 시스템 생성: lv01, lv02

2) 마운트: disk1, disk2

 

 

 

5. 논리 볼륨에 xfs 파일 시스템 생성 후 마운트: lv03, disk3

 

 

 

6. 생성한 lv, vg, pv 모두 삭제

*생성할 때와 반대 순서로 삭제 진행

 

1) 마운트 모두 해제

 

2) 논리 볼륨 제거

 

3) 볼륨 그룹 제거

 

4) 물리 볼륨 제거

 

 

7. 현재 상태 스냅샷 찍기

728x90

+ Recent posts