Jun's Development Journey
[Part3_NOS] 리눅스 시스템 본문
1. 리눅스 특징
특징 | 내용 |
다중 사용자 | 여러 명의 사용자가 네트워크를 통해 접속하여 시스템을 사용할 수 있다. |
다중 작업 | 운영체제 내에서 여러 개의 프로세스를동시에 실행시켜 CPU를 스케쥴링하여 사용할 수 있다. |
다중 처리기 | 한 개 이상의 CPU가 탑재되어 있는 경우 여러 개의 CPU를 지원해주는 다중 처리지원 |
다중 플랫폼 | 여러 종류의 CPU를 지원(Intel, Sun Sparc, Power PC ...) |
계층형 파일 시스템 | 루트(Root)를 기반으로 하위 디렉터리를 이루는 계층형 파일 시스템이다. |
POSIX과 호환 | 유닉스 시스템의 표준 인터페이스를정의한 POSIX 표준을 따른다. |
우수한 네트워킹 | TCP/IP, IPX/SPC, Appletalk, Bluetooth 등 다양한 프로토콜을 지원하며 리눅스 설치 이후에 IP 주소, 게이트웨이, 서브넷 등을 설정하면 네트워크를 바로 사용할 수 있다. |
가상 콘솔 | 기본적으로 6개의 가상 콘솔이 있으며, 이를 통해 물리적 모니터의 한계를 극복 |
가상 기억장치 | - 보조 기억 장치를 마치 주기억 장치처럼 사용할 수 있게 하여 주기억 장치의 공간을 증대하는 방법이다. - 기억 공간을 확대하여 기억장치를 효율적으로 사용할 수 있어서 시스템이 안정적이다. |
2. 구조
구조 | 설명 |
커널(Kernel) | - 프로세서 사용을 관리 - 주 기억장치 사용을 관리 - 실행 중인 프로세스를 관리 - 주변 장치와 입출력을 관리 |
쉘(Shell) | - 사용자의 명령어를 실행한다. - 사용자가 명령어를 입력하면 바로 실행시키는 인터프리터 기능을 제공 - 운영체제와 사용자 간에 대화식 인터페이스를 제공 - 리눅스 표준셀은 bash이고, 이 외에도 C Shell, Korn Shell 등 다양한 셀을 제공 |
파일 시스템 | - 사용자 파일과 디렉터리를 관리 - 파일과 디렉터리 등에 권한을 설정하고 해제 - 파일의 연결 정보인 링크를 관리 - 파일의 소유자, 그룹, 파일 생성 일자, 변경 일자 등을 관리 |
3. 리눅스 파일 시스템
1) fdisk
- 하드 디스크 초기화 및 파티션을 생성하는 것
- fdisk [-l] [-v] [-s 파티션] [장치명] 형태로 실행
2) mkfs
- 하드 디스크를 파티션했으면, 해당 파티션에 파일 시스템을 생성하는 명령어
- mkfs [옵션] [장치이름] 형태로 실행
3) fsck
- 파일 시스템의 무결성을 검사하는 명령어
- 오류가 발생하면 수정할 수 있다.
5) mount
- 단순하게 디렉터리만 연결하여 사용하는 것이 아니라 CD-ROM, USB 등과 같은 장치를 연결할 때도 사용되는 것이고, mount 명령어를 실행하여 연결을 수행할 수 있다.
- 리눅에서는 특정 디렉터리를 연결할 경우 mount 명령어를 사용한다.
6) 종류
- 리눅스 파일 시스템은 ext(Extend) 2, ext3, ext4 가 있으며 현재 대부분의 리눅스는 ext4를 지원한다.
종류 | 설명 |
ext2 | - 단일 파일의 크기가 최대 2 Gbyte - 파일명은 최대 256 Byte - 최대 지원 파일 시스템 크기는 4 Tera Byte - 디렉터리 당 저장 가능한 파일 수는 약 25,500개 |
ext3 | - 단일 파일의 크기가 최대 4 Gbyte - 파일명은 최대 256 Byte - 최대 지원 파일 시스템 크기는 16 Tera Byte - 디렉터리 당 저장 가능한 파일 수는 약 65,565개 - 저널링 파일 시스템을 지원 |
ext4 | - 대용량 파일 지원 - ext2, ext3 호환성, 마운트 가능 - fsck 성능 향상 - Extends 지원 : 큰 사이즈 파일 삭제 시 시간 단축 - 하위 디렉터리 - 조작 모음 : ext3 저널링 파일 시스템에서 발생되는 단편화를 조작모음으로 개선함 |
4. 리눅스 디렉터리 구조
디렉터리 구조 | 설명 |
/ | 루트 디렉터리 |
/bin | 기본적인 실행 명령 |
/boot | LILO 등부팅에 관련된 파일 |
/dev | 장치 파일모음 |
/etc | 시스템 설정 파일 |
/home | 사용자 홈 디렉터리 |
/lib | C 라이브러리 |
/mnt | 임시 마운트용 디렉터리 |
/proc | 시스템 정보를 가진 가상 디렉터리 |
/root | 루트 사용자의 홈 디렉터리 |
/sbin | 시스템 관리용 실행 파일 |
/tmp | 임시파일 디렉터리 |
/usr | 애플리케이션이 설치되는 디렉터리 |
/var | 시스템에서 운영되는 임시 파일 및 로그 파일 |
5. 리눅스 계정 관리
5-1) 사용자 생성
- useradd 혹은 adduser
- useradd junhyukkim 와 같은 형식으로 사용
5-2) passwd 파일과 shadow 파일
- 사용자가 계정을 사용하기 위해서 패스워드를 입력해야 한다.
- 사용자가 입력한 패스워드는 /etc/passwd 파일과 /etc/shadow 파일을 참조하여 사용자 인증 후 로그인을 수행시켜준다.
6. 리눅스 권한 관리
6-1) umask
- Default 권한 값을 갖고 있다.
- umask : 디폴트 권한 값 확인
- umask 0000 : 디폴트 권한 값 변경
6-2) chmod
- 사용자에게 권한을 부여 하려면 u 옵션에 rwx(읽기, 쓰기, 실행) 권한을 부여하고, 그룹에게 권한을 부여할 때는 g 옵션에, 다른 사용자에게 부여할 때는 o 옵션을 사용한다.
- chmod [옵션] 파일명 의 최고 권한은 777이다.
- 소유자(r : 4, w : 2, x : 1) 그룹(r : 4, w : 2, x : 1) 다른 사용자(r : 4, w : 2, x : 1)
- chmod 771 abc 일 경우 유저와 그룹은 읽기, 쓰기, 실행 권한이 주어지지만, 다른 사용자는 실행 권한만 주어졌다.
- 명령 종류
명령 기호 | 설명 |
u | - user - chmod u+rwx junhyukkim.txt |
g | - group - chmod g+rwx junhyukkim.txt |
o | - other - chmod o+rwx junhyukkim.txt |
a | - all - chmod a+rwx junhyukkim.txt |
+ | 권한 추가 |
- | 권한 삭제 |
r | 읽기 |
w | 쓰기 |
x | 실행 |
6-3) chown
- 파일에 대한 사용자와 그룹을 변경할 수 있는 명령어
- chown [option] [UID:GID] [디렉터리/파일명] 형식
- 명령어 옵션
옵션 | 설명 |
-R | 하위 디렉터리의 모든 권한을 변경 |
-c | 권한 변경 파일 내용 출력 |
- 명령어 인자값
인자 값 | 설명 |
+ | 해당 권한을 더함 |
- | 해당 권한을 제거 |
= | 해당 권한으로 그대로 변경 |
- 예시
chown junhyukkim junhyukkim.txt => 해당 텍스트 파일을 junhyukkim 소유자로 변경
6-4) chgrp
- 파일이나 디렉터리의 소유 그룹을 변경하는 명령어
- chgrp [옵션] [그룹파일] 형식
7. 특수 권한
7-1) setuid
- 권한이 설정된 파일을 다른 사용자가 실행하게 되면 실행될 때 그 파일의 소유자의 권한으로 실행되는 파일
- 대표적으로 /usr/bin/passwd 파일이 있다.
1) /etc/passwd로 접근하여 비밀번호를 변경하도록 한다. 실제 /etc/passwd 권한은 소유주인 root만이 변경 가능하도
록 되어있다.
2) 만약 setuid가 적용되있지 않다면, 일반 사용자들은 항상 관리자를 거쳐 변경해야 한다.
3) -rwsr-xr-x 으로 설정되어 있고, 소유자 실행 권한 위치에 소문자 s면 설정되어있고, 대문자 S면 실행 권한이 없는 것
이다.
7-2) setgid
- 파일 생성자의 그룹 소유권을 얻는 것
- 예를 들어 junhyukkim 사용자가 AAA 디렉터리에 디렉터리 및 파일을 생성할 수 없다. 이 때 root가 chmod 2777 AAA 디렉터리에 setgid를 부여하면 junhyukkim 사용자가 AAA 디렉터리에 하위 디렉터리를 생성하거나 파일을 생성할 수 있다.
7-3) sticky bit
- 공용 디렉터리를 만들어서 모두 자유롭게 사용할 수 있도록 하기 위해 만든 것
- 해당 디렉터리 삭제는 소유자만 가능하다.
- /tmp 디렉터리를 확인하면 drwxrwxrwt로 되있으며, 여기서 t 가 sticky bit가 설정되어있음을 말한다.
8. 리눅스 명령어
8-1) 디렉터리 명령어(mkdir)
- 리눅스에서 디렉터리를 생성할 때 사용
- 옵션
옵션 | 설명 |
-m | 디렉터리 권한을 설정, 기본 값은 755 |
-p | 상위 경로도 함께 지정 |
-v | 디렉터리 생성 후에 생성된 디렉터리에 대한 메시지를 출력함 |
8-2) 파일 명령어(cp, rm,mv)
1) cp
- 파일 혹인 디렉터리를 복사하는 명령어이다.
- cp [옵션] [원복파일] [복사파일]
- 옵션
옵션 | 설명 |
-f | 덮어 쓰기를 해서 복사 |
-r | 하위 디렉터디 전부를 모두 복사 |
- 예시
1) cp junhyukkim.txt junhyukkim2.txt
2) cp -r junhyukkim junhyukkim2 => junhyukkim 디렉터리의 하위 전부를 복사
2) rm
- 파일을 삭제할 때는 rm 명령어를 사용한다.
- 옵션
옵션 | 설명 |
-f | 물어보지 않고 강제로 삭제함 |
-r | 디렉터리 삭제 시 파일과 하위경로 모두 삭제 |
-v | 파일 삭제 정보 출력 |
- 예시
1) rm junhyukkim.txt
2) rm -r junhyukkim => 하위 디렉토리까지 모두 삭제
3) mv
- 파일및 디렉터리를 이동하거나 파일의 이름을 변경할 때 사용하는 명령어
- 원본 파일과 대상 파일이 이름이 다르면 변경되고, 이동할 파일이 여러개 이면 이동 모드로만 동작한다.
- mv 명령어
1) mv [옵션] 원본파일 대상파일
2) mv [옵션] 원본파일 디렉터리
3) mv [옵션] 디렉터리 디렉터리
- 옵션
옵션 | 설명 |
-b | 백업 파일을 생성 |
-f | 사용자에게 묻지 않고 파일을 덮어씀 |
-i | 덮어 쓸 경우 사용자에게 물어봄 |
-n | 파일이 존재하면 덮어쓰지 않음 |
8-3) 텍스트 명령어
1) cat
- 파일의 내용을 확인할 수 있는 명령어
- cat [옵션] [파일명]
- 예시
1) cat -n /etc/passwd => -n 옵션으로 줄 번호와 같이 출력된다.
2) cat /etc/passwd > test => cat 결과를 test 파일에 저장
3) cat test | more => more 명령어로 cat 결과를 페이지 단위로 출력
4) cat > test2 => 리다이렉션으로 키보디에서 입력 받고 test2 파일로 저장한다.
2) grep
- 특정 파일 내에 있는 문자열을 검색하는 역할
- grep [검색 문자열] [파일명], grep[옵션] [검색 문자열] [파일명]
- 옵션
옵션 | 설명 |
-c | 검색 문자열이 속한 행 수를 출력 |
-H | 파일명과 함께 출력 |
-i | 대소문자를 구분하지 않음 |
-n | 검색한 문자가 속하는 행 번호와 함께 출력 |
-r | 현재 경로에서 하위 경로까지 검색 |
-v | 검색하는 문자가 없는 행을 출력 |
-w | 패턴 표현식을 하나의 단어로 검색 |
8-4) 네트워크 명령어
1) netstat
- 시스템과 연결된 모든 네트워크 연결을 확인하는 명령어
- 옵션
옵션 | 설명 |
-a | 모든 소켓 정보를 확인 |
-n | 도메인 주소를 읽지 않고 숫자로 출력 |
-p | PID와 사용 중인 프로그램 명을 출력 |
-g | 멀티캐스트 그룹 정보 |
-r | 라우팅 테이블 정보를 출력 |
- 상태값
상태값 | 설명 |
LISTEN | 접속 요청을 대기하고 있는 상태 |
ESTABLISHED | 연결이 확립되어 통신이 이루어지고 있는 상태 |
CLOSE_WAIT | 연결 종료를 대기하고 있는 상태 |
TIME_WAIT | 연결이 종료되고 특정 시간 동안 소켓을 열어둔 상태 |
CLOSE | 연길이 종료된 상태 |
2) arp
- IP 주소를 MAC 주소로 변환하는 프로토콜
- 옵션
옵션 | 설명 |
-a | ARP Cache 정보에 있는 모든 호스트 정보 출력 |
-s | ARP Cache에 저장된 특정 IP에 대해서 MAC 주소 변경 |
-d | ARP Cache에 저장된 특정 MAC 주소 삭제 |
-i | 특정 Ethernet의 ARP 확인 |
3) traceroute
- 네트워크를 사용해서 목적지를 찾아가는 경로 정보를 알 수 있는 명령어
- 구간 별로 게이트웨이, IP 주소, 시간 등의 정보를 알 수 있음
- 내부적으로 UDP, ICMP를 사용
4) ping
- 네트워크 상태를 점검하기 위한 명령어
- ICMP echo Request를 전송하고 ICMP echo reply가 되돌아 오는지 확인하여 네트워크의 상태를 점검
5) nslookup
- 도메인 명에 대한 IP 주소를 확인하기 위함
- 리눅스에서 네임 서버의 동작 확인 및 운영 관리를 위함
9. 프로세스
9-1) 데몬 프로세스
- 리눅스 서버가 부팅될 때 백그라운드에서 실행되고 있다가 클라이언트의 요구에 대한 서비스를 수행하는 프로그램
- 종류
1) standalone : 백그라운드에서 항상 실행중이며, 클라이언트에게 서비스 요청받으면 즉시 처리를 수행
2) inetd : 메모리에 상주하지 않고 sleep 상태로 있다가 요청 시 Wake up 되어 서비스 수행
9-2) ps
- 프로세스 상태 정보를 확인하는 명령어
9-3) pstree
- 실행 중인 프로세스의 상태를 트리 형태로 출력하는 명령어
9-4) top
- 리눅스 시스템에서 시스템 자원을 모니터링할 수 있는 소프트웨어
- CPU 사용률, 메모리 사용률, 실행 중인 프로세스 리스트 등을 확인할 수 있다.
10. SAMBA
- 리눅스 운영체제에 Microsoft NETBIOS 프로토콜을 제공해서 윈도우 시스템 운영체제와 자원 및 프린터를 공유하는 프로그램
'자격증 공부 > 네트워크 관리사 2급 필기' 카테고리의 다른 글
[Part4_네트워크 운용 기기] 네트워크 서버 운영 (0) | 2020.10.13 |
---|---|
[Part3_NOS] 윈도우 시스템 (0) | 2020.10.08 |
[Part2_TCP/IP] OSI 7 Layer_2 (0) | 2020.10.05 |
[Part2_TCP/IP] OSI 7 Layer_1 (0) | 2020.09.28 |
[Part1_네트워크 일반] 데이터 통신 (0) | 2020.09.22 |