Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 IT일지

리눅스 싱글 부트와 기본 명령어 본문

정보보안

리눅스 싱글 부트와 기본 명령어

세레프 2023. 6. 5. 22:02

싱글 부트

 

Linux의 부팅과 기본 명령어

Linux란 서버를 운영하기위해 만든 리눅스커널를 기반으로 둔 운영체제이다. 그래서 우리는 서버를 구축하고 운영하기위해 Linux를 부팅할 줄 알아야 하고, 기본적인 명령들은 기억하고 있어야 한

my-it-diary.tistory.com

 현재 CentOS 7에서는 systemd를 기반으로 모든 프로세스가 실행이 된다. 하지만 CentOS 7 이전에는 init 프로세스가 모든 프로세스의 최상위 프로세스이다. 그래서 유닉스의 호환성을 위해서 init을 사용해서 모드를 설정한다. init은 시스템을 7단계로 구현하고 있으며, 해당 단계를 런레벨이라고 한다.

런레벨 기능 특징
init 0 종료 시스템 종료 (shutdown -h now , halt, power off)
init 1 싱글 모드  시스템 복구 (shutdown -r now, reboot)
init 2  멀티 모드 NFS(network filesystem)미구동 TUI
init 3  멀티 모드 NFS(network filesystem)구동 TUI
init 4  x x
init 5 멀티 모드 NFS(network filesystem)구동 GUI(X11)
init 6 재시작 시스템 재시작

 이때, init의 단계를 설정하는 /etc/inittab은 systemd가 사용되기 전에 모드를 변경하던 파일이지만 현재는 systemd를 사용하기에 systemd의 타겟 변경 가이드 역할을 한다.

  • systemctl get-default : 시스템 시작할 때 사용하는 타겟 확인 (multi-user.target = TUI, graphical.target = GUI)
  • systemctl set-default : 시스템 시작할 때 사용하는 타겟 변경 (multi-user.target = TUI, graphical.target = GUI)

 

 

 리눅스에서는 패스워드를 긴급적으로 변경을 하거나, 부팅중에 이상이 생겨서 정상적으로 작동하지 않을 경우에 윈도우의 긴급모드처럼 리눅스에 접속할 수 있는 모드가 존재한다. 이를 싱글 부트라고 하는데, 부트로더를 통해 시스템에 직접 접근해서 실행하는 모드이다. 

  • 진입 방법
    1. 부트로더에서 커널 선택후 e 입력
    2. 내용중에 ro rhgb quiet를 찾은 뒤, rw init=/bin/bash로 변경
      •  ro rhgb quiet : rhgb(레드헷 계열 부트로더)를 읽기 전용으로 구동하며, 로그를 최소한으로 출력
      • rw init=/bin/bash : 런레벨을 수정하지 않고 내용 수정이 가능한 쉘로 기본 구동 
    3. 설정후 CTRL + x

 위의 과정을 진행하면 다음과 같이 사용자가 명령을 내릴 수 있는 "bash-4.2#" 쉘이 나타나며, 다음 명령어를 입력해서 패스워드를 긴급적으로 변경할 수 있다.

  1. passwd : root 사용자의 패스워드 변경
  2. vi /etc/selinux/config : 리눅스 초기 보안 시스템 selinux설정 변경
    • #SELINUX=enforcing : 기존 활성화 설정 주석처리
      SELINUX=disabled : 새로운 비활성화 설정 추가
  3. exec /sbin/init : 최고 프로세스 실행 (재부팅)

이렇게 위의 과정을 전부 시행하면 root의 패스워드가 바뀌어 있는 것을 확인 할 수 있다.

 

쉘과 프롬프트

 사용자의 명령어는 쉘을 통해 번역이 되고 커널에서 수행이 가능한 지 판단한 후에, 가능하면 하드웨어에, 불가능하면 사용자에게 신호를 보낸다. 이때, 쉘은 프롬프트를 통해 사용자의 명령을 받는다. 

 프롬프트터미널 또는 에뮬레이터의 CLI의 명령을 받기위한 명령줄 대기모드로, 유닉스 계열에서는 네트워크 환경, 다중사용자를 고려해서 다음과 같은 형태로 프롬프트를 사용한다.

 

