2. 파일 시스템 파일 디렉터리와 경로명 파일 시스템의 구조 새로운 파일 생성 소유권과 허가 파일 유형과 일반화.

Slides:



Advertisements
Similar presentations
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
Advertisements

Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
컴퓨터와 인터넷.
Linux Seminar Cahpter 10. Linux File System
UNIX 운영 체제의 설계 - Chapter 4. 파일의 내부 표현
3장 파일 및 디렉토리 조작 정보보호 연구실 김동민.
정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
Image & Video processing
제14장 동적 메모리.
MySQL 및 Workbench 설치 데이터 베이스.
레이스 컨디션.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
강 명 수 LINUX 설치 강 명 수
양방향 파이프의 활용 양방향 통신 파이프는 기본적으로 단방향이므로 양방향 통신을 위해서는 파이프를 2개 생성한다.
Root Filesystem Porting
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
DSP Lab. Week 3 My image Doug Young Suh Media Lab. Rm401
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Root Filesystem Porting
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
Linux Master 김희승 임승한 OneScore 임승한.
HW #4 파일과 디렉토리 1. 자신의 HOME 디렉토리 아래에 다음과 같은 구조의 디렉토리 및 파일을 생성하고, 이 구조를 다음 명령을 사용하여 파일로 저장한 후, 이를 프린트하여 제출한다. $ ls –lR linux_unix > hw4-1 $HOME linux_unix.
파일 기술자 파일 기술자 현재 열려있는 파일을 구분하는 정수값 저수준 파일 입출력에서 열린 파일을 참조하는데 사용
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
Cross Compiler 설치.
파일 접근권한 제어 stat 구조체의 st_mode 항목에 파일의 종류와 접근권한 정보저장 st_mode 값의 구조.
CHAP 12. 리소스와 보안.
Cross Compiler를이용한 커널 컴파일 및 포팅
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
27장. 모듈화 프로그래밍.
Device Driver 임베디드 시스템 I.
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
HW #4 UNIX 파일과 디렉토리 1. 자신의 HOME 디렉토리 아래에 다음과 같은 구조의 디렉토리 및 파일을 생성하고, 이 구조를 다음 명령을 사용하여 파일로 저장한 후, 이를 프린트하여 제출한다. $ ls –lR linux_unix > hw4-1 $HOME linux_unix.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Nessus 4 설치 정보보호응용 조용준.
논리회로 설계 및 실험 5주차.
화면 갈무리 및 파일 권한 설정.
setuid, setgid, sticky bit 권한
컴퓨터 시스템 하드웨어 컴퓨터 시스템 소프트웨어 C P U Control Unit 입 력 장 치 출 력 장 치 ALU
WebtoB - Jeus 연동.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
PMIS 서버 설정 환경설정 작성자 : 배경환.
S-Work 2.0 DRM 신규 버전 설치 가이드 SOFTCAMP
과제 1 4bit x 4 SRAM이 있다 아래 (1), (2) 두 입력에 대한 출력값 [3:0] Dout을 나타내시오 (1)
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Kernel, Ramdisk, JFFS2 Porting
STS 에서 웹 서버 설치 방법.
OpenCV 설정 2.21 만든이 딩딩.
시스템 인터페이스 Lab#5 쉡 실습.
2장. 솔라리스10 설치. 2장. 솔라리스10 설치 Solaris 3. 솔라리스10 설치 후 설정하기 1. 텔넷 ( telnet ) 서비스 사용 SSH ( Secure Shell ) 서비스 사용 FTP ( File Transfer Protocol )서비스 사용 시스템.
Linux 9.X 기초에서 활용까지 Chapter 06 VI 편집기.
 파일 아카이브와 압축 명령 익히기.
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
Homework #3 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
4. 셸을 이용한 명령어 입력. Unix 시스템 쉘 간단한 셸 명령 명령 매개변수(Command arguments)
과제 4: Thread (5월 9일까지) 4장 연습문제 풀이
06. 디바이스의 등록과 해제 김진홍
 6장. SQL 쿼리.
Docker Study 6~7.
Chapter 07. 사용자 관리 Solaris3. 사용자 암호 관리 및 소유권 관리
시스템 해킹과 보안 permission과 SetUID.
Linux/UNIX Programming
Presentation transcript:

2. 파일 시스템 파일 디렉터리와 경로명 파일 시스템의 구조 새로운 파일 생성 소유권과 허가 파일 유형과 일반화

