Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 드림핵
- Security
- Review
- 클라우드
- 복습
- 리눅스마스터2급
- 웹해킹
- 정리
- 워게임
- 보안
- DreamHack
- 리눅스
- Shell
- 위험관리
- wargame
- 공부
- it자격증
- study
- IT
- webhacking
- 기록
- 케이쉴드주니어
- reivew
- 정보처리기사
- 자격증공부
- 취약점진단
- 자격증
- 보안용어
- keyword
- Linux
Archives
- Today
- Total
IT Memory Note
[K-Shield Jr - 복습] 리눅스 서버 기본 활용 방안 1 본문
리눅스 서버 종류와 특징
유닉스의 개요
- 리눅스가 개발되었던 뿌리가 됨
- 대부분 C언어를 기반하여 개발된 운영체제
- 이식성이 강해 새로운 기종에 적은 노력으로 이식이 가능
- 시분할 구성으로 다중 사용자, 멀티 태스킹, 이식성으로 설계
- System V계와 BSD계로 나누어 지며, System V는 상업 지향적 성향을 가지고 있으며, BSD계는 연구 개발 지향적으로 개발
→ 현재는 두 장점을 모두 갖는 형태를 취함
유닉스의 종류
종류 | 설명 |
System V R4.0 | 유닉스 표준 버전으로 벨 연구소에서 개발된 유닉스 정식 이름 |
SCO UNIX | Santa Cruz Operation사의 SCO Open Desktop과 SCO Open Release 3의 이름이며 UNIX SVR3.2.5의 구현 형태 |
SunOS | Sun사의 BSD 계열 운영체제 |
Solaris | · 대표적인 유닉스 운영체제로 꼽힘 · Sun사의 SVR4 구현 |
HP-UX | SVR4의 변형으로 HP사에서 개발된 운영체제 |
AIX | · IBM의 System V 계열 운영체제로 SVR4, BSD, OSF/1 특징을 고루 가지고 있음 · 인텔 프로세스를 위한 Free UNIX 방식의 운영체제 |
리눅스의 개요
- 사유 유닉스에 반대하며 자유 소프트웨어 재단(Free Software Foundation)을 설립하고 유닉스의 복제본 GNU(GNU's Not Unix)를 개발 → GNU는 재귀적 용어
- 자유 소프트웨어 재단은 사유 소프트웨어로 바뀌는 것을 막고자 GNU GPL(GNU General Public License)라는 규정을 만듦
- 이 활동이 부진해지자 리누스 토발즈가 리눅스를 개발 → 0.1 버전만 해당
- 타 운영체제와 달리 리눅스 커널과 다른 구성 요소가 무료인 오픈 소스 소프트웨어
- PC 또는 기타 장비에서의 이식성이 높음
리눅스의 종류
계열 | 종류 | 설명 |
Debian |
Ubuntu | · 캐노니컬에서 2004년 10월 20일에 처음 공표된 대표적인 리눅스 계열 운영체제 · 개인용 노트북과 데스크톱에서 가장 인기가 많음 (서버 전용 운영체제도 존재) |
Kail Linux | · 모의 해킹 또는 Offensive 보안을 목적으로 만들어진 운영체제 · 여러 해킹 도구, 모듈이 포함되어 있음 |
|
리눅스 민트 | · 자바, 플래시 웹 플러그인 등을 기본적으로 포함한 운영체제 · 우분투에 비해 GUI의 외형적 아름다움에 상대적으로 더 집중함 |
|
TmaxOS | 우리나라에서 개발한 리눅스 배포판 (실행이 어려워 현재 사용하지 않음) | |
Redhat |
Fedora | · 기업용 RHEL(Red Hat Enterprise Linux)에서 페도라 프로젝트를 후원하면서 만들어진 일반 사용자용 운영체제 · 페도라를 바탕으로 RHEL 개발 |
RHEL | · 레드햇에서 개발한 리눅스 배포판 · 유료 라이선스로 판매되는 대신 레드햇 측의 기술 지원 제공 · 개발용으로 무료 라이선스 사용이 가능 |
|
CentOS | · 페도라가 RHEL의 기술 반영을 따라가지 못해 완벽에 가깝게 반영하는 것을 목적으로 만들어짐 · K사와 N사 같은 국내 대기업에서도 활용되는 오픈 소스 운영체제 |
|
그 외 계열 |
Mandriva | · ALT, Mazeya · PC LinuxOS |
Slacware | · Vector Linux · Frugalware |
|
Gentoo | Sabayon Linux |
|
Arch | Manjaro Linux |
※ Debian 계열과 Redhat 계열의 패키지 관리
< Debian 계열 >
- apt, apt-get(Advanced Packaging Tool)
- 파일확장자 : DEB
< Redhat 계열 >
- yum(Yellodog Update Modified)
- 파일확장자 : RPM
리눅스 쉘의 이해
쉘(Shell)의 개요
< 의미 >
- 운영체제 상에서 다양한 운영체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램
- 사용자와 운영체제의 내부(커널) 사이의 인터페이스를 감싸는 층
< 분류 >
- CLI(Command Line Interface) : 명령 줄 인터페이스
- GUI(Graphic User Interface) : 그래픽 사용자 인터페이스
→ 쉘은 응용 프로그램과 운영체제 사이에 위치함
< 기능 >
- 명령어 해석기 기능
- 사용자와 커널 사이에서 명령을 해석해 전달
- 프로그래밍 기능
- 여러 명령을 사용해 반복하여 수행하는 작업을 하나의 프로그램으로 제작(쉘 스크립트)
- 사용자 환경 설정의 기능
- 초기화 파일 기능을 이용해 환경을 설정
- 로그인할 때 초기화 파일이 실행되어 사용자의 초기 환경을 설정
※ 쉘 변경 명령어 : chsh
쉘(Shell)의 종류
분류 | 종류 | 설명 |
GUI (Graphic User Interface) |
MS Windows 환경 | · Windows 탐색기 · 라이트스탭 · 지오쉘 · BB4Win · 이미지 데스크톱 |
Apple Mac OS X 환경 | Finder | |
X-Windows 시스템 기반 환경 (주로 Unix) |
||
CLI (Command Line Interface) |
Unix Shell | · 본 쉘(sh) : 최초의 쉘인 톰프슨 쉘을 대체하는 실행파일로 AT&T 벨 연구소 스티븐 본이 개발 - Almquist shell(ash) - Bash : 본 쉘(sh)에서 다양한 기능을 확장시킨 쉘 · C 쉘(csh) - 테넥스 C 쉘(tcsh) · 콘 쉘(ksh), 스키마 쉘(scsh), Z 쉘(zsh) |
COMMAND.COM | 도스용 쉘 | |
CMD.EXE | OS/2의 텍스트 모드와 Windows NT용 쉘 |
주요 리눅스 쉘의 특징
쉘 종류 | 특징 |
sh(Bourne Shell) | 1997년 개발한 유닉스 버전 7의 기본 쉘 |
Bash(Bourne-again shell) | · GNU 프로젝트를 위해 개발하였고 sh을 기반으로 개발 · 현재 리눅스 표준 쉘이며, sh 명령어 문법과 호환 · ksh, csh의 유용한 기능을 참고하여 명령어 히스토리, 명령어 완성 기능, 히스토리 치환, 명령행 편집 등을 지원 |
csh(C Shell) | · C언어를 기반으로 만들어졌으며, 강력한 프로그램 작성 기능 지원 · 히스토리 기능, 별명(alias) 기능, 작업 제어 등의 유용한 기능 포함 |
tcsh(The Enhanced C Shell) | · 테넥스(TENEX)라는 운영체제에 명령행 완성 기능과 csh와 통합하여 탄생 · csh의 기능을 강화시킨 쉘로 명령어 완성 기능, 명령행 편집 기능 등을 지원 |
ksh(Korn Shell) | · Bash와 마찬가지로 sh를 확장해서 개발 · 작업 제어, 히스토리 기능, 별명(alias) 기능, 명령행 편집 기능, 명령행 완성 기능 등 csh의 많은 기능 추가 |
쉘 확인
- 로그인 쉘 관련 환경 변수 : SHELL
- 현재 설정된 쉘 확인하는 방법
$ echo $SHELL
/bin/bash
- 변경 가능한 쉘 확인
$ chsh -l
/bin/sh
/bin/bash
...
$ cat /etc/shells
/bin/bash
/bin/csh
...
- 사용자 로그인 쉘 변경 명령어 : chsh
※ 변경한 쉘의 적용은 다음 로그인부터 유효함
$ echo $SHELL
/bin/bash
$ chsh
Changing shell for [사용자명]
New shell [/bin/bash]: [변경할 쉘 경로]
password:
Shell changed.
$ echo $SHELL
[변경한 쉘 경로]
$ cat /etc/passwd | grep [사용자명]
[사용자명]:x:501:501::[홈디렉터리 경로]:/bin/bash
쉘의 입출력
echo
- 주어진 문자열을 공백과 개행 문자 등을 포함하여 표준 출력으로 출력하는 명령어
- 명령어 형식 : echo [옵션] [문자열]
$ echo Hello World
Hello World
$ echo Hello World\n
Hello Worldn
# 문자열에서 개행 문자(\n) 인식
$ echo -e "Hello World\n"
Hello World
# 마지막에 따라오는 개행 문자(Newline) 출력하지 않음
$ echo -n "Hello World"
Hello World $
< echo 명령어 옵션 >
옵션 | 기능 |
-n | 마지막에 따라오는 개행 문자(newline)를 출력하지 않음 |
-e | 문자열에서 역 슬래시(\)와 조합되는 이스케이프 문자를 인용 부호("")로 묶어 인식 |
< 이스케이프 문자의 종류 >
\a | 경고음 출력 |
\b | 백스페이스 |
\c | 마지막 개행 문자 출력 안 함 |
\f | 폼 피드 형식(프린터에서 용지 바꿈)으로 출력 |
\n | 개행 문자 출력 |
\r | 캐리지 리턴 : 문자의 새 줄을 시작하는데 쓰이는 제어 문자나 그 구조 |
\t | 수평 탭 |
\v | 수직 탭 |
\\ | 역 슬래시 |
리다이렉션
- 명령어의 표준 출력값을 특정 파일에 저장하는 행위
[ '>' 와 '>>' ]
- > : 명령어의 표준 출력값을 파일의 첫 번째로부터 새로 입력 → Over Write - 처음/덮어쓰기
- 명령어 형식 : [명령어] > [파일명]
- >> : 명령어의 표준 출력값을 파일의 마지막에 이어서 입력 → Append - 이어쓰기
- 명령어 형식 : [명령어] >> [파일명]
# 스크립트 작성
$ touch test.sh
$ vi test.sh # [I]를 눌러서 Insert 모드 실행
#! /bin/sh
echo "Hello World!!" > file.txt
echo "Hi" >> file.txt
# 위와 같이 작성 후 [ESC] + :wq 입력 + [ENTER]
# 스크립트 실행 결과
$ chmod +x test.sh
$ ./test.sh
$ cat file.txt
Hello World!!
Hi
파이프
- 명령과 명령을 연결할 때 사용 → 필터링 기능
- 명령어 형식 : [명령어] | [명령어]
$ cat /etc/passwd | grep [사용자명]
[사용자명]:x:501:501::[홈디렉터리_경로]:/bin/bash
$ ls -al | grep file
-rw-rw-r--. 1 [사용자명] [파일생성날짜시간] file.txt
'K-Shield Jr' 카테고리의 다른 글
[K-Shield Jr - 복습] 리눅스 서버 기본 활용 방안 3 (0) | 2023.09.02 |
---|---|
[K-Shield Jr - 복습] 리눅스 서버 기본 활용 방안 2 (0) | 2023.08.17 |
[K-Shield Jr - 복습] 기업 IT 인프라 구성의 이해 (0) | 2023.08.16 |
[K-Shield Jr - 복습] 보안 업무 맛보기 및 Keyword (0) | 2023.08.15 |
[K-Shield Jr 복습] 정보시스템 취약점 진단 기준 및 분석 실무 1 (0) | 2023.07.31 |