본문 바로가기
리눅스/Part3. Ch03. 파일시스템

04. 파일 타입 및 속성의 이해

by Engineer-Lee 2022. 7. 19.
반응형

파일 타입

  • 7가지 타입
    일반 파일, 디렉토리, 문자(character) 장치 파일, 블록 장치 파일, 심볼릭 링크, 로컬 도메인 소켓, 네임드 파이프
    -> file 명령으로 파일 유형 확인
        $ file /tmp      $ file /dev/tty0
  • 일반 파일
    생성: cp, mv, touch, editor 이용 …
    삭제: rm 
    $ rm -i 파일명
    -> 의도하지 않게 삭제된 경우를 방지하기 위해, 삭제 전 알림 창 확인
  • 디렉토리
    생성: mkdir
    삭제: rmdir (비어있는 디렉토리 삭제), rm -r
    * 특수한 디렉토리: . (현재 디렉토리), .. (부모 디렉토리) ß 삭제 불가능
  • 링크
    하드 링크: 원본 파일에 대한 직접적인 참조 (동일한 inode, ls -i)
    생성: ln TARGET LINK_NAME
    삭제: rm

    심볼릭 링크: 원본 파일의 이름을 가리키는 링크
    생성: ln -s TARGET LINK_NAME
    삭제: rm

 

  • 문자/블록 디바이스 파일
    : 시스템의 하드웨어나 주변장치와 통신에 사용
    : 문자(character) 디바이스: 키보드, 마우스, 프린터 등 à byte 단위로 데이터를 전송
    : 블록 디바이스: 하드 디스크, SSD, CD 등 à 블록(보통 4KB) / 섹터(보통 512B) 단위로 데이터를 전송
    : 장치와 직접적인 통신은 디바이스 드라이버가 담당
    생성: mknod        삭제: rm
  • 로컬 도메인 소켓 (유닉스 도메인 소켓)
    : 프로세스 간 통신을 위해 사용되는 주로 네트워크와 관련된 소켓
    생성: socket 시스템콜         삭제: rm, unlink 시스템콜

 

사용 권한

  • 모든 파일이 9개의 사용 권한을 가짐
    -> (읽기/쓰기/실행) x (소유자, 그룹, 기타)

  • 실행 동작과 관련된 3개의 추가적인 권한 (setuid, setgid, stickey bit)
    -> setuid: 해당 파일 소유자의 권한을 잠시 사용. User권한에 s 표시
    -> setgid: 해당 파일의 그룹 권한을 잠시 사용. Group권한에 s 표시
    -> stickey bit: 특정 디렉토리를 자유롭게 사용.
                          소유자만 파일 삭제하거나 변경 가능
  • 총 12개의 모드 비트를 사용
    -> chmod 명령으로 해당 비트를 수정

  • 파일의 목록과 검사
    $ ls -l : 상세 정보 포함한 파일 목록
    $ ls -a : 숨긴 파일 표시 (예, .bashrc)
    $ ls -t : 마지막 수정 시간 기준으로 목록 조회 (역순 -tr)
    $ ls -h : 사람이 읽기 편한 형태로 출력 (예, 4.0K)

    -> 조합하여 사용 가능
    $ ls -lht

 

 

사용 권한 변경

  • chmod 명령을 사용해 사용 권한을 변경
  • 파일 소유자나 슈퍼 유저만이 파일 사용 권한 변경 가능
  • 숫자, 문자로 권한 변경 가능
    예, $ chmod 711 filename 
         사용자: 7은 2진수 111 à 모든 권한
         그룹 : 1은 2진수 001 à 실행 권한
         그 외 : 1은 2진수 001 à 실행 권한
    예, $ chmod u+w à 파일 소유자에게 쓰기 권한 부여
    예, $ chmod u-w à 파일 소유자에게 쓰기 권한 제거
    예, $ chmod ug=rw, o=r à 소유자와 그룹에 읽기/쓰기 권한 부여, 기타 사용자에게는 읽기 권한만 부여

 

 

파일 소유권과 그룹 변경

  • chown 명령으로 파일의 소유권 변경
  • chgrp 명령으로 그룹 소유권을 변경
    -> chown 명령으로 둘 다 변경도 가능
    $ chown user:group FILENAME
반응형