[Linux 이론] 리눅스 스크립팅 언어 (sh, bash, PowerShell) + Ansible과의 차이점
목차 sh(Bourne Shell), 주요 특징 bash(Bourne-Again SHell), 주요 특징 PowerShell, 주요 특징 Ansible과 Shell Script 차이 Script와 스크립팅 언어에 대해서는 다음 페이지에 자세히 설명했고, 이번에는 그 중 리눅스에서 자주 사용되는 3가지를 준비했다. [공통 이론] Script와 스크립팅 언어의 특징 목차 정의 주요 특징 스크립팅 언어 주요 특징 종류 정의 프로그래밍에서 Script는 인터프리터에 의해 실행되는 스크립팅 언어로 작성된 일련의 명령 또는 명령을 의미한다. Script는 작업 easyitwanner.tistory.com sh(Bourne Shell) Bourne Shell 또는 줄여서 "sh"는 운영 체제와 상호 작용하기 위한 명..
2023.03.20
no image
[Linux 실습] FTP로 원격 접속 시 경고 메세지 출력
FTP 접속 1. 접속할 user 생성 useradd x (사용자 x 생성) echo '암호' | passwd --stdin x (x의 암호를 '암호'로 설정) cat /etc/passwd (cat 명령어로 user 생성 확인) 2. /ftp 디렉토리 생성 mkdir /ftp 3. /ftp디렉토리에 chroot 파일과 banner 파일 생성 1) vi /ftp/chroot (FTP 접속을 허용하기 위해 사용자 이름을 작성) 내용 x 2) vi /ftp/banner (사용자가 접속했을 때 배너를 띄우기 위해 생성) 내용 (자신이 원하는 배너 모양으로 작성) 4. /etc/vsftpd//vsftpd.conf 내용 수정 아래의 내용과 달리 주석이 달려 있다면 제거해 주면 된다. 주석 처리가 되어 있으면 해당 ..
2023.03.19
[Linux 이론] Server와 Client (2) 상세 설명.ver
이전 내용을 보다보니 너무 부실한 것은 아닌가 생각이 들어 다시 정리하게 되었다. 이전에는 종합적으로 큰 틀에서 봤으니 이번에는 서버는 무엇이고 클라이언트는 무엇인지 알아보자. Server 서버는 네트워크를 통해 서비스, 리소스 또는 공유 데이터에 대한 액세스를 클라이언트로 알려진 다른 컴퓨터에 제공하도록 설계된 컴퓨터 시스템 또는 소프트웨어 응용 프로그램을 의미한다. Linux는 안정성, 보안 및 유연성으로 인해 서버 환경에서 많이 선택된다. Linux 서버는 수행하려는 특정 기능에 따라 다양한 오픈 소스 소프트웨어 도구 및 응용 프로그램을 사용하여 구현할 수 있다. 예시 파일 서버 파일 서버는 네트워크의 클라이언트에게 중앙 집중식 파일 저장 및 공유 서비스를 제공한다. Linux에서는 NFS(Netw..
2023.03.17
no image
[Linux 기타] root 비밀번호 초기화
아래를 하기 전에 mount를 다시 시켜줄 것이다. 화면에서는 짤려버려 여기에 적도록 하겠다. 아래 이미지 명령어를 입력하기 전에 먼저 실행할 명령어 mount -o remount,rw /sysroot 1. chroot /sysroot 2. passwd root > 새 비밀번호 설정 3. touch /.autorelabel 여기까지 잘 작성했다면 위 사진과 같이 재부팅이 될 것이고 root 비밀번호가 아까 설저한 비밀 번호로 변경 되어있을 것이다.
2023.03.14
[Linux 이론] SSH(Secure SHell)
SSH (Secure Shell) SSH (Secure Shell)는 Linux에서 보안적으로 원격 서버/시스템에 연결하기 위해 사용되는 프로토콜이다. SSH는 데이터를 호스트와 클라이언트 간에 암호화된 형태로 전송하여 보안성을 제공한다. 클라이언트에서 호스트로 입력을 전송하고 출력을 반환한다. SSH는 TCP/IP 포트 22에서 실행된다. SSH는 보안적으로 원격 서버에 연결하는 가장 일반적인 방법 중 하나다. SSH는 사용자가 공개키와 개인키를 생성하여 이를 사용하여 클라이언트와 호스트 간의 인증을 수행한다. 이러한 키는 수학적으로 쌍을 이루어 생성된다. SSH 클라이언트 측 구성 파일은 config라는 이름의 파일로 저장된다. config 파일은 사용자의 홈 디렉토리 아래의 .ssh 디렉토리에 저장..
2023.03.14
[Linux 이론] Binary란?
정의 바이너리(Binary)란, 0과 1로 이루어진 이진수(binary code)로 이루어진 파일을 의미한다. 컴퓨터에서는 바이너리 파일을 CPU가 직접 읽어들여 명령어(instruction)를 수행하며, 기계어(machine code)라고도 한다. 바이너리 파일은 컴파일된 소스코드나 기계어 코드를 포함하는 실행 가능한 파일(executable file)이다. 이 파일들은 사용자에 의해 실행될 수 있다. 하지만 바이너리 파일은 실행 파일로 실행되기 때문에 실행 파일이 아니면 실행되지 않는다. 이 때 실행 파일이 실행될 때는 CPU가 해당 명령어를 직접 수행한다. 리눅스는 분석 도구들을 제공하여 바이너리 파일 분석을 용이하게 할 수 있다. 바이너리 분석 도구들은 분석가가 더 잘 이해할 수 있도록 이진 파일..
2023.03.13
반응형

목차

  1. sh(Bourne Shell), 주요 특징
  2. bash(Bourne-Again SHell), 주요 특징
  3. PowerShell, 주요 특징
  4. Ansible과 Shell Script 차이

Script와 스크립팅 언어에 대해서는 다음 페이지에 자세히 설명했고, 이번에는 그 중 리눅스에서 자주 사용되는 3가지를 준비했다.

 

[공통 이론] Script와 스크립팅 언어의 특징

목차 정의 주요 특징 스크립팅 언어 주요 특징 종류 정의 프로그래밍에서 Script는 인터프리터에 의해 실행되는 스크립팅 언어로 작성된 일련의 명령 또는 명령을 의미한다. Script는 작업

easyitwanner.tistory.com


sh(Bourne Shell)

Bourne Shell 또는 줄여서 "sh"는 운영 체제와 상호 작용하기 위한 명령줄 인터페이스 역할을 하는 Unix Shell다. 1970년대 AT&T Bell Labs의 Stephen Bourne이 개발했으며 최초의 Unix Shell로 간주된다. Bourne Shell을 사용하면 사용자가 명령을 실행하고 파일을 관리하며 프로세스를 제어할 수 있다.


주요 특징
  1. 단순성
    Bourne Shell은 단순하고 최소한으로 설계되어 명령 대체, 변수, 루프 및 제어 구조와 같은 기본 Shell 기능을 제공한다.

  2. 이식성
    Bourne Shell용으로 작성된 Script는 종종 다른 Unix 기반 시스템으로 이식 가능하여 Shell Script 작성에 널리 사용된다. 이 이식성 덕분에 사용자는 상당한 수정 없이 다양한 플랫폼에서 Script를 재사용할 수 있다.

  3. 호환성
    많은 Linux 시스템에서 "sh" 명령은 종종 "dash"(Debian Almquist Shell) 또는 "bash"(Bourne-Again Shell)와 같은 다른 Shell에 연결되어 Bourne Shell Script와의 호환성을 제공한다. 이렇게 하면 원래 Bourne Shell용으로 작성된 Script가 최신 시스템에서 계속 실행될 수 있다.

  4. 파이핑 및 리디렉션
    Bourne Shell은 파이핑 및 리디렉션을 지원하므로 사용자가 한 명령의 출력을 다른 명령의 입력에 연결하거나 출력을 파일로 리디렉션할 수 있다. 이는 복잡한 명령 체인을 생성하고 데이터를 효율적으로 처리하기 위한 강력한 기능이다.

  5. 스크립팅
    Bourne Shell은 Shell 스크립팅을 지원하여 사용자가 작업을 자동화하고 복잡한 작업을 단순화하며 일괄 처리를 수행할 수 있도록 한다. Script에는 변수, 제어 구조, 루프 및 기타 프로그래밍 구조가 포함될 수 있다.

  6. 내장 명령
    Bourne Shell에는 디렉토리 변경을 위한 "cd", 텍스트 표시를 위한 "echo" 및 Shell 종료를 위한 "exit"와 같은 일련의 내장 명령이 있다. 이러한 명령은 Script에서 사용하거나 명령줄에서 대화식으로 사용할 수 있다.

bash(Bourne-Again SHell)

Bourne-Again SHell의 줄임말인 Bash는 Linux 및 기타 Unix 기반 시스템에서 널리 사용되는 명령줄 Shell이다. 1980년대 후반에 GNU 프로젝트의 일부로 Brian Fox와 Chet Ramey가 개발했다. Bash는 원래 Bourne Shell(sh)의 향상된 버전이며 대부분의 Linux 배포판의 기본 Shell이다.


Bash의 주요 특장
  1. 호환성
    Bash는 Bourne Shell(sh)과 호환되도록 설계되어 모든 기능을 지원하는 동시에 많은 개선 사항과 추가 기능을 추가한다. 이렇게 하면 Bourne Shell용으로 작성된 Script가 수정 없이 Bash에서 실행될 수 있다.

  2. 확장된 기능
    Bash는 명령줄 편집, 명령 기록, 작업 제어, Shell 기능, 별칭 및 다양한 유형의 확장(중괄호, 물결표, 매개 변수 및 산술)과 같이 원래 Bourne Shell에는 없는 다양한 기능을 제공한다. . 이러한 개선 사항은 사용자와 개발자를 위해 Bash를 더욱 강력하고 유연하게 만듭니다.

  3. 스크립팅
    Bash는 배열, 확장된 테스트 구조, 문자열 조작, 산술 연산 및 기타 작업을 위한 다양한 내장 명령을 포함한 고급 스크립팅 기능을 지원한다. 이를 통해 사용자는 자동화 및 시스템 관리를 위해 더 복잡하고 다양한 Script를 만들 수 있다.

  4. 사용자 지정
    Bash는 사용자 지정이 가능하여 사용자가 구성 파일(예: .bashrc 및 .bash_profile)로 환경을 수정하고 자주 사용하는 명령에 대한 별칭 및 기능을 만들 수 있다. 이를 통해 사용자는 자신의 환경 설정 및 작업 흐름에 맞게 Shell 경험을 조정할 수 있다.

  5. 작업 제어
    Bash는 작업 제어를 제공하여 사용자가 여러 프로세스를 동시에 관리할 수 있도록 한다. 사용자는 백그라운드에서 프로세스를 실행하고, 백그라운드 프로세스를 포그라운드로 가져오고, 필요에 따라 프로세스를 일시 중지하거나 재개할 수 있다.

  6. 자동 완성 및 기록
    Bash는 명령 자동 완성을 지원하여 사용자 입력을 기반으로 가능한 완성을 제안하여 길거나 복잡한 명령을 더 쉽게 입력할 수 있다. Bash는 또한 사용자가 이전 명령을 빠르게 불러오고 다시 실행할 수 있도록 명령 기록을 유지한다.

  7. 파이핑 및 리디렉션
    Bourne Shell과 마찬가지로 Bash는 파이핑 및 리디렉션을 지원하여 사용자가 한 명령의 출력을 다른 명령의 입력에 연결하거나 출력을 파일로 리디렉션할 수 있다. 이 기능을 사용하면 복잡한 명령 체인과 효율적인 데이터 처리를 생성할 수 있다.

PowerShell

PowerShell은 Microsoft에서 개발한 강력하고 다양한 명령줄 Shell 및 스크립팅 언어다. 처음에 Windows 운영 체제용으로 설계된 PowerShell은 Linux 및 macOS를 지원하는 오픈 소스 및 교차 플랫폼으로 만들어졌다.


주요 측면
  1. 플랫폼 간 호환성
    PowerShell은 Linux, macOS 및 Windows를 비롯한 다양한 플랫폼에서 작동하도록 설계되었다. 이를 통해 사용자와 관리자는 동일한 Shell과 스크립팅 언어를 사용하여 여러 시스템을 관리할 수 있다.

  2. 개체 지향 특성
    기존 Shell과 달리 PowerShell은 .NET 프레임워크를 기반으로 하며 일반 텍스트가 아닌 개체와 함께 작동한다. 이를 통해 사용자는 개체의 속성과 메서드에 직접 액세스하고 수정할 수 있으므로 데이터를 보다 효율적이고 정확하게 조작할 수 있다.

  3. Cmdlet
    PowerShell은 특정 작업을 수행하는 경량 명령인 cmdlet("command-lets"로 발음)을 사용한다. Cmdlet은 동사-명사 명명 규칙을 따르므로 용도를 쉽게 이해할 수 있다(예: Get-Process, Set-Variable). PowerShell은 파일 관리, 네트워크 구성 및 시스템 관리와 ​​같은 다양한 작업을 위한 많은 기본 제공 cmdlet과 함께 제공된다.

  4. 스크립팅
    PowerShell은 변수, 루프, 조건문, 함수 및 오류 처리와 같은 고급 기능을 갖춘 강력한 스크립팅 언어를 제공한다. PowerShell Script는 .ps1 파일 확장자로 저장되며 작업을 자동화하고 시스템을 관리하고 복잡한 작업을 수행하는 데 사용할 수 있다.

  5. 파이프라이닝
    PowerShell은 사용자가 cmdlet 간에 개체를 전달할 수 있는 파이프라이닝을 지원한다. 이를 통해 임시 파일이나 복잡한 텍스트 구문 분석 없이 데이터를 효율적으로 처리하는 명령 체인을 생성할 수 있다.

  6. 사용자 지정 및 확장성
    PowerShell은 사용자 지정 cmdlet, 함수, 별칭 및 모듈 생성을 지원하여 고도로 사용자 지정할 수 있다. 사용자는 특정 요구 사항을 해결하기 위해 모듈을 가져오거나 모듈을 생성하여 기능을 확장할 수 있다.

  7. Linux 도구와의 통합
    Linux의 PowerShell은 기본 Bash 또는 다른 Shell과 별도의 Shell이지만 여전히 기본 Linux 명령과 상호 작용하고 실행할 수 있다. 이는 친숙한 Linux 도구를 계속 사용하면서 PowerShell의 기능을 활용하려는 사용자에게 유연성을 제공한다.

Ansible과 Shell Script 차이

Ansible 및 Shell Script는 모두 자동화 및 구성 관리에 사용되는 도구이지만 서로 다른 용도로 사용되며 서로 다른 강점을 가지고 있다. Ansible과 Shell Script의 주요 차이점은 다음과 같다.

 

1. 목적

  • Ansible은 복잡한 다중 시스템 배포를 자동화하고 여러 시스템에서 구성을 관리하도록 설계된 구성 관리 및 오케스트레이션 도구다. 일관되고 확장 가능한 방식으로 많은 수의 시스템을 관리하기 위해 특별히 제작되었다.
  • Shell Script는 자동화, 파일 조작 및 시스템 관리를 포함하여 광범위한 작업에 사용할 수 있는 범용 스크립팅 도구다. 일반적으로 소규모 작업 및 단일 시스템 관리에 사용됩니다.


2. 언어

  • Ansible은 YAML(Yet Another Markup Language)을 사용하여 사람이 읽을 수 있고 이해하기 쉬운 플레이북을 작성한다. Ansible 플레이북은 원하는 시스템 상태와 해당 상태를 달성하기 위한 작업을 정의한다.
  • Shell Script는 Bash, sh 또는 PowerShell과 같은 Shell 언어로 작성됩니다. 순서대로 실행할 일련의 명령을 정의하는 절차적 Script이다.


3. 멱등성

  • Ansible은 멱등성을 갖도록 설계되었다. 즉, 동일한 플레이북을 여러 번 실행해도 의도하지 않은 부작용 없이 동일한 최종 상태가 생성됩니다. 이것은 여러 시스템에서 구성을 관리할 때 상당한 이점이다.
  • Shell Script는 기본적으로 멱등성을 보장하지 않는다. 개발자는 Script를 여러 번 실행해도 의도하지 않은 결과나 중복 작업이 발생하지 않도록 수동으로 확인해야 한다.


4. 에이전트 없는 푸시 기반

  • Ansible은 명령을 실행하고 구성을 배포하기 위해 SSH(또는 Windows용 WinRM)를 사용하여 원격 시스템에 연결하는 에이전트 없는 방식으로 작동한다. 이렇게 하면 각 관리 시스템에 에이전트를 설치하고 관리할 필요가 없다. Ansible은 구성이 제어 노드에서 관리 노드로 푸시되는 푸시 기반 모델을 사용한다.
  • Shell Script에는 원격 실행을 위한 기본 제공 메커니즘이 없으며 원격 시스템을 관리하려면 추가 도구 또는 구성이 필요할 수 있다.


5. 모듈 및 확장성

  • Ansible은 복잡한 작업을 간단하고 재사용 가능한 구성 요소로 추상화하는 많은 내장 모듈과 함께 제공됩니다. 사용자는 사용자 정의 모듈을 생성하여 Ansible의 기능을 확장할 수도 있다.
  • Shell Script는 내장 Shell 명령, 시스템 유틸리티 및 외부 도구를 사용하여 작업을 수행한다. Shell Script는 모듈식일 수 있지만 일반적으로 재사용 가능한 구성 요소를 생성하려면 더 많은 수동 작업이 필요하다.


6. 확장성 및 병렬성

  • Ansible은 확장성을 위해 설계되었으며 많은 수의 시스템을 동시에 관리할 수 있다. 여러 시스템에서 작업의 병렬 실행을 지원하여 배포 속도를 높이고 중단 시간을 줄일 수 있다.
  • Shell Script는 백그라운드 프로세스 및 작업 제어를 사용하여 일부 병렬 처리가 가능하지만 일반적으로 확장성이 떨어지고 여러 시스템을 처리할 때 관리하기가 더 어렵다.
반응형
반응형
FTP 접속

1. 접속할 user 생성

useradd x (사용자 x 생성)
echo '암호' | passwd --stdin x (x의 암호를 '암호'로 설정)
cat /etc/passwd (cat 명령어로 user 생성 확인)

2. /ftp 디렉토리 생성

mkdir /ftp

3. /ftp디렉토리에 chroot 파일과 banner 파일 생성

1) vi /ftp/chroot (FTP 접속을 허용하기 위해 사용자 이름을 작성)
내용
x