1. 파일 파일의 의미 $ cat > data ACD ^D $ cat data $ 시스템 차원에서 데이터를 저장하기 위한 가장 기본적인 단위 리눅스에서 파일은 단순히 바이너리 (2진) 데이터를 저장하고 있다. 저장된 데이터는 논리적인 구조가 정해져 있지 않다. 논리적인 구조는 프로그램에 의해 결정된다. 파일의 예 - data 파일은 총 4바이트의 데이터를 저장하고 있음 - 텍스트 파일이라고 가정 문자 A, C, D와 개행문자를 저장하고 있음 - 2진 파일이라고 가정 숫자형 값인 65, 67, 68, 10을 저장하고 있음 $ cat > data ACD ^D $ cat data $

1. 파일 cat으로 바이너리 파일을 표준 출력하는 예 $ cat three 바이너리 파일은 문자 코드에 해당하지 않는 2진 값도 문자로 가정하므로 아래와 같이 의미 없는 글자들이 찍히게 된다. $ cat three d.1__do_global_dtors_aux__EH_FRAME_BEGIN__fini_dummyobject.2frame_dummyinit_dummyforce_to_data__CTOR_LIST____do_global_ctors_aux__CTOR_END____DTOR_END____FRAME_END__one.ctwo.c_DYNAMIC__register_frame_info@@GLIBC_2.0_fp_hw_init__deregister_frame_info@@GLIBC_2.0_start__bss_startmain__libc_start_main@@GLIBC_2.0data_startprintf@@GLIBC_2.0_finiprintmsg_edata_GLOBAL_OFFSET_TABLE__end_IO_stdin_used__data_start__gmon_start__  $ $

2. 디렉토리와 경로명 디렉토리 (directory) 파일의 목록을 저장하기 위한 특수한 형태의 파일이다. 디렉토리 파일이라고 부르기도 함 디렉토리에는 파일명과 inode number가 저장되어 있다. 파일명 . .. data temp Inode number 100 327 1238 53

2. 디렉토리와 경로명 디렉토리 엔트리 (directory entry) 디렉토리 파일의 목록을 엔트리(entry)이라고 한다. 모든 디렉토리는 적어도 두 개의 엔트리는 가지고 있다. 자기 자신을 나타내는 엔트리 (.) 부모 디렉토리를 나타내는 엔트리 (..) $ ls -la drwxr-xr-x    2 kimyh    graduate     4096 Nov 18 17:39 . drwxr-xr-x    3 kimyh    graduate     4096 Nov 18 17:39 .. $

2. 디렉토리와 경로명 아이노드 블록 번호 $ ls -lai 모든 디렉토리 항은 가리키는 파일의 아이노드 블록 번호를 가지고 있다. $ ls –i 로 확인할 수 있음 $ ls -lai 2845303 drwxr-xr-x    2 kimyh    graduate     4096 Nov 18 17:44 . 3139591 drwxr-xr-x    3 kimyh    graduate     4096 Nov 18 17:39 .. 2845304 -rw-r--r--    1 kimyh    graduate       13 Nov 18 17:44 file $ 아이노드 블록 번호 현재 디렉토리 파일의 아이노드 블록의 번호는 2845303이다. 부모 디렉토리 파일의 아이노드 블록의 번호는 3139591이다. 현재 디렉토리에 등록되어 있는 file 파일의 아이노드 블록의 번호는 2845304이다.

2. 디렉토리와 경로명 od 명령 지정한 파일의 데이터 블록의 내용을 바이트 단위로 표준 출력한다. 기본적으로 바이트의 값을 8진수로 출력한다. $ ls -lai 119271 drwxr-xr-x   2 kimyh    graduate      512 Nov 18 17:55 ./ 15552 drwxr-xr-x   5 kimyh    graduate      512 Nov 18 17:54 ../ 119272 -rw-r--r--   1 kimyh    graduate       13 Nov 18 17:55 file 119273 -rw-r--r--   1 kimyh    graduate       14 Nov 18 17:55 text $ od -c . 0000000  \0 001 321 347  \0  \f  \0 001   .  \0  \0  \0  \0  \0   < 300 0000020  \0  \f  \0 002   .   .  \0  \0  \0 001 321 350  \0 020  \0 004 0000040   f   i   l   e  \0  \0  \0  \0  \0 001 321 351 001 330  \0 004 0000060   t   e   x   t  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0 0000100  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0 * 0001000 $

2. 디렉토리와 경로명 디렉토리 파일의 논리적인 구조 $ ls -lai 119271 . \0 15552 119272 f i l e 119273 t x $ ls -lai 119271 drwxr-xr-x   2 kimyh    graduate      512 Nov 18 17:55 ./ 15552 drwxr-xr-x   5 kimyh    graduate      512 Nov 18 17:54 ../ 119272 -rw-r--r--   1 kimyh    graduate       13 Nov 18 17:55 file 119273 -rw-r--r--   1 kimyh    graduate       14 Nov 18 17:55 text $ od -c . 0000000  \0 001 321 347  \0  \f  \0 001   .  \0  \0  \0  \0  \0   < 300 0000020  \0  \f  \0 002   .   .  \0  \0  \0 001 321 350  \0 020  \0 004 0000040   f   i   l   e  \0  \0  \0  \0  \0 001 321 351 001 330  \0 004 0000060   t   e   x   t  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0 0000100  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0 * 0001000 $

