'전체 글'에 해당되는 글 16건

  1. 2020.01.01 리눅스 기본 명령어
  2. 2020.01.01 리눅스 부트 프로세스
  3. 2020.01.01 systemd(시스템데몬)
  4. 2020.01.01 소프트웨어 패키지
  5. 2020.01.01 로그 관리
  6. 2020.01.01 디스크 관리
  7. 2020.01.01 작업스케줄링 명령어
  8. 2020.01.01 접근제어(ACL) 명령어
posted by Hydrogen_B 2020. 1. 1. 21:28

명령어 문법: $ command(실행파일) option(어떻게) argument(영향을 받는 파일)

  1. su: 관리자 권한
  2. ~: 현재 사용되고 있는 디렉토리
  3. uname(시스템 운영체제 버전 정보) -a, -s, -r, -rs: 운영체제 정보, 이름, 버전, 이름/버전
  4. date: 날짜
  5. cal: 달력 -> cal 22 12 2019
  6. man: 메뉴얼-> ex) man [명령어
    1. -s: 서브섹션별 [1~8] -> ex) man -s 1 uname
    2. -k: 키워드별 -> ex) man -k calendar
    3. -f: 메뉴얼의 서브섹션 나열 -> ex) man -f uname
  7. pwd: 현재 위치한 디렉토리
  8. cd: 다음 하위 디렉토리로 이동
  9. mkdir [생성할 파일이름]: 파일 생성
  10. file [파일이름]: 파일종류 확인 명령어
  11. gedit [생성할 파일이름 or 불러올 파일이름]: 메모장 파일생성 불러오기
  12. touch [파일이름]: 빈파일 생성 -> ex) touch file{a…d}
  13. du -h: 해당 디렉토리의 바이트
  14. esc + . : 마지막으로 불러온 파일or디렉토리 입력(핫키)
  15. useradd: 사용자 추가

CLI 제어 문자

  1. Ctrl+C: 현재 동작중인 명령어 종료
  2. Ctrl+D: 파일의 이동 또는 종료
  3. Ctrl+U: 현재 명령어 라인 모두 지움
  4. Ctrl+W: 커서 있는 지움
  5. Ctrl+S: 화면 출력 중지
  6. Ctrl+Q: 화면 출력 시작

'리눅스' 카테고리의 다른 글

리눅스 부트 프로세스  (0) 2020.01.01
systemd(시스템데몬)  (0) 2020.01.01
소프트웨어 패키지  (0) 2020.01.01
로그 관리  (0) 2020.01.01
디스크 관리  (0) 2020.01.01
posted by Hydrogen_B 2020. 1. 1. 20:47
  1. systemd 시스템 부팅 절차
    1. BIOS(MBR) or UEFI(GPT) POST단계 실행(삑소리)
    2. 부트로더를 메모리에 적재
    3. GRUB2 실행 -> 커널 선택 가능
    4. 커널이 메모리에 적재되고 initramfs 압축 해제 (img파일)
    5. /sysroot 부팅 관련된 파일들이 존재 (read only)

-> /(read, write) 부팅이 완료되면 피버팅이 일어난다

  1. systemd PID 1번으로 할당 -> 타겟 설정

 

 

부팅 절차의 마지막 -> 타겟

유저레벨에서 사용가능한 타겟 -> {emergency, rescue, multi-user, graphical}.target

  • emergency.target : 최소한의 부팅만 가능한 상태, 루트파일 시스템(/), Read 가능
  • rescue.target (CLI): 단일 사용자 환경으로 제공, 네트워크X
  • multi-user.target (CLI): 다중 사용자 환경 제공 (기본적으로 제공O), 네트워크O
  • graphical.target : GUI 환경 제공 (기본적으로 제공X)

local-fs.target -> sysinit.target -> basic.target -> multi-user.target

# systemctl isolate multi-user.target : CLI화면으로 전환

# systemctl isolate graphical.target : GUI화면으로 전환

커널에서 리마운트

# rd.breaker

# mount -o remount,rw /sysroot

# chroot /sysroot

# passwd

# touch /.autolabel

ctrl+d

ctrl+d

'리눅스' 카테고리의 다른 글

리눅스 기본 명령어  (0) 2020.01.01
systemd(시스템데몬)  (0) 2020.01.01
소프트웨어 패키지  (0) 2020.01.01
로그 관리  (0) 2020.01.01
디스크 관리  (0) 2020.01.01
posted by Hydrogen_B 2020. 1. 1. 20:46