2) vi /ftp/banner (사용자가 접속했을 때 배너를 띄우기 위해 생성)
내용 (자신이 원하는 배너 모양으로 작성)

배너 예시

4. /etc/vsftpd//vsftpd.conf 내용 수정

아래의 내용과 달리 주석이 달려 있다면 제거해 주면 된다. 주석 처리가 되어 있으면 해당 내용은 적용되지 않는다.

이중 86번 bannar는 bannet_file로 변경해주고 아까 만든 배너 파일의 위치를 지정해준다.
101을 yes 처리 해주어야 chroot 파일을 기반으로 FTP 접속이 가능하다.

5. vsftpd 시작

systemctl start vsftpd
systemctl enable vsftpd

2가지 동시에 적용
systemctl enable --now vsftpd

 

6. 방화벽(포트) 열어주기

firewall-cmd --permanent --zone=pubilic --add-port=20/tcp
firewall-cmd --permanent --zone=pubilic --add-port=21/tcp
firewall-cmd --permanent --zone=pubilic --add-port=65000-65100/tcp

firewall-cmd --reload (방화벽을 재시작 해주어야 적용된다.)

firewall-cmd --list-all (잘 열렸는지 확인한다.)

7. 확인 명령어

ss -nat
ls -hal /home/x
vi /ftp/xferlog