[[ID]@[네트워크 이름][작업중인 디렉토리]][권한표시]

  • ID : 로그인 중인 사용자 계정명
  • 네트워크 :  현재 컴퓨터이 사용하고 있는 로컬 호스트 이름
  • 작업중인 디렉토리 : 프롬프트가 위치해 있는 디렉토리
  • 권한표시 : 일반사용자($)와 관리자(#)를 구분하는 표시

 

명령어

 리눅스는 TUI를 기반으로 운영되는 운영체제이기에 터미널이나 콘솔에 명령어를 지정해서 사용하게 된다. 이때, 명령어에는 옵션에 따라 수행되는 기능이 변화하지만, 옵션없이 사용 가능하다.

 그리고 디렉토리나 파일을 나타내기 위해서는 경로를 통해 표현하게 되며, 파일은 경우에 따라 마지막에 파일명을 표현해야 한다. 추가적으로 리눅스는 대소문자를 구분하며, 같은 이름을 가진 데이터는 같은 이름으로 만들 수 없다.

경로 종류 절대 경로 상대 경로
의미 최상위(/)가 기준이 되는 경로 현 위치(.)가 기준이 되는 경로
예시 /home, /etc/, /etc/vicrm, /etc/selinux 등 ./yum, ./passwd, config, ../bin 등

 이때, "."는 현재 디렉토리를 표현하고, ".."는 상위 디렉토리를 표현한다.

 

기본 명령어

 

Linux의 부팅과 기본 명령어

Linux란 서버를 운영하기위해 만든 리눅스커널를 기반으로 둔 운영체제이다. 그래서 우리는 서버를 구축하고 운영하기위해 Linux를 부팅할 줄 알아야 하고, 기본적인 명령들은 기억하고 있어야 한

my-it-diary.tistory.com

  • pwd : 현재 위치해 있는 디렉토리를 확인
  • whereis [명령어] : 해당 명령어의 파일 위치 확인
  • locate [파일 이름] : 해당 이름을 가진 파일 위치 확인 → mlocate 설치해야 사용할 수 있는 기능
  • ifconfig :해당 기기의 인터페이스 상태 출력(ip 정보확인할 때 주로 사용)
  • passwd : 로그인한 사용자의 비밀번호 변경
    • passwd [사용자] : 지정한 사용자 비밀번호

 이때, 관리자가 사용하는 passwd와 사용자가 사용하는 passwd 명령어들은 권한이 다르다.

관리자 비밀번호 변경 사용자 비밀번호 변경
암호 변경시 이전 암호 확인 x 암호 변경시 이전 암호 확인 
암호 복잡성 무시 영문숫자 특문중 2개이상 6자리 이상
다른 사용자 암호 설정 o  다른 사용자 암호 설정 불가
  • man [명령어] : 명령어의 메뉴얼
  • cd [경로] : 작업중인 디렉토리 변경
  • ls [옵션] : 작업중인 디렉토리가 가지는 파일/디렉토리 목록 보기
    • ls [옵션] [경로] : 해당 경로의 디렉토리의 목록 보기
옵션 의미
-a 숨김파일포함
-l  자세히
-R 작업중인 디렉토리가 가진 하위 디렉토리 전부 
-i inode (파일/ 디렉토리의 고유 번호)를 출력
  • alias : 별명 목록 확인
    • alias [단축키]='내용' : 내용을 단축키로 지정
    • unalias 단축키 : 단축키 삭제

이때, alias는 로그아웃하면 내용 초기화됨, 영구적 사용은 shell에 부여해야 한다.

  • uname : 리눅스 정보 확인
옵션 의미
-a 리눅스의 모든 정보 확인
  • free -m : 메모리 상태 확인
  • file [파일 경로] : 해당 파일의 속성을 출력하는 명령어
  • vmstat : 시스템 리소스 모니터링
  • uptime  :  현시간과 사용자 수 출력
  • history : 사용한 명령어 확인
    • history 5 : 최근 사용한 명령어 5개 출력
    • history -c : 히스토리 기록 삭제

 

시간 관련 명령어

  • hwclock : 하드웨어 시간 출력
  • date : 현재시간 출력
    •  date "+[원하는 시간 옵션]" : 현재시간 중 원하는 시간 옵션의 형태로 출력
원하는 시간 옵션 의미
%H 시간
%M 
%S 
%m
%d 
%Y
  • rdate  -p  [시간 서버주소] : 시간서버의 시간 확인
  • rdate  -s  [시간 서버주소] : NTP서버 시간 동기화
  • cal : 올해 달력 확인
    • cal [숫자] : 해당 년도의 달력 확인
    • cal [월] [년도] : 해당 년도의 해당 월 달력 확인

 

디렉토리 생성, 삭제 명령어

 

디렉토리, 파일 기본 명령어

운영체제는 컴퓨터를 편리하고, 효율적으로 사용하기 위해 사용하는 환경으로, 디렉토리와 파일로 구성되어 있다. 그래서 우리는 Linux 운영체제를 사용하기 위해선, Linux에서 사용하는 디렉토리

my-it-diary.tistory.com

  • mkdir [디렉토리 경로] : 디렉토리 생성 명령어
    • mkdir [옵션] [디렉토리 경로] : 디렉토리를 옵션에 따라 생성
    • mkdir [디렉토리1 경로] [디렉토리2 경로] [디렉토리3 경로] ... : 디렉토리 여러 개 생성 명령어
옵션 의미
-p 경로에 따라 누락된 상위 디렉토리도 같이 생성
  • rmdir [디렉토리 경로] : 디렉토리 삭제 명렁어
    • rmdir [옵션] [디렉토리 경로] : 디렉토리를 옵션에 따라 삭제
옵션 의미
-p 경로에 따라 상위 빈 디렉토리 삭제

 

파일 생성 명령어

  • touch [파일 경로] : 파일 생성 명령어
    • touch [파일 1 경로] [파일 2 경로] [파일 3 경로] : 파일 여러 개 생성 명령어  
  • rm [옵션] [파일 경로] : 파일을 삭제하는 명령어
    • rm [옵션] [파일 1 경로] [파일 2 경로] [파일 3 경로] ... : 여러 파일을 삭제하는 명령어
옵션 의미
-r 파일 뿐만아니라 디렉토리도 삭제 가능
-f 삭제 여부 묻지 않고 삭제
-i 삭제 여부 묻기
-t[년 월 일 시 분 .초] 파일의 생성, 수정 시간을 조정
-d[시:분] 파일의 생성, 수정 시간을 조정

 이때 경로에 정규 표현식을 사용하는 경우가 있는데, "*"은 조건이 맞는 모든 파일/디렉토리이며, "?"는 조건과 자리가 맞는 모든 디렉토리를 뜻한다. 

 

이동과 복사 명령어

  • cp [옵션] [원본 파일 경로] [복사 경로] : 원본파일을 복사하는 명령어 
    • cp [옵션] [원본 파일 1 경로] [원본 파일 2 경로] [원본 파일 3 경로] ... [복사 경로] : 복수의 원본파일을 복사

 복사 경로에 복사되는 파일의 이름을 지정할 수 있으며, 복사한 파일은 해당 파일 이름을 가진다. 그리고 복사 경로에 같은 파일 명을 가진 파일이 존재할 경우, 덮어쓰기가 진행된다.

옵션 의미
-p 속성 보존 복사
-i 덮어쓰기일시 복사 여부 확인
-a 모든 옵션포함
-r 파일 뿐만아니라 디렉토리도 복사 가능

 

  • mv [옵션] [원본 파일/디렉토리 경로] [이동 경로] : 원본 파일을 이동시키는 명령어
    • mv [옵션] [원본 파일/디렉토리 1 경로] [원본 파일/디렉토리 2 경로] [원본 파일/디렉토리 3 경로] ... [복사 경로] : 복수의 원본파일을 이동

 이동 경로에 이동되는 파일의 이름을 지정할 수 있으며, 이동한 파일은 해당 파일 이름을 가진다. 그리고 이동 경로에 같은 파일 명을 가진 파일이 존재할 경우, 덮어쓰기가 진행된다.

옵션 의미
-i 덮어쓰기일시 복사 여부 확인
-b 덮어쓰기 일시 기존의 파일 백업 생성

 

'정보보안' 카테고리의 다른 글

정적 IP주소과 정적 라우팅  (0) 2023.06.08
파일 내용 출력 및 파일 내용 편집  (0) 2023.06.07
리눅스와 가상 머신  (1) 2023.06.02
TCP 통신 과정과 프로토콜 헤더  (0) 2023.06.02
OSI 7계층과 장비  (1) 2023.05.31
Comments