2. 디렉토리와 경로명 ls 명령이 수행되는 과정 ls는 지정한 디렉토리의 디렉토리 엔트리를 출력하는 프로그램이다. 그 과정을 다음과 같다. 1. 현재 디렉토리 파일에서 엔트리를 하나 읽는다. 2. 이 엔트리에서 inode number와 파일 이름을 얻는다. 3. inode number로 해당 파일의 정보를 읽어온다. 4. 읽어온 정보를 가공하여 출력한다. 5. 2번에서 4번의 과정을 반복한다. 위의 모든 과정이 ls 명령에 의해서만 이루어지는 것이 아니다. 리눅스 시스템의 커널의 도움으로 파일의 정보를 가져오게 된다.

2. 디렉토리와 경로명 계층 구조 리눅스의 파일 시스템에는 많은 수의 디렉터리와 파일이 존재한다. 하나의 디렉터리 안에는 또 다른 디렉터리나 파일이 존재한다. 모든 디렉터리와 파일은 유일하게 존재하는 루트 디렉터리를 시작으로 트리(tree) 모양의 계층적인 구조를 이루고 있다.

2. 디렉토리와 경로명 절대 경로와 상대 경로 경로명 (pathname) 파일 시스템 내에서 파일의 위치를 의미한다. 루트 디렉터리를 기준으로 파일의 위치를 표현 루트 디렉터리는 유일하면서 불변이기 때문에 절대 경로는 항상 같은 파일을 가리킨다. 상대 경로 현재 디렉터리를 기준으로 파일의 위치를 표현 현재 디렉터리는 바뀔 수 있기 때문에 동일한 상대 경로라도 현재 디렉터리에 다르면 가리키는 파일 역시 다르게 된다.

2. 디렉토리와 경로명 절대 경로와 상대 경로의 예 절대 경로 상대 경로 /home/apple 현재 디렉터리에 상관없이 항상 동일한 대상을 가리킴 상대 경로 ./bin 현재 디렉터리에 따라 가리 키는 대상이 달라짐 현재 디렉터리가 banana 현재 디렉터리가 root 상대 경로에서 “.”는 현재 디렉터리, “..”는 부모 디렉터리를 의미한다. banana 디렉터리의 “..”는 home 디렉터리이다.

3. 파일 시스템의 구조

3. 파일 시스템의 구조 리눅스의 파일 시스템 부트 블록 (Boot Block) 슈퍼 블록 (Super Block) 크게 네 가지 부분으로 구분할 수 있다. 부트 블록 (boot block) 운영체제를 부팅시키기 위한 코드가 저장되어 있다. 슈퍼 블록 (super block) 파일 시스템과 관련된 정보를 저장하고 있다. 아이노드 블록 (inode blocks) 파일에 대한 정보를 저장하고 있다. 모든 파일은 반드시 아이노드 블록을 하나 가지고 있다. 데이터 블록 (data blocks) 파일이 보관해야 하는 데이터를 저장하고 있다. 보관하는 데이터의 크기에 따라 여러 개일 수 있다. 부트 블록 (Boot Block) 슈퍼 블록 (Super Block) 아이노드 블록 (Inode Blocks) 데이터 블록 (Data Blocks)

3. 파일 시스템의 구조 아이노드 블록과 데이터 블록(들) 파일 $ cat > temp apple is red 파일 생성의 예 파일 아이노드 블록에 저장됨 $ cat > temp apple is red banana is yellow $ ls -l temp -rw-r--r--    1 kimyh    graduate       30 Nov 18 16:54 temp $ 데이터 블록에 저장됨

3. 파일 시스템의 구조 파일 관련 정보 $ cat > temp apple is red banana is yellow $ ls –l 명령을 실행했을 때 보여지는 파일의 정보 - rw-r--r-- 1 kimyh graduate 30 Nov 18 16:54 temp 파일 유형 접근권한 하드링크수 소유주 이름 그룹 이름 파일 크기 생성 날짜 파일명 ← 아이노드 블록에 저장 → 디렉터리 파일의 데이터 블록에 저장 $ cat > temp apple is red banana is yellow $ ls -l temp -rw-r--r--    1 kimyh    graduate       30 Nov 18 16:54 temp $

3. 파일 시스템의 구조

3. 파일 시스템의 구조