작동 확인

 

ftp (linux ip) 입력시 배너 출력 및 사용자 로그인까지 되어야 함


반응형
반응형

이전 내용을 보다보니 너무 부실한 것은 아닌가 생각이 들어 다시 정리하게 되었다. 이전에는 종합적으로 큰 틀에서 봤으니 이번에는 서버는 무엇이고 클라이언트는 무엇인지 알아보자.


Server

서버는 네트워크를 통해 서비스, 리소스 또는 공유 데이터에 대한 액세스를 클라이언트로 알려진 다른 컴퓨터에 제공하도록 설계된 컴퓨터 시스템 또는 소프트웨어 응용 프로그램을 의미한다. Linux는 안정성, 보안 및 유연성으로 인해 서버 환경에서 많이 선택된다. Linux 서버는 수행하려는 특정 기능에 따라 다양한 오픈 소스 소프트웨어 도구 및 응용 프로그램을 사용하여 구현할 수 있다.


예시
  • 파일 서버
    파일 서버는 네트워크의 클라이언트에게 중앙 집중식 파일 저장 및 공유 서비스를 제공한다.
    Linux에서는 NFS(Network File System) 또는 Samba와 같은 도구를 사용하여 파일 서버를 설정할 수 있다.

  • 웹 서버
    웹 서버는 일반적으로 웹 브라우저를 통해 클라이언트에 웹 페이지 및 웹 응용 프로그램을 제공한다.
    Linux 기반 웹 서버에는 Apache, Nginx 및 Lighttpd가 포함된다.

  • 데이터베이스 서버
    데이터베이스 서버는 데이터베이스를 관리하고 고객에게 저장된 데이터에 대한 액세스를 제공한다.
    Linux는 MySQL, PostgreSQL 및 MongoDB를 비롯한 다양한 데이터베이스 관리 시스템을 지원한다.

  • 이메일 서버
    이메일 서버는 클라이언트의 이메일 전송, 수신 및 저장을 처리한다.
    Linux에서는 Postfix, Exim 및 Dovecot과 같은 이메일 서버 애플리케이션을 사용할 수 있다.

  • DNS 서버
    DNS 서버는 도메인 이름을 IP 주소로 변환하여 클라이언트가 사람이 읽을 수 있는 이름을 사용하여 웹 사이트 및 서비스에 액세스할 수 있도록 한다.
    Linux는 BIND 및 dnsmasq와 같은 DNS 서버 솔루션을 제공한다.