systemd

  • 유저레벨에서 실행되는 최상위 프로세스

 

/etc/systemd/system : 시스템 관리자가 수동으로 생성 관리하는 유닛(enable명령) - > wants존재

/run/systemd/system : 런타임 상태일때 임시 유닛파일을 저장 (start) -> 재부팅시 삭제

/usr/lib/systemd/system : 관련 패키지를 설치하면 저장되는곳 (실제 유닛의 파일이 저장되는 )

 

# systemctl status sshd.service  -> 유닛에 관한 상태 열람

# systemctl stop sshd.service  -> 유닛 종료

# systemctl start sshd.service  -> 유닛 시작 [메모리에 올라감]

# systemctl enable sshd.service  -> 유닛 부팅 자동 시작(초기설정O)

# systemctl disable sshd.service  -> 초기설정X

 

/etc/systemd/system/multi-user.target.wants -> /usr/lib/systemd/system/sshd.service

부팅 위에 경로의 심볼릭을 훑어 자동실행 

 

# systemctl mask -> 유닛을 실행 못하게 한다

# systemctl umask -> 마스크 해제x

'리눅스' 카테고리의 다른 글

리눅스 기본 명령어  (0) 2020.01.01
리눅스 부트 프로세스  (0) 2020.01.01
소프트웨어 패키지  (0) 2020.01.01
로그 관리  (0) 2020.01.01
디스크 관리  (0) 2020.01.01
posted by Hydrogen_B 2020. 1. 1. 20:46

YUM(RedHat 패키지 관리자)

  • repo : 저장소 -> YUM 저장소(rpm 파일들) , db

ex) # yum install httpd

 

  • 리눅스에서 소프트웨어를 설치
  • RPM 소프트웨어 패키지, 의존성(dependency) -> YUM 패키지 관리자

APT(데비안의 패키지 관리자)

  • apt-get
  • 우분투의 패키지 관리자, 의존성을 해결해준다
  • 확장자가 deb

 

RPM

패키지 관리를 위한 명령어

# rpm -q {-a, -i, -f,-d]

# rpm -qf [패키지] # yum provides [패키지] 차이

-> 설치된거 / 인터넷에서의 정보

 

Ex) 레퍼지토리 등록 예시

# cd /etc/yum.repos.d/

# tar -cvf repo.tar ./*

# mv repo.tar ../

# yum-config-manager --add-repo=http://ftp.kaist.ac.kr/CentOS/7.6.1810/extras/x86_64/

# ls

# vim ftp.kaist.ac.kr_CentOS_7.6.1810_extras_x86_64_.repo

# yum list (레퍼지토리 안에 있는 패키지 리스트 출력)

# yum install python2-crypto.x86_64

 

Ex) 다음 카카오 레퍼지 생성 예시

# vim kakao.repo

[base]

name=CentOS-$releasever - Base

baseurl=http://ftp.daum.net/centos/7/os/$basearch/

gpgcheck=1

gpgkey=http://ftp.daum.net/centos/RPM-GPG-KEY-CentOS-7

 

실습 명령어

# yum list

# yum repolist

 

# yum info [패키지명] : 모든 패키지 열람

# yum search [패키지명] : 패키지 검색

 

 

# yum groups info []

# yum groups -y install [] -> -y 무조건 Yes

# yum groups -y remove []

'리눅스' 카테고리의 다른 글

리눅스 부트 프로세스  (0) 2020.01.01
systemd(시스템데몬)  (0) 2020.01.01
로그 관리  (0) 2020.01.01
디스크 관리  (0) 2020.01.01
작업스케줄링 명령어  (0) 2020.01.01
posted by Hydrogen_B 2020. 1. 1. 20:45
  1. 로그
  • 이벤트 기록 (사건사고)

우선순위에 맞는 기록

  • 보안적 측면 : 침입자에 대한 추적
  • 운영적 측면 : 시스템 장애 확인

 

systemd-journal : 부팅이 되는 순간부터 로그를 수집한다

메모리에 저장(바이너리 형식) -> journalctl

# ls -l /run/log/journal

 

rsyslog : [systemd-journal]에서 발생한 로그들 중에서 필요한 것들만 분류해서 저장

  • 파일로 저장
  • 5가지 종류로 분류해서 저장

# vim /etc/rsyslog.conf

 

로그파일의 순환 - 로그의 크기가 과도하게 커지지 않도록 제한(일정시간 삭제함)

  • logrotate 유틸리티 (cron)
  • 설정파일 -> # /etc/logrotate.conf

 

  1. 명령어

