2과목 - 리눅스 시스템 관리
1. 일반 운영 관리
[사용자 관리]
- /etc/passwd
: 시스템에 로그인하여 자원을 이용할 수 있는 사용자의 목록을 저장하고 있는 정보파일
: 세번째 필드 값 - root 사용자면 '0'
*passwd -d lin : lin 사용자는 패스워드 입력 없이 로그인 가능하다. (delete)
*passwd -e ihduser : ihduser가 다음 로그인 시에 패스워드를 반드시 바꾸도록 설정 (edit?)
- /etc/shadow
: 두번째 필드인 패스워드 부분 암호화
: 계정만기일 필드 값은 8번째 필드
- /etc/login.defs
: 사용자의 패스워드에 적용되는 해시 알고리즘의 이름을 확인 할 수있는 파일 (* /etc/shadow 아님)
: 사용자 추가할때 할 당되는 UID 값을 1000번부터 부여되도록 지정할 수 있는 파일
- /etc/default/useradd
: 계정 생성 시 기본적으로 적용되는 설정 파일,
: 사용자 추가 시에 생성되는 홈 디렉토리를 하위디렉터리로 생성되도록 설정
: 사용자 추가 시 2020년 12월 31일 까지만 로그인 가능하도록 함
- /etc/skel - 사용자 생성 시에 제공되는 파일 및 디렉터리가 들어있는 디렉토리, 사용자 추가 시에 제공되는 파일이나 디렉터리 확인
* /etc/default/useradd 는 계정 생성시 설정, /etc/skel 는 사용자 추가 시 제공
- usermod
: 사용자 계정 관리
: 사용자의 셸, 홈 디렉토리, 그룹, UID, GID 등을 변경하는 명령어
* usermod -l 사용자 아이디 변경 (login)
ex) usermod -l yuloje posein (posein 아이디를 yuloje로 변경)
* usermod -L 사용자아이디
: 사용자의 패스워드에 잠금(Lock)을 걸어 로그인을 막는다
(= /etc/shadow의 두번째 필드인 패스워드에 맨앞 !을 덧붙여서 로그인을 막는다)
*usermod -G 그룹명 사용자아이디
: 사용자의 그룹명 추가 (* 소문자 g아님)
* ihduser 사용자의 계정만기일을 2020년 12월 31일로 지정하는 명령?
usermod -e 2020-12-31 ihduser (edit?)
* ihduser는 kait 그룹의 일원이다. 추가로 admin 그룹의 일원이 되도록 작업한다.
usermod -G admin ihduser (*groupmod 아님, -g 아님)
[그룹 계정 관리]
- /etc/group
: 등록된 그룹 목록
ex) slocate:x:21: (그룹이름: 패스워드=x: 그룹GID : )
- gpasswd
: 그룹의 패스워드 설정
: 그룹 관리자를 지정 (grpconv, newgrp, grpchk 아님!)
*특정 사용자가 자신이 속한 주(primary) 그룹을 다른 그룹으로 변경할때 사용하는 명령? newgrp
(* groupmod, gpasswd, groups 아님!!)
* ihd라는 그룹명을 kait로 변경하는 명령 ?
groupmod -n kait ihd (* -N 아님!, usermod 아님 , -l 아님) name?
[사용자 관련 명령어]
- users
: 로그인 되어 있는 사용자 아이디 출력
ex) jonn lin root
- who
: 로그인 되어 있는 사용자 출력
ex)root tty1 2017-07-25 13:24
- whoami
: 실질적으로 사용중인 권한자
ex) root
- w
: 로그인 되어 있는 사용자와 사용자가 수행중인 작업
- logname
: 사용자의 로그인 계정 출력
- id
: 시스템에 등록된 아이디에 대한 정보 출력
: UID, GID, 속한 그룹 정보
* 로그인된 사용자 확인 명령어 인 것 ? w, who, users (logname 아님!!)
[파일 시스템 관리]
- 특수 권한
Set-UID : passwd 명령 설정, /bin/su 부여됨, /usr/bin/passwd 부여됨 ( /etc/shadow에 부여 안 됨)
Sticky-Bit : /tmp 디렉토리에서 확인, 임시저장 디렉토리임, 일시적으로 파일을 생성하고 삭제하도록 이용됨, 삭제하지 못하도록 하는 권한 설정 하는 곳, 문자 모드인 경우엔 t 를 사용
- chmod 권한의 표시 : r, w, x사용자 지정 : u, g, o, a
u (user) - 파일의 소유자 접근 권한 지정
g (group) - 그룹에 속한 사용자들에 대한 접근 권한 지정
o (other) - 다른 사용자들에 대한 접근 권한 지정
a (all) - 모든 사용자설정 기호 : +, -, =
* /data 디렉터리에 여러 사용자가 자유롭게 파일 생성 가능 하나 삭제는 본인 소유의 파일만 가능
: chmod o+t /data
- chown (chage owner)
: 파일이나 디렉터리의 소유권 및 그룹 소유권 변경
* lin.txt 파일소유자를 idhuser, 소유 그룹권한은 kait로 변경하는 명령?
chown idhuser.kait lin.txt
- 심볼릭 링크 ln
ex ) ln joon.txt j ( joon.txt 파일의 하드링크 파일인 j를 현재 디렉토리에 생성 )
ln -s joon.txt j ( joon.txt 파일의 심볼릭링크 파일인 j를 현재 디렉토리에 생성 )
* /etc/xinetd.d 디렉터리를 현재 디렉터리에 x로 연결하여 손쉽게 디렉터리를 이동(심볼릭링크)하려고 할 때 설정하는 명령어 ?
ln -s /etc/xinetd.d x
- /etc/fstab
: 파일 시스템에 대한 다양한 정보, 파티션 정보 변경, 디스크 추가 할때 등록해야만 자동 마운트됨
* 새롭게 생성된 파티션 /etc/fstab 파일에 등록
/dev/sdb1 /home2 ext4 defaults 1 1
* 디스크 용량을 제한하기 위해 쿼터 설정
/etc/fstab 파일 4번째 필드에 usrquota 옵션을 추가한다 (5번째아님!!, userquota 아님!)
* 새로운 디스크 추가 할당하고 리부팅 하였으나 해당 디스크가 마운트 되어 있지 않았다. 리부팅 후에도 자동으로 마운트되도록 설정하는 파일? /etc/fstab (*proc/partition 아님!!)
- df (disk free)
: 현재 마운트된 디스크의 크기, 사용량, 남아있는 용량
: 분할된 디스크의 파티션 별로 사용량 확인 (*du 아님)
- du (disk usage)
: 파일이나 디렉터리 들이 디스크에서 차지하고 있는 크기 출력
du -sh ~posein (posein 사용자의 총 사용량 출력)
- dd (Data Dumper)
: 디스크를 이미지 형태로 백업하거나 파일의 포맷, 즉 형식을 바꾸는 명령
: 파티션이나 디스크 단위로 백업할때 사용
dd if=a.txt(입력파일) conv=ucase(변환하는 데이터 유형) of=b.txt
(현재 디렉터리에 있는 a.txt 파일의 모든 글자를 대문자로 변환하며 b.txt 파일을 생성한다)
dd if=/dev/sda of=/media/disk1.img bs=1M count=620
(특정 디스크의 내용을 백업 할때 CD로 구울 수 있는 620MB 크기로 나눈 것, 스왑 파일 생성)
- parted
: 디스크의 파티션 분할 할때 사용 명령어
[스왑 생성]
- mkswap
: 스왑 파티션이나 스왑 파일을 생성하는 명령어
- swapon
: 스왑 파티션이나 스왑 파일릉 활성화
-swapoff
: 스왑 파티션이나 스왑 파일릉 중지
[디스크 쿼터]
- edquota (edit quota?)
: 사용자나 그룹에 디스크 쿼터를 설정 할때 사용하는 명령어
: 사용자의 디스크 사용량 제한 (setquota X)
edquota posein (posein 사용자의 쿼터를 할당한다)
- reqquota (represent quota?)
: 파일 시스템에 설정된 쿼터 정보 출력
-quota
: 사용자나 그룹 단위로 쿼터 정보 출력
- quotacheck
: 파일 시스템을 검사하여 aquata.user와 같은 quota기록 파일 갱신
[파일 관련 명령어]
- touch
: 파일의 최종 접근 시간, 수정시간 등 타임스탬프를 변경 ex) touch -t 2021221 lin.txt (수정시간 변경)
: 크기가 0인 빈 파일 생성
- grep
ex) grep -v linux lin.txt (lin.txt 에서 linux라는 문자열이 없는 줄을 출력)
ex) grep '^linux' 파일명 (줄의 시작이 linux인것)
- head : 텍스트 파일의 첫부분, 기본 10줄
- tail : 텍스트 파일의 끝 부분, 기번 10줄
ex) 30행인 파일 11번째 부터 20번째 행까지 출력?
head -n 20 lin.txt | tail
- stat
: change time 과 같이 파일에 대한 시간 관련 정보인 타임스탬프 정보를 확인하는 명령
[프로세스 관리]
- 프로세스
: 값이 작을 수록 프로세스의 우선순위 높다
: 프로세스에 할당 되는 NI 값 범위 -20 ~ 19
- /proc
: 시스템에 동작중 인 프로세스의 상태 정보 알 수 있음
- /proc/PID
프로세스 생성 시 PID가 1222 할당되었다면, /proc/1222 디렉터리 안에 기록
* PID가 1222인 프로세스 실행파일명
: /proc/1222/exe
(/proc/PID/1222/exe 아님!)
- cron
초 : 분 : 시 : 일 : 월 : 요일 : 사용자명 : 명령어
- cron 사용자 제한
: /etc/cron.deny 파일에 사용자 존재 상관없이, /etc/cron.allow 파일에 등록된 사용자만 사용가능
ex) # cat /etc/cron.deny
posein
# cat /etc/cron.allow
posein
-> 일반 사용자 중에서는 posein만 cron 사용 가능하다
- kill
: 프로세스에 특정한 시그널 보내는 명령
kill [옵션] PID 또는 job_number ( * 프로세스명 아님!!)
*시그널이름과 번호를 확인하는 명령 ? kill -l
-killall
: 여러 프로세스 한번에 종료시킬 때
killall [옵션] 프로세스명
ex ) killall httpd
- jobs
: 백그라운드로 실행 중인 프로세스 나 현재 중지된 프로세스 목록 출력
- bg
: 포어그라운드 프로세스를 백그라운드 프로세스로 전환
- nice
: 프로세스의 우선순위 변경, NI 값 설정할 때 사용
: -20 ~ 19 까지 범위 지정 가능
nice [옵션] 프로세스명 (* 숫자아님!!)
ex ) nice --10 bash (bash 의 NI 값을 10만큼 감소시켜 우선순위 높인다)
nice -10 1222 (숫자X)
- renice: 실행 중인 프로세스의 우선순위 변경 할때 사용: 주로 PID 사용renice [옵션] NI 값 PID
ex ) renice 1 987 -u daemon root -p 1222 (PID가 987 , 1222인 프로세스와 사용자가 daemon , root인 모든 프로세스의 NI 값을 1로 지정한다
- nohup
: 작업 중인 터미널 창이 닫혀도 백그라운드 프로세스로 작업
- pgrep
: 프로세스를 이름 기반으로 검색하는 명령으로 PID 값 출력
pgrep [옵션] 프로세스이름 (* 숫자 아님!!)
- pkill
: 프로세스 명을 사용해서 특정 프로세스에 시그널 보냄
ex) pkill -9 -u ihduser (ihduser 사용자의 모든 프로세스를 강제종료하는 명령어)
* 프로세스명 으로 검색? killall, pgrep, pkill (* kill은 PID로 검색)
* 프로세스 우선순위 변경 관련? top, nice, renice ( * jobs는 관련없다)
[소프트웨어 설치]
- rpm
* 질의 모드
rpm -qc 파일명 : 패키지 관련 환경 설정 파일이나 실행 데몬 스크립트 출력 (query , config )
rpm -qf 경로 : 경로 파일을 설치한 패키지 정보 출력 ( query, file ) * qfp 없음! (* dpkg - S와 같은 역할)
rpm -q --changelog 파일명 : 파일명이 바꾼 내역을 최근 부터 연대순으로 보여줌
rpm -qp 패키지파일명 *.rpm : 패키지 파일이 많은 경우 각 파일 앞에 패키지 이름을 덧붙여 출력 (query, package)
* rpm 파일을 설치하기 전에 어떠한 파일이 설치되는지 미리 확인, 오류 확인을 위해 해당 패키지 파일이 설치하는 파일 및 디렉터리 확인
rpm -qlp rpm파일명 .rpm( query list package?)
* 검증모드
rpm -V 파일명 : 파일 검증 시 사용하는 기본옵션 (verify)ex ) rpm -V vsftpdS.5..T.c /etc/vsftpd/vsftpd.conf
-yum
yum search 문자열 : 문자열이 포함된 패키지 찾음 (* find, info 아님!!)
yum remove/ erase 패키지명 : 패키지 삭제시 사용 ( * delete 아님!)
* 온라인 기반 패키지 관리 기법
yum : redhat 계열
apt-get : debian 계열
zypper : susu 리눅스
( * yast : susu 리눅스 사용, 오프라인!)
[소스 코드 컴파일]
- tar
tar zxvf tar.gz 파일명 : tar.gz 파일 압축해제
tar jxvf tar.bz2 파일명 : bzip2 로 압축된 파일 해제
tar Jxvf tar.xz 파일명 : tar.xz 파일 압축해제
tar jtvf tar.bz2 : 현재 소스파일 디렉토리에 풀지 않고 내용만 확인
*다수의 텍스트 파일이 10MB로 묶여있는 tar 파일을 압축하려고 하는데 가장 압축률 좋은 명령? xz (* gzip, bzip2,compress 아님!!)
[라이브러리]
- /etc/Id.so.conf
: 기본적으로 사용되는 /lib, /usr/lib, /lib64 공유 라이브러리 디렉터리 이외에 추가로 다른 디렉토리 등록시 사용하는 환경 설정 파일
ex) MySQL을 소스로 설치하여 생성된 /usr/local/mysql/lib 를 공유 라이브러리 디렉터리로 추가 등록하려고 한다 -> /etc/Id.so.conf에 등록
- /etc/Id.so.cache
: /lib, /usr/lib 디렉터리 뿐만아니라 /etc/Id.so.conf 파일에 명시한 라이브러리 파일 목록 정보 담고 있는 파일
[공유 라이브러리 관련 명령어]
- Idconfig
: 공유 라이브러리 관련 정보를 갱신하고 설정하는 명령, /etc/Id.so.conf 파일의 내용을 갱신할때 사용
- Idd
: 공유 라이브러리 정보를 출력하는 명령
(* blkid , Idconfig, id.so.conf 아님!!!)
2. 장치 관리
[모듈]
- 커널은 시스템 장치를 제어하는 기능을 내장, 하나의 덩어리 형태로 구성
/lib/modules/커널 버전/kernel 디렉터리 안에 생성 되어 있음 (사용가능한 모듈 확인가능)
* 모듈이 커널에 내장되는 방식은 모놀리식 방식 아님!!!
리눅스 모듈의 경우 C컴파일러로 만들어진 '*.ko' 파일형태이다
- insmod (insert module)
: 커널에 모듈을 적재하는 명령
- rmmod (remove module)
: 커널에서 모듈을 제거하는 명령
- modprobe
: 커널에 모듈을 적재하거나 제거하는 명령
: 사용가능 한 모듈 목록 출력 (* modinfo : 모듈 파일 정보출력)
* 지정한 모듈과 의존성 있는 모듈 제거 -> modprobe (* depmod 아님! depmod 는 의존성 기록 파일 갱신)
* 사용가능한 모듈 목록 출력 -> modprobe (* modinfo 아님!)
* e1000라는 모듈 제거
rmmod e1000
modprobe -r e1000 (* -e 아님!!!)
- modinfo
: 모듈 파일에 대한 정보 출력
ex ) 파일네임, 라이센스, 버전, 디스크립션, 아서, 등등 (* lsmod 아님)
- lsmod
: 리눅스 커널에 적재된 모듈 정보 출력
- 모듈 의존성 파일 : modules.dep
ex) kernel/arch/x86/crypto/ablk_helper.ko: /kernel/crypto/cryptd.ko
- 모듈 의존성 관리 명령어 : depmod
/lib/modules/커널버전/modules.dep
* 모듈 간 의존성 기록 파일 갱신
depmod -A 파일명
*모듈간 의존성이 변경되면 modules.dep 파일(* modprobe.conf 아님!! )의 내용이 변경되어야 하며, 이 파일을 갱신하는 명령어는 depmod 이다 (* modprobe 아님!!)
[커널]
- 커널 컴파일 주요 도구
make menuconfig : 텍스트 기반의 컬러메뉴 제공, 커서이용해 이동, 가장 보편적 사용
make xconfig : X 윈도 환경의 Qt 기반 설정도구
make gconfig : X 윈도 환경의 GtK+ 기반 설정도구
* 컴파일 clean 도구 중 강력한 순서 : make clean > maker mrproper > make distclean
- 커널 컴파일 과정
make mrproper : configure 작업을 통해 생성된 오브젝트 파일뿐만 아니라 config파일, 다양한 백업 파일 등도 제거한다.
*커널 소스 파일 압축 해제 -> 커널 소스의 설정값 초기화(make mrproper) -> 커널 컴파일 옵션 설정 작업(make menuconfig) -> 커널 이미지 파일 생성 작업( make bzlmage) -> 커널 모듈 생성을 위한 컴파일 작업( make modules) -> 커널 모듈 설치 작업(make modules_install) -> 커널 모듈 파일 복사, grup.conf 파일수정(make install) -> 새로운 커널 사용을 위한 시스템 재부팅
* 커널 컴파일을 수행할때 모듈을 제외하고자 하는 명령어? make config, make menuconfig, make xconfig (*make modules_install 아님!)
-커널 버전 확인
: uname -r (*-o 아님!)
* 특정 프로그램을 설치 할때 관련 옵션 확인?
./configure --help
* 커널 컴파일 수행 전 관련 도움말?
make help
* 커널 변수을 제어하여 TCP 연결 상태를 3시간동안 유지하도록 변경
echo 10800 > /proc/sys/net/ipv4/tcp_keepalive_time
- 보통 코드 컴파일 과정 : 압축풀기 -> 이동 -> configure -> make -> make install
- Mysql 컴파일 과정 : 압축풀기 -> 이동 -> cmake -> make install
-커널 컴파일 위해 소스 다운하는 디렉터리
: /usr/src/kernels
[주변 장치 관리]
-프린터
: CUPS 시스템 추가
*CUPS
: 애플이 개발한 오픈 소스 프린팅 시스템, 유닉스 계열 운영 체제의 시스템을 프린트 서버로 사용가능하게 해줌
: 로컬에 직접 연결한 프린터를 네트워크 프린터처럼 설정 가능
-프린터 관련 명령어
BSD 계열 : Ipr, Ipq, Iprm, Ipc 등
System V 계열 : Ip, Ipstat, cancel
* 계열이 다른 명령어는? Ipr
- Ipr
: 인쇄 명령
* lin.txt 라는 문서를 Ip 라는 이름 프린터로 2장 출력
Ipr -# 2 -P Ip lin.txt (Ip, Ipc , Ipq 아님!)
-Ipq
: 프린터 큐에 있는 작업 목록 출력
-Iprm
: 프린터 큐에 대기 중인 작업을 삭제
-Ipc
: 프린터나 프린터 큐 제어
- Ip
: 인쇄 명령 , Ipr 과 비슷
- Ipstat
: 프린터의 큐의 상태 확인, Request_ID 확인 (* ip, ipc, cancel 아님!)
* 프린터 관련 프로토콜인 IPP(Internet Printing Protocol) 가 사용하는 포트번호 ? 631
-사운드 카드
ALSA : 다수의 사운드 장치 관리, GPL 및 LGPL 라이선스 기반
OSS : 리눅스 및 유닉스 계열 운영체제 , POSIX 기반, 초기엔 Free Software였으나 사유화되면서 다양한 라이센스 기반 배포
* ALSA와 OSS 차이 구분하기!
- 스캐너
SANE : 평판 스캐너, 핸드 스캐너 , 비디오 캠 등 이미지 관련 하드웨어 사용 해주는 API
* 자동 문서 공급 장치가 장착된 스캐너에서 스캔할 때 사용 하는 명령? scanadf (*xcam , scanimage, sane-finc-scanner 아님!!!)
* 프린터, 사운드 카드, 스캐너 비교!!
3. 시스템 관리 및 보안 관리
[시스템 로그]
- rsyslog
: rsyslogd 데몬이 동작하면서 로그를 기록함
: syslog를 대체하는 시스템 로그 및 커널 메시지 관련 데몬으로 최근 리눅스는 이 로그 데몬을 사용함. 멀티스레드를 지원하도 TCP 프로토콜도 지원, 아울러 MySQL, PostgreSQL, Oracle과 같은 데이터베이스 로그 관리도 가능하다.
* rsyslog 생성되는 로그 저장 위치 : /etc/log (*/var/rsyslog/log 아님!!)
- /etc/rsyslog.conf
: rsyslog 환경 설정 파일
ex ) *.emerg :omusrmsg:* -> 모든 emerg 수준 이상의 문제가 발생하명 모든 사용자에게 메시지 전달
*.emerg /log/emerg.log -> emerg수준의 문제가 발생되면 /log/emerg.log파일에 기록
- logrotate
: 로그 파일을 여러개로 분할
시스템과 관련된 기본적인 로그 설정 - /etc/logrotate.conf ( * /etc/logrotate/logrotate.conf 아님!!)
응용 프로그램 로그 관리 디렉토리- /etc/logrotate.d
현재 리눅스 - /etc/cron.daily 관리 cron에 의해 스케줄링 (* /etc/crontab 아님!!)
*# cat ( /etc/logrotate.conf )
weekly (daily, weekly, monthly, yearly에따라 로테이트 수행, 분은 없음!!)
errors
root
rotate 4
create
[로그 관련 파일]
- /var/log/dmesg
: 시스템이 부팅 할때 출력되었던 로그 기록, 커널 부트 메시지 로그
- /var/log/boot.log
: 부팅 시 발생되는 메시지 기록, 부팅 동작 데몬 관련 정보기록
- /var/log/lastlog
: 접속한 각 사용자의 마지막 정보
ex) loglog -t 3 (3일이내 마지막 로그인 사용자 정보 출력 )
- /var/log/wtmp
: 접속한 사용자 기록, 시스템을 재부팅 한 기록 등 로그 (*부팅은 dmesg, 재부팅은 wtmp)
- /var/log/btmp
: 접속이 실패한 경우 로그 ., 바이너스 파일
<-> lastb
: 로그인 성공할 경우 기록 확인
ex) lastb 사용자명
- last
: 재부팅한 기록을 가장 쉽게 확인
- /var/log/xferlog
: ASCII 형태의 로그파일
* 전송된 지시를 나타내는 영역은 direction이다. 사용자가 어떤 형태로 login 했는지를 나타내는 영역은 access-mode이다. special-action-flag 영역에서 _는 어떠한 action 도 발생하지 않은 경우를 뜻한다.
- dmesg
: 커널링 버퍼의 내용을 출력하고 제어, 커널의 동작과 관련된 메시지 기록
[시스템 보안]
- ssh
: ssh2는 ssh1을 개선 한 것, ssh2는 이중 -암호화 RSA 키 교환, 다양한 키 - 교환 방식 지원 (* DSA 아님!)
-SSH 특징
1) 패킷을 암호화 해 안전
2) 패스워드 없이 로그인 가능
3) rsh 처럼 원격 셀 제공
4) 원격 복사(scp) 제공
5) 안전한 파일 전송(sftp) 지원
6) IPv6 주소체계에서도 접속가능
- ssh 서버 설정
: ssh 서버의 환경 설정 파일은 /etc/ssh/sshd_config ( * /etc/rc.d/init.d/sshd 아님!!!)
*ssh 명령으로 다른 시스템에 패스워드 없이 바로 로그인
scp ./ssh/id_rsa.pub ihd.co.kr:./ssh/authorized_keys
[파일 시스템 보안]
- ACL (Access Control list)
: 파일이나 디렉터리에 접근 권한을 제어할 수 있도록 만든 시스템
*setfacl : 파일이나 디렉터리 접근 권한 리스트 설정 명령, root만 사용가능
ex) setfacl -R -m g:docker:rwx docker/
[주요 보안 도구]
- nmap (network mapper)
: 시스템 서비스 중인 포트 를 스캔하여 관련 정보 출력, 불필요하게 작동하고 있는 서비스 포트 확인
-tcpdump
: 패킷들의 헤더 정보 출력
: 특정 포트를 이용하는 패킷의 트래픽을 모니터링하고 관련 정보를 파일에 저장
- tripwire
: 파일의 변조 여부 검사
: 1992년 퍼듀 대학의 컴퓨터 보안 전문가인 Eugene Spafford 박사와 대학원 생인 Gene Kim 에 의해 개발 되었다.
- nessus
: 서버 보안의 취약점 검사
* nmap, tcpdump, tripwire, nessus 차이 구분하기!
-SELinux (Security Enhanced Linux)
: 기본적인 적용 확인 및 변경 - /etc/selinux/config (또는 /etc/sysconfig/selinux)
: getenforce, setenforce 명령으로 확인 및 설정 (* getenforce : SELinux 설정 상태 확인)
: system-config-seliux 라는 도구로 설정 가능( * system-config-window 아님!)
: X 윈도 기반 도구 사용가능
* setenforce 1 ( 비활성화된 SELinux 활성화)
- John the Ripper
: 사용자 보안 강화를 위해 단순한 패스워드 설정한 사용자를 찾아서 경고 조치
[시스템 백업]
- cpio (copy input to output)
: tar 보다 빠르다
: 증분 백업 기능 지원안함!!!!
* 장치 파일이나 네트워크 파일 등의 특수 파일도 백업이 가능 하고, 백업본의 크기도 작고 백업본에 손상된 부분이 있더라도 손상된 부분을 제외하고 나머지 부분을 복구한다. 어울러 기존의 명령어를 사용하여 백업을 진행하므로 다양한 조건을 활용하여 백업이 가능하다
-t | 내용만 확인할때 사용 (--list) |
-d | 필요한 경우 디렉토리 생성 |
-i | 표준입력 받을때 사용, 백업한 자료를 불러올때 사용(--extract) |
-b 는 없음!!! |
ex) cpio -icvf < conf.cpio : conf.cpio의 백업된 데이터의 내용만 확인 (verbose, list)
-dump
: 파티션 단위로 백업
- restore
: dump로 백업한 내용을 복원할때, 상호대화식 복구 프로그램
(* dd, cpio, rsync 아님!!!)
* restore -if backup.dump(일부만 복원)
- rsync (remote sysnchronous)
: 원격지의 파일들을 동기화, 처리속도 빠름
1) 링크된 파일이나 디바이스 파일 복사 가능, 소유권 및 허가권 유지
2) ssh나 rsh 을 이용하여 전송 가능 하고, root 권한 필요치 않음!!
3) 이전 받은 백업본 삭제하고 원본과 항상 똑같이 백업 설정 가능
4)데이터 압축허여 전송 가능 , 심볼릭링크 및 파일 복사 가능
5) 증분백업 가능, 하드링크 복사 X!! (보존해서 가져옴)
- rsync에서 특정 데렉터리 백업? rsync -av 디렉터리명
*증분백업 가능? dump, rsync,tar (cpio 지원안함!!)
- 리눅스에서 백업 대상 지원? /var
'서버 운영 > Linux' 카테고리의 다른 글
리눅스 마스터 1급 2차 기출 정리 - 파일 시스템 관리 (0) | 2021.10.10 |
---|---|
리눅스마스터1급 2차 실기 기출 및 예상문제 풀이 - 사용자 관리 (0) | 2021.10.07 |
[리눅스 마스터 1급] 1차 필기 기출 내용 정리(3) - 3과목 (0) | 2021.09.07 |
[리눅스 마스터 1급] 1차 필기 기출 내용 정리(1) - 1과목 (0) | 2021.09.03 |
리눅스(Linux) 란? (0) | 2021.08.26 |