Clinet

클라이언트는 네트워크를 통해 서버에서 서비스나 리소스를 요청하는 컴퓨터, 장치 또는 소프트웨어 응용 프로그램을 의미한다. 클라이언트-서버 모델은 클라이언트가 서버와 통신을 시작하고 서버가 요청된 서비스 또는 리소스를 제공하여 응답하는 컴퓨터 네트워킹 및 분산 시스템의 기본 개념이다.

 

 Linux 환경에서 클라이언트는 상호 작용해야 하는 특정 서버 유형에 따라 다양한 오픈 소스 도구 및 애플리케이션을 사용하여 구현할 수 있다.

예를 들어 Firefox 또는 Chrome과 같은 웹 브라우저는 웹 서버에서 웹 페이지를 요청할 때 클라이언트 역할을 한다. 마찬가지로 FileZilla와 같은 FTP 클라이언트는 FTP 서버와 상호 작용하여 파일을 전송하는 데 사용된다.

위에서 설명한 바와 같이 클라이언트는 일반적으로 서버와의 통신을 시작하고 서버는 요청된 서비스 또는 리소스를 제공하여 응답하는데 경우에 따라 클라이언트와 서버는 동일한 시스템에 상주할 수 있지만 다른 경우에는 로컬 네트워크나 인터넷을 통해 연결된 별도의 장치에 있을 수 있다.


