티스토리 뷰

Linux

유닉스의 파일스스템

정든친구 2019. 8. 22. 11:30

*** 파일시스템의 기본 구조

부트 블록 수퍼 블록 i-node 구조체 데이터 블록

 

*** i-note가 가지고 있는 각 파일들의 정보

파일 정보 설명
파일 유형(type) 파일이 정규 파일(regular file)인지, 디렉토리인지 등에 관한 정보
파일의 접근 권한(permission) 파일 소유주, 그룹, 다른 이용자의 파일에 대한 접근 권한 여부. (읽기, 쓰기, 실행)
파일의 크기 파일의 크기
파일의 데이터 블록의 디스크 주소 파일의 실제 데이터가 저장도어 있는 물리적 디스크의 주소. i-node는 파일의 첫 번째 블록에 대한 주소를 가지고 있다. 첫 번째 데이터 블록은 두 번째 블록에 대한 주소를 가지고 있다. 이런 식으로 링크드 리스트 구조를 지닌다.
파일의 소유자 파일의 소유자와 파일 소유 그룹에 대한 정보
파일 접근 시간 가장 최근 파일에 접근한 시간, 파일 변경 시간, i-node가 변경된 시간에 대한 정보를 지님
파일에 대한 링크 수 하드 링크 된 총 개수

*** 파일의 유형, 속성, 권한 설정 매크로

매크로 8진수 세부 사항
S_IFSOCK 0140000 소켓
S_IFLNK 0120000 심볼릭 링크
S_IFREG 0100000 정규 파일
S_IFBLK 0060000 블록 특수 파일
S_IFDIR 0040000 디렉토리 
S_IFCHR 0020000 문자 특수 파일
S_IFIFO 0010000 FIFO
S_ISUID 0004000 Set-UID bit
S_ISGID 0002000 Set-GID bit
S_ISVTX 0001000 Sticky bit
S_IRWXU 0000700 파일 소유주의 읽기, 쓰기, 실행 권한
S_IRUSR 0000400 파일 소유주의 읽기 권한
S_IWUSR 0000200 파일 소유주의 쓰기 권한
S_IXUSR 0000100 파일 소유주의 실행 권한
S_IRWXG 0000070 파일 소유 그룹의 읽기, 쓰기, 실행 권한
S_IRGRP 0000040 파일 소유 그룹의 읽기 권한
S_IWGRP 0000020 파일 소유 그룹의 쓰기 권한
S_IXGRP 0000010 파일 소유 그룹의 실행 권한
S_IRWXO 0000007 다른 이용자의 읽기, 쓰기, 실행 권한
S_IROTH 0000004 다른 이용자의 읽기 권한
S_IWOTH 0000002 다른 이용자의 쓰기 권한
S_IXOTH 0000001 다른 이용자의 실행 권한

*** Sticky bit(= saved-text bit)

  • 일반 파일 설정: 유닉스 시스템은 이 파일 실행시 스왑 역역에 저장하여 빈번한 실행시 보다 빠르게 실행 되도록 하였으나, 시스템 성능 향상 등으로 인하여 현재는 별 의미가 없음
  • 디렉토리 설정: Sticky bit가 설정된 디렉토리 안에 있는 파일을 지우거나 이름을 바꾸기 위해서는 쓰기 권한이 있더라도 소유주가 아니면 안된다. 소유주나 슈버 유저만이 파일을 지우거나 파일의 이름을 바꿀 수 있다. (예: /tmp - 권한의 마지막 t 는 Sticky bit를 의미)  
    * 소유주가 아니더라도 쓰기 권한이 있다면 만드는 것은 가능
    * 디렉토리에 설정된 Sticky bit는 공용 디렉토리에 다른 사용자의 파일을 함부로 지우는 것을 막아준다

'Linux' 카테고리의 다른 글

wait(), waitpid()  (0) 2019.08.24
umask()  (0) 2019.08.22
time 명령으로 프로그램 실행시간 측정  (0) 2019.08.22
vim 추천글(플러그인)  (0) 2019.08.21
open 함수  (0) 2019.08.20
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
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
글 보관함