journalctl -> /run/log/journal/ 저장된 로그파일을 읽을 있다

옵션

  • -p: 특정 우선순위를 지정하여 로그 출력
  • -r: 역순으로 조회(최신 기록)

# journalctl -p

# journalctl -r

 

rsyslog 동작상태 확인

# systemctl status rsyslog.service

 

저장된 저널파일확인

# journalctl -D /[저널이 저장된 위치]/ (/var/log/journal)

 

설정 파일 변경

vim /etc/rsyslog.conf

-> 주요 필드 authpriv.* mail.* cron.* *.emerge

 

필드

필드.우선순위 저장된 위치

ex) 우선순위 info 설정 -> info ~ emerge 저장 (debug 저장x)

'리눅스' 카테고리의 다른 글

systemd(시스템데몬)  (0) 2020.01.01
소프트웨어 패키지  (0) 2020.01.01
디스크 관리  (0) 2020.01.01
작업스케줄링 명령어  (0) 2020.01.01
접근제어(ACL) 명령어  (0) 2020.01.01
posted by Hydrogen_B 2020. 1. 1. 20:45

파티션 방식

  1. MBR(BIOS)
    1. 디스크 전체의 파티션 레이아웃을 파티션 테이블에 저장하는 방식
    2. 16바이트의 파티션 테이블
    3. 4개의 primary 파티션 생성가능
    4. 섹터의 주소를 4바이트로 저장해서 최대 2TB까지만 지원가능
    5. -extended part 확장 파티션 생성 가능

 

  1. GPT(UEFI)
    1. MBR 달리 파티션을 128개까지 만들 있다
    2. 섹터주소 64bit 저장 8ZB

 

포맷방식

윈도우 -> fat32, NTFS

디스크 인식

# echo '---' > /sys/class/scsi_host/host?/scan

#lsblk

파티셔닝 과정

디스크에 해당하는 과정(예시)

fdisk(or gdisk) (공통의 과정)-> partprobe-> mkfs.ext4 /dev/sdb1 ->

[마운트] -> mkdir /mnt/sdb1 -> mount /dev/sdb1 /mnt/ext4

명령어

lsblk : 디스크확인 -> -f UUID : 확인 *UUID 파일시스템은 만든 파티션만 주어짐

fdisk : 파티셔닝

 

파일시스템에 올려 영구적 유지시

 vim /etc/fstab -> /dev/sdb1 /mnt/ext4 ext4 defaults 0[덤프] 0[무결성 검사] -> wq7

-> 경로 대신 UUID 설정하는 것이 안전

대화식 파티션 설정

# parted /dev/sdb -> mklabel ->

# parted -s  /dev/sdb mkpart primary ext4 0% 100%

파일시스템 스왑메모리

파일시스템의 구조*

# free

# swapon

  1. 방법 1) 스왑 파티셔닝
    1. 마운트

-> fdisk -> n -> 스왑파티션 생성 -> t(라벨링) -> 82(swap)  -> partprobe -> mkswap -> swapon

 

  1. 영구마운트

-> # vim /etc/fstab

 

  1. 벙법 2) 스왑파일 생성

디렉토리 생성 -> dd if=/dev/zero of=/[생성한 디렉토리 경로]/[파일명] bs=512 count=1048576 -> mkswap /[디렉토리]/[파일] ->

-> swapon ->완료

 

스왑파일제거 -> swapoff [스왑파일 경로] -> 디렉토리 삭제

 

논리볼륨

물리볼륨 -> 볼륨그룹 -> 논리볼륨 -> 파일시스템 -> 마운트

  1. 논리볼륨 생성

fdisk 파티션 생성 -> 라벨링 (8e) -> partprobe -> pvcreate(물리볼륨생성) -> vgcreate(볼륨그룹생성) -> lvcreate(논리볼륨생성)

-> mkfs 파일시스템 -> mount

# pvcreate /dev/sdb3

# vgcreate [vgname] /dev/sdb3

# lvcreate -L 200M -n [lvname] [vgname]

# mkfs.xfs /dev/[vgname]/[lvname]

# mkdir /mnt/lv

# mount /dev/[vgname]/[lvname] /mnt/lv

# df -TH

 

  1. 논리볼륨 제거

umount -> lvremove(논리볼륨제거) -> vgremove(볼륨그룹제거) -> pvremove(물리볼륨제거) -> fdisk (파티션 제거)

 

  1. 확장

볼륨 그룹의 확장

# fdisk /dev/sdb

# t

# 8e

 