예시
  • 웹 브라우저
    Firefox 또는 Chrome과 같은 웹 브라우저는 웹 서버에서 웹 페이지 또는 웹 응용 프로그램을 요청할 때 클라이언트 역할을 한다.

  • FTP 클라이언트
    FileZilla와 같은 FTP(파일 전송 프로토콜) 클라이언트는 클라이언트와 서버 시스템 간에 파일을 전송하기 위해 FTP 서버와 상호 작용하는 데 사용된다.

  • 이메일 클라이언트
    Thunderbird 또는 Evolution과 같은 이메일 클라이언트는 이메일 서버와 통신하여 이메일을 보내고 받고 관리한다.

  • 데이터베이스 클라이언트
    MySQL Workbench 또는 pgAdmin과 같은 데이터베이스 클라이언트는 데이터베이스 서버에 연결하여 데이터베이스 및 해당 데이터를 관리하고 상호 작용한다.

  • SSH 클라이언트
    OpenSSH와 같은 SSH(Secure Shell) 클라이언트는 관리 및 명령 실행을 위해 서버에 대한 보안 원격 액세스를 가능하게 한다.


Linux의 클라이언트는 명령줄 도구, 그래픽 응용 프로그램 또는 다른 서버의 서비스가 필요한 다른 서버일 수 있다. 서버와 동일한 시스템에 상주하거나 로컬 네트워크나 인터넷을 통해 연결된 별도의 장치에 상주할 수 있다.


 