4. 새로운 파일의 생성 새로운 파일을 생성하는 과정 $ cat > file2 apple is red ^D 파일의 구조와 디렉토리 파일의 구조를 이해하면 새로운 파일이 생성되는 과정을 간단하게 생각해 볼 수 있다. $ cat > file2 apple is red ^D $ ls -li 2845304 -rw-r--r--    1 kimyh    graduate       13 Nov 18 17:44 file 2845305 -rw-r--r--    1 kimyh    graduate       13 Nov 18 20:10 file2 $ 새롭게 생성할 디렉토리에 동일한 이름의 엔트리가 존재하는지 확인한다. 아이노드 블록 하나를 할당 받는다. 할당 받은 아이노드 블록에 파일의 정보를 저장한다. 파일이 저장할 데이터의 크기에 따라 데이터 블록을 할당 받는다. 할당된 데이터 블록에 파일의 내용을 저장한다.

5. 소유권과 허가 리눅스의 특징 파일의 소유권 허가 리눅스는 다중 사용자를 지원하므로 소유에 대한 구분과 권한 설정이 중요하다. 파일의 소유권 파일이 어느 사용자의 것인지를 나타낸다. 모든 파일은 시스템에 등록된 사용자 중 한 사용자의 소유가 된다. 관리자의 소유, 일반 사용자 홍길동의 소유 허가 모든 파일은 읽기, 쓰기, 실행 권한을 가지고 있다. 각 권한은 설정이 되어 있을 수도 있고 그렇지 않을 수도 있다. 파일에 대한 권한은 사용자 유형에 따라 다르게 적용된다. 파일의 소유자, 파일과 같은 그룹에 속한 사용자, 기타 사용자 접근 권한이라고도 한다.

5. 소유권과 허가 소유권과 허가의 예 $ ls -l -rw-r-----    1 kimyh    graduate       13 Nov 18 17:44 file $ 파일의 소유자 : kimyh라는 ID의 사용자 파일의 그룹 : graduate 허가 유형 소유주에 대한 권한 동일 그룹 사용자에 대한 권한 기타 사용자에 대한 권한 권한 r  w  - r  -  - -  -  - 의미 읽기 가능 쓰기 가능 실행 불가능 쓰기 불가능 읽기 불가능 8진수 6 4

5. 소유권과 허가 소유권과 허가의 변경 $ chmod 644 file $ ls -l file 소유권의 변경 시스템의 관리자만 수행할 수 있다. chown 명령 사용 허가의 변경 파일의 소유자나 시스템 관리자가 수행할 수 있다. chmod 명령 사용 $ chmod 644 file $ ls -l file -rw-r--r--    1 kimyh    graduate       13 Nov 18 17:44 file $ ※허가를 나타내는 644는 “rw-r--r--”을 의미한다.

6. 파일 유형과 일반화 파일의 유형 흔히 접하는 파일의 유형은 일반 파일, 실행 파일, 디렉토리 파일 등이다. 이러한 파일을 통틀어 “일반 파일”이라고 부른다. 리눅스 시스템은 다양한 장치를 파일로 다룰 수 있게 한다. 주기억장치, 보조기억장치, 파이프, 터미널 연결 상태 등 이러한 파일을 통틀어 “특수 파일”이라고 부른다. 특수 파일(special file)은 /dev 디렉토리에 저장되어 있다. /dev/pts/7 /dev/fd0 /dev/printers

6. 파일 유형과 일반화 특수 파일 (special file)의 종류 Character special file Block special file … crw-------    1 root     root      14,   4 Apr 11  2002 audio brw-rw----    1 root     floppy     2,   0 Apr 11  2002 fd0 brw-rw----    1 root     disk       8,   0 Apr 11  2002 sda 특수 파일을 지원하는 이유 사용자(관리자를 포함)가 디바이스들을 파일처럼 쉽게 사용할 수 있다.

6. 파일 유형과 일반화 터미널 연결 상태를 나타내는 파일 (1) $ tty /dev/pts/7 $ ls -l /dev/pts total 0 crw--w----    1 fineplus tty      136,   2 Nov 18 19:26 2 crw--w----    1 kimyh    tty      136,   7 Nov 18 19:57 7 $ who fineplus pts/2    Nov 18 19:12 (210.92.29.253) kimyh    pts/7    Nov 18 13:39 (202.31.201.117) $

6. 파일 유형과 일반화 터미널 연결 상태를 나타내는 파일 (2) $ cat > /dev/pts/7 특수 파일을 이용하여 특정 터미널로 출력하기 $ cat > /dev/pts/7 apple is red banana is yellow ^C $ 사용자가 입력한 문자열 터미널로 출력되는 문자열

6. 파일 유형과 일반화 기타 파일 유형 일반 파일 디렉토리 파일 특수 파일 (special file) 텍스트 파일, 실행 파일, 이미지 파일, 동영상 파일, 사운드 파일, … 디렉토리 파일 특수 파일 (special file) Character special file Block special file Symbolic Link (바로가기) FIFO (named pipe) Socket