# pvcreate /dev/sdb?

# vgextend [vgname] /dev/sdb?

 

논리볼륨의 확장

fdisk 파티션 생성 -> 라벨링 (8e) -> partprobe -> pvcreate(물리볼륨생성) -> vgcreate(볼륨그룹생성) -> lvcreate(논리볼륨생성)

-> mkfs 파일시스템 -> mount

확장 ->

 # lvextend -l +??[원하는 추가 pe개수] [장치명]

 # lvextand -L +??[원하는 사이즈] [장치명] -r (속도 키워줌)

*이론적으로만 커진거라 속도 같이 키워줘야함

 

파일 시스템 확장 ->

# xfs_growfs [장치명]

 

파일 시스템 축소

# resize2fs /dev/vgname/lvname 2G

 

xfx_growfs -> 파일시스템 까지 확장

*용량 할당 일부분 pe값으로 빠짐 -> pe = 4M

pe 클때

장점: 속도가 빠르다

단점: 비효율적이다

-> # vgcreate -s 5M [vg] [pv경로] : pe 변경

 

확인 명령어

# pvdisplay(pvs) : 물리볼륨 상태 확인

# vgdisplay(vgs)  : 볼륨그룹 상태 확인

# lvdisplay(lvs) : 논리그룹 상태 확인

# lvmdiskscan : 모든 볼륨 상태 확인

'리눅스' 카테고리의 다른 글

소프트웨어 패키지  (0) 2020.01.01
로그 관리  (0) 2020.01.01
작업스케줄링 명령어  (0) 2020.01.01
접근제어(ACL) 명령어  (0) 2020.01.01
계정 관리 명령어  (0) 2020.01.01
posted by Hydrogen_B 2020. 1. 1. 20:42
  1. 단일 작업 예약
    • 한번 실행하고 종료되는 작업
    • 해당 결과는 사용자 메일로 전송

at

# atq or #at -l : 예약확인

# at [timespec] : 예약

# at Aug 26 2019 18:00

# at

# at -c [작업번호] : 확인

# atrm [작업번호] : 삭제

 

  1. 주기적 작업
    • 반복적으로 실행되는 작업

crontab [명령어]

-> # crontab -eu [사용자명]

-> *() *() *() *() *(요일) [명령어]

 

anacron [명령어] : 컴퓨터가 종료되고 켜졌을 미처 못한 작업 마저 수행

*인자값을 필요로하는 옵션 바로 뒤에는 인자값이 필수 ex) -u, -n 등

'리눅스' 카테고리의 다른 글

로그 관리  (0) 2020.01.01
디스크 관리  (0) 2020.01.01
접근제어(ACL) 명령어  (0) 2020.01.01
계정 관리 명령어  (0) 2020.01.01
아카이브 명령어  (0) 2020.01.01
posted by Hydrogen_B 2020. 1. 1. 20:41

확장 권한

  1. setuid: 일반 사용자가 대개는 root권한을 필요로하는 경우
    1. # chmod 4555 [file]
    2. # chmod u+s [file]

 

  1. setgid: 어플리케이션에서 그룹 사용자의 권한이 필요한 경우
    1. # chmod 2555 [file]
    2. # chmod g+s [file]

 

  1. sticky bit: 일반 사용자들이 /tmp 디렉토리를 사용해서 임시파일을 만들 있도록 설정할 경우
    1. # chmod 1555 [file]
    2. # chmod o+t [file]

 

접근제어목록 -> 권한 없는 사용자가 특정 파일에 접근을 허용하기 위한 방법

  1. getfacl : 해당 파일의 acl상태 확인
  2. setfacl : 해당 파일의 acl 설정하거나 삭제
    1. -m : ACL 항목 수정
      1. u::[권한] -> 사용자의 권한
      2. g::[권한] -> 그룹의 권한
      3. o::[권한] -> 기타사용자 권한
      4. u:[사용자명]:[권한] -> 특정 사용자 권한
      5. g:[그룹명]:[권한] -> 특정 그룹의 권한
      6. m:[권한] -> ACL 마스크

 

  1. -x : ACL항목 하나 이상 삭제
  2. -b : ACL항목 삭제
  3. -k : ACL 디폴트 항목 삭제

'리눅스' 카테고리의 다른 글

디스크 관리  (0) 2020.01.01
작업스케줄링 명령어  (0) 2020.01.01
계정 관리 명령어  (0) 2020.01.01
아카이브 명령어  (0) 2020.01.01
프로세스 명령어  (0) 2020.01.01