반응형
반응형

 

부팅을 시작하자마자 아래 화살표를 누르고 e를 눌러 해당 모드로 진입한다.
진입 시 화면
rd.break를 추가하고 Ctrl + X를 눌러 시작한다.
켜지는 중...

아래를 하기 전에 mount를 다시 시켜줄 것이다. 화면에서는 짤려버려 여기에 적도록 하겠다.

아래 이미지 명령어를 입력하기 전에 먼저 실행할 명령어

mount -o remount,rw /sysroot

순서대로 입력해준다.

1. chroot /sysroot
2. passwd root
  > 새 비밀번호 설정
3. touch /.autorelabel

2번 exit 해준다.

여기까지 잘 작성했다면 위 사진과 같이 재부팅이 될 것이고 root 비밀번호가 아까 설저한 비밀 번호로 변경 되어있을 것이다.

반응형
반응형
SSH (Secure Shell)

SSH (Secure Shell)는 Linux에서 보안적으로 원격 서버/시스템에 연결하기 위해 사용되는 프로토콜이다. SSH는 데이터를 호스트와 클라이언트 간에 암호화된 형태로 전송하여 보안성을 제공한다. 클라이언트에서 호스트로 입력을 전송하고 출력을 반환한다. SSH는 TCP/IP 포트 22에서 실행된다.

SSH는 보안적으로 원격 서버에 연결하는 가장 일반적인 방법 중 하나다. SSH는 사용자가 공개키와 개인키를 생성하여 이를 사용하여 클라이언트와 호스트 간의 인증을 수행한다. 이러한 키는 수학적으로 쌍을 이루어 생성된다. SSH 클라이언트 측 구성 파일은 config라는 이름의 파일로 저장된다. config 파일은 사용자의 홈 디렉토리 아래의 .ssh 디렉토리에 저장된다. config 파일은 기본적으로 존재하지 않으며 touch 명령어를 사용하여 만들 수 있다.

SSH를 사용하여 원격 시스템에 연결하려면 ssh 명령을 사용한다. ssh 명령은 데이터 전송이 암호화되는 보안 프로토콜인 SSH 프로토콜을 사용한다. 이를 사용하면 클라이언트와 호스트 간의 데이터 전송이 암호화되므로 보안성이 제공된다. SSH는 다른 서버 또는 시스템에서 파일 복사, 이동 등을 수행하기 위해 사용된다.

SSH 프로토콜을 사용하여 리눅스에서 안전하게 원격 서버/시스템에 연결하는 방법은 매우 다양하다. SSH는 클라이언트와 호스트 간에 암호화된 형식으로 데이터를 전송하므로 보안 면에서 안전하다. SSH를 사용하여 리눅스 시스템에 로그인하려면 ssh 명령어를 사용하고, 호스트 이름 또는 IP 주소를 지정하면 된다. 이를 통해 파일 시스템에 액세스하고, 파일을 복사하고, 관리하고, 원격으로 명령을 실행할 수 있다. SSH 클라이언트 측 구성 파일은 대개 사용자의 홈 디렉터리 아래의 .ssh 디렉터리에 위치하며, 필요한 경우 사용자가 생성해야 한다. SSH는 가장 일반적인 원격 서버 액세스 방법 중 하나이며, 사용하기 쉽고 매우 유용하다.


SSH (Secure Shell) protocol

SSH (Secure Shell) 프로토콜은 리눅스에서 안전한 원격 로그인을 위한 방법 중 하나이다. SSH는 안전한 인증 옵션을 제공하며 강력한 암호화를 통해 통신 보안과 무결성을 보호한다. 클라이언트와 서버 간에 안전한 채널을 통해 통신한다. SSH는 TCP/IP 포트 22에서 작동하며, SSH 클라이언트는 SSH 서버로부터 원격 호스트에 연결하는 데 사용된다.

SSH 프로토콜은 암호화 표준을 사용하여 원격 시스템에 안전하게 연결하고 로그인하는 네트워크 프로토콜이다. SSH는 공개 키를 원격 시스템에 저장하고 개인 키를 클라이언트 시스템에 저장한다. 이러한 키는 수학적으로 쌍으로 생성된다.

SSH 프로토콜은 안전하지 않은 원격 쉘 프로토콜의 안전한 대안으로 설계되었다. SSH는 클라이언트-서버 패러다임을 사용하여 클라이언트와 서버가 안전한 채널을 통해 통신하도록 한다. SSH 프로토콜은 전송 계층을 포함하는 세 개의 계층으로 구성된다.

 

SSH 프로토콜은 세 가지 레이어 (트랜스포트 레이어, 사용자 인증 및 연결 프로토콜 레이어, SSH 프로토콜 데이터 교환 포맷 레이어)를 가지고 있으며, 각 레이어는 자신의 역할을 수행한다. SSH 프로토콜은 SSH2, SSH1 두 가지 버전으로 구현된다.

 

Linux의 SSH 프로토콜은 안전한 쉘(Shell)을 제공하며, 이를 통해 사용자는 네트워크를 통해 안전하게 서버에 로그인할 수 있다. SSH 프로토콜은 데이터 전송을 암호화하여 보안성을 보장한다. 또한, SSH 프로토콜은 리눅스 서버의 원격 제어, 파일 전송, 암호화된 터널링 등 다양한 용도로 사용된다.

SSH 프로토콜은 SSH 클라이언트와 SSH 서버간의 통신을 위한 프로토콜이다. SSH 클라이언트는 SSH 서버에 로그인하고, SSH 서버는 클라이언트의 로그인 정보를 확인한 후, 클라이언트의 요청에 대한 처리 결과를 반환한다. SSH는 로그인 ID와 암호와 같은 인증 정보의 노출을 방지할 수 있는 key-based authentication을 제공한다.


 

반응형
반응형

 


정의

바이너리(Binary)란, 0과 1로 이루어진 이진수(binary code)로 이루어진 파일을 의미한다. 컴퓨터에서는 바이너리 파일을 CPU가 직접 읽어들여 명령어(instruction)를 수행하며, 기계어(machine code)라고도 한다.

 

바이너리 파일은 컴파일된 소스코드나 기계어 코드를 포함하는 실행 가능한 파일(executable file)이다. 이 파일들은 사용자에 의해 실행될 수 있다. 하지만 바이너리 파일은 실행 파일로 실행되기 때문에 실행 파일이 아니면 실행되지 않는다. 이 때  실행 파일이 실행될 때는 CPU가 해당 명령어를 직접 수행한다.


리눅스는 분석 도구들을 제공하여 바이너리 파일 분석을 용이하게 할 수 있다. 바이너리 분석 도구들은 분석가가 더 잘 이해할 수 있도록 이진 파일의 내용을 분석하고 시각화할 수 있다.

리눅스에서는 바이너리 파일이 /bin, /sbin, /lib, /opt/bin과 같은 바이너리 디렉토리에 위치하며, 사용자들은 해당 파일들을 실행할 수 있다. 또한 바이너리 파일을 비교하기 위한 도구도 제공한다. 바이너리 파일은 실행 파일이나 라이브러리 파일의 변경이 있을 경우 다른 동작을 수행할 수 있으므로, 파일 비교가 중요하다.


장점

첫째, binary는 데이터를 빠르게 처리할 수 있다. 이진수 체계는 0과 1 두 가지 값만으로 이루어져 있어 다른 진수 체계에 비해 데이터 처리 속도가 빠르다.

둘째, binary는 데이터를 효율적으로 저장할 수 있다. 이진수 체계는 0과 1 두 가지 값만으로 이루어져 있기 때문에, 데이터를 저장하기 위해 필요한 공간이 다른 진수 체계에 비해 적다.

셋째, binary는 컴퓨터 시스템에서 프로그램을 실행하는 데에 필수적이다. 모든 컴퓨터 프로그램은 이진수 형태로 저장되며, 이진수 데이터를 해석하고 실행하는 것이 컴퓨터의 역할이다.


단점

첫째, 이진법을 사용하면 표현할 수 있는 수의 범위가 한정되어 있다는 점이다. 이진법에서 사용하는 0과 1 두 개의 숫자만으로는 표현할 수 있는 수의 범위가 제한적이기 때문에, 이진법으로 표현할 수 있는 수의 개수가 제한된다.

둘째, 이진법으로 표현한 결과가 다른 결과와 동일한 경우가 발생할 수 있다는 점이다. 이진법은 0과 1 두 개의 숫자만을 사용하기 때문에, 다른 입력에 대해 동일한 출력을 내는 경우가 발생할 수 있다. 이러한 경우에는 입력이 동일한 경우에 대해 동일한 출력을 내지 않는 다른 수 체계를 사용해야 한다.

셋째, 이진법으로 표현할 때 수의 자릿수가 늘어난다는 점이다. 이진법에서는 1로 끝나는 수 다음 수는 자릿수가 하나 더 많은 수가 되는데, 이는 십진법에서 9로 끝나는 수 다음 수가 자릿수가 하나 더 많은 수인 것과 유사하다. 그러나 이진법에서는 수의 자릿수가 늘어날 때마다 0과 1의 숫자를 더 많이 사용해야 하기 때문에, 수의 크기가 커질수록 이진법으로 표현하기 어려워진다.


 

반응형