맨위로가기

파일 특성

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

파일 특성은 운영 체제에서 파일과 폴더에 부여되는 속성으로, 파일의 접근 및 관리 방식을 제어한다. 도스 및 윈도우에서는 보관, 읽기 전용, 시스템, 숨김의 4가지 기본 특성을 가지며, NTFS 파일 시스템에서는 압축, 암호화, 색인 기능을 추가 지원한다. 유닉스 및 POSIX 계열 시스템에서는 파일 소유자, 그룹, 기타 사용자에 대한 권한을 제어하는 9비트 플래그와 파일 유형을 지정하는 모드를 사용한다. 4.4BSD 및 파생 운영 체제는 덤프 금지, 불변, 추가 전용, 불투명 등의 속성을 지원하며, FreeBSD, DragonFly BSD, NetBSD, macOS 등에서도 추가적인 속성을 제공한다. 리눅스는 chattr 명령을 통해 다양한 파일 속성을 지원하며, OpenSolaris 및 파생 시스템은 chmod 명령을 통해 속성을 설정하고 ls 명령으로 나열할 수 있다. 파일 특성은 운영 체제별로 다르며, 파일의 접근 권한, 백업, 숨김 여부 등을 설정하는 데 사용된다.

더 읽어볼만한 페이지

  • 파일 시스템 - 부트 섹터
    부트 섹터는 시스템 부팅 코드를 담은 저장 매체의 특정 영역으로, 볼륨 부트 레코드(VBR)와 마스터 부트 레코드(MBR)로 나뉘며, BIOS는 이를 실행하고 UEFI는 부트로더를 직접 로드하지만 바이러스 공격에 취약하다.
  • 파일 시스템 - ZFS
    ZFS는 Jeff Bonwick 등이 설계하고 구현한 파일 시스템으로, 데이터 무결성, 스냅샷, RAID-Z 등의 기능을 제공하며, 썬 마이크로시스템즈에서 개발되어 OpenZFS 프로젝트를 통해 다양한 운영체제에서 사용된다.
파일 특성
파일 속성
파일 확장자파일 이름의 마지막 부분으로, 파일 형식을 나타내는 문자열.
파일 크기파일이 차지하는 저장 공간의 크기.
생성 날짜파일이 처음 만들어진 날짜와 시간.
수정 날짜파일이 마지막으로 변경된 날짜와 시간.
접근 날짜파일에 마지막으로 접근한 날짜와 시간.
파일 권한파일에 대한 사용자 또는 그룹의 접근 권한 (읽기, 쓰기, 실행).
파일 소유자파일을 소유한 사용자.
파일 그룹파일이 속한 그룹.
파일 종류파일의 종류 (예: 텍스트 파일, 이미지 파일, 실행 파일).
파일 위치파일 시스템 내에서 파일이 저장된 경로.
파일 속성 (숨김, 시스템 파일 등)파일의 추가적인 속성 정보 (예: 숨김 파일, 시스템 파일).
파일 압축 여부파일이 압축되어 있는지 여부.
파일 암호화 여부파일이 암호화되어 있는지 여부.
파일 무결성 정보파일의 무결성을 검증하기 위한 정보 (예: 체크섬, 해시 값).
파일 메타데이터파일에 대한 추가적인 정보 (예: 작성자, 제목, 설명).
실행 파일 여부파일이 실행 가능한 프로그램인지 여부.
연결 프로그램파일을 열거나 실행하는 데 사용되는 프로그램.
파일 디지털 서명파일의 신뢰성을 보장하기 위한 디지털 서명.
파일 설명파일에 대한 간략한 설명.
파일 태그파일을 분류하고 검색하기 위한 태그 정보.
파일 버전 정보파일의 버전 정보 (소프트웨어의 경우).
파일 저작권 정보파일의 저작권 정보.
파일 라이선스 정보파일의 라이선스 정보.
추가 정보
파일 특성파일 시스템에서 파일의 동작을 정의하는 메타데이터.
파일 시스템파일 특성을 지원하는 파일 시스템.

2. 종류

파일 특성은 운영 체제에 따라 다양한 종류가 있다.

DOS와 마이크로소프트 윈도우에서는 전통적으로 아카이브, 숨김, 시스템, 읽기 전용의 네 가지 속성이 사용되었다. 이후 윈도우 버전이 업데이트되면서 압축됨, 암호화됨, 콘텐츠-인덱싱 안 함 등의 속성이 NTFS 파일 시스템에 추가되었다.[3] 윈도우 탐색기는 디렉터리, 다시 해석 지점, 오프라인, 희소, 임시 등의 속성도 표시한다.

유닉스POSIX 계열 시스템에서는 파일 모드를 통해 파일 소유자, 그룹, 다른 사용자에 대한 읽기, 쓰기, 실행 권한을 제어하며, ''setuid'' 및 ''setgid'' 비트 플래그와 'sticky' 비트 플래그가 있다. 4.4BSD 및 그 파생 시스템( FreeBSD, DragonFly BSD, NetBSD, OpenBSD, macOS 등)에서는 덤프 금지, 불변, 추가 전용, 불투명 등의 속성을 추가로 지원한다.

리눅스 운영 체제는 `lsattr` 및 `chattr` 명령을 통해 다양한 파일 속성을 지원하며,[12] `atime` 업데이트 없음, 추가 전용, 변경 불가, 덤프 없음, 안전한 삭제, 동기 업데이트 등이 주요 속성이다.

OpenSolaris 및 파생 시스템(오라클 솔라리스, illumos)은 CIFS 서버 지원을 위해 "시스템 속성"을 추가했고,[13] `chmod` 및 `ls` 명령으로 속성을 설정하고 나열할 수 있다. `appendonly`, `immutable`, `nodump`, `nounlink` 등이 주요 속성이다.

2. 1. 도스 및 마이크로소프트 윈도우

전통적으로 DOS와 마이크로소프트 윈도우에서 파일과 폴더는 다음 네 가지 특성을 가졌다:

  • '''보관 (A)''': 마지막 백업 작업 이후 파일이 변경되었음을 나타낸다. 윈도우 파일 시스템은 변경된 모든 파일에 이 속성을 설정한다. 백업 소프트웨어는 성공적인 전체 또는 증분 백업(차등 백업 아님) 시 이를 지우는 역할을 한다.
  • '''숨김 (H)''': 파일을 보이지 않게 한다. `dir`과 같은 MS-DOS 명령과 파일 탐색기와 같은 윈도우 앱은 기본적으로 숨김 파일을 표시하지 않지만, 표시하도록 요청하면 표시한다.[1]
  • '''시스템 (S)''': 컴퓨터가 제대로 작동하는 데 필요한 중요한 시스템 파일임을 나타낸다. MS-DOS와 마이크로소프트 윈도우는 중요한 시스템 파일을 표시하는 데 사용한다. `dir`과 같은 MS-DOS 명령과 파일 탐색기 같은 윈도우 앱은 숨김 파일이 표시되어도 기본적으로 시스템 파일을 표시하지 않지만, 표시하도록 요청하면 표시한다.
  • '''읽기 전용 (R)''': 파일을 변경해서는 안 됨을 나타낸다. 파일을 열 때, 파일 시스템 API는 일반적으로 요청 애플리케이션에 쓰기 권한을 부여하지 않으며, 애플리케이션이 명시적으로 요청하는 경우에만 부여한다. 폴더의 읽기 전용 속성은 일반적으로 무시되며, 다른 목적으로 사용된다.[2]


윈도우의 새로운 버전이 나오면서, 마이크로소프트는 NTFS 파일 시스템에서 사용 가능한 속성 목록을 추가했다. 여기에는 다음이 포함되지만, 이에 국한되지는 않는다:[3]

  • '''압축됨 (C)''': 저장 시 윈도우가 파일을 압축한다.
  • '''암호화됨 (E)''': 무단 접근을 방지하기 위해 저장 시 윈도우가 파일을 암호화한다.
  • '''콘텐츠-인덱싱 안 함 (I)''': 인덱싱 서비스 또는 윈도우 검색은 파일을 인덱싱 작업에 포함하지 않는다.


윈도우 탐색기의 "속성" 열에 표시되는 다른 속성은 다음과 같다.

  • '''디렉터리 (D)''': 항목은 자체 파일 및 디렉터리 항목을 포함하는 서브디렉터리이다.
  • '''다시 해석 지점 (L)''': 파일 또는 디렉터리에는 연결된 다시 해석 지점이 있거나 심볼릭 링크이다.
  • '''오프라인 (O)''': 파일 데이터가 물리적으로 오프라인 스토리지(원격 스토리지)로 이동되었다.
  • '''희소 (P)''': 파일은 희소 파일이다. 즉, 내용이 부분적으로 비어 있고 불연속적이다.
  • '''임시 (T)''': 파일은 임시 저장에 사용된다.


DOS, OS/2 및 윈도우에서, cmd.exe 및 command.com의 `attrib` 명령을 사용하여 네 가지 전통적인 파일 속성을 변경하고 표시할 수 있다. 윈도우의 파일 탐색기는 언급된 일곱 가지 속성을 표시할 수 있지만, 시스템 속성을 설정하거나 지울 수는 없다. 윈도우 파워셸은 윈도우 7 이상 버전의 구성 요소가 되었으며, 속성을 읽고 쓸 수 있는 두 가지 명령( `Get-ItemProperty` 및 `Set-ItemProperty` )을 제공한다.[4] Windows NT의 파일에 대한 속성을 변경하려면, 사용자는 ''속성 쓰기'' 및 ''확장 속성 쓰기''로 알려진 적절한 파일 시스템 권한이 있어야 한다.[5]

2. 2. 유닉스 및 POSIX 계열

유닉스POSIX를 준수하는 시스템을 포함한 유닉스 계열 시스템에서 각 파일은 '모드'를 갖는다. 이 모드는 파일 소유자, 그룹 및 다른 모든 사용자에 대한 읽기, 쓰기 및 실행 권한을 제어하는 9비트 플래그를 포함한다.[6] ''setuid'' 및 ''setgid'' 비트 플래그와 'sticky' 비트 플래그도 있다.

모드는 또한 파일 유형 (일반 파일, 디렉토리 또는 기타 특수한 종류)을 지정한다.

2. 2. 1. 4.4BSD 및 파생

4.4BSD 및 4.4BSD-Lite에서 파일과 디렉터리(폴더)는 파일 소유자 또는 슈퍼유저가 설정할 수 있는 4개의 "사용자" 속성과 슈퍼유저만 설정할 수 있는 2개의 "시스템" 속성을 허용했다.[6]

  • (사용자) 덤프 금지: 설정되면, 백업 작업 중에 파일 또는 디렉터리를 저장하지 않아야 함을 나타낸다.
  • (사용자 및 시스템) 불변: 설정되면, 파일 또는 디렉터리를 변경해서는 안 된다. 쓰기, 디렉터리 내에 파일 생성, 디렉터리에서 파일 제거, 디렉터리 내에서 파일 이름 변경, 파일 또는 디렉터리 이름 변경, 파일 또는 디렉터리 제거를 시도하면 권한 오류가 발생한다.
  • (사용자 및 시스템) 추가 전용: 설정되면, 파일에만 추가해야 함을 나타낸다.
  • (사용자) 불투명: 디렉터리에 설정되면, 유니언 마운트를 통해 볼 때 디렉터리가 불투명함을 나타낸다.


FreeBSD는 몇 가지 추가 속성을 추가했으며,[7] DragonFly BSD에서도 지원한다.[8]

  • (사용자 및 시스템) 연결 해제 금지: 설정되면, 파일 또는 디렉터리의 이름을 변경하거나 제거할 수 없음을 나타낸다. 파일 또는 디렉터리의 이름을 변경하거나 제거하려는 시도는 권한 오류로 실패한다.


FreeBSD는 또한 다음을 지원한다.[7]

  • (시스템) 보관 금지: 설정되면, 파일 또는 디렉터리를 보관하지 않아야 함을 나타낸다.
  • (시스템) 스냅샷: 설정되면, 파일 또는 디렉터리가 스냅샷 파일임을 나타낸다. 이 속성은 시스템에서 유지 관리하며, 슈퍼유저라도 설정할 수 없다.


반면 DragonFly BSD는 다음을 지원한다.[8]

  • (사용자 및 시스템) 기록 금지: 설정되면, 파일 또는 디렉터리에 대한 기록을 유지하지 않아야 함을 나타낸다.
  • (사용자) 스왑 캐시: 설정되면, 파일에 대한 또는 디렉터리 및 디렉터리 아래의 모든 것에 대한 깨끗한 파일 시스템 데이터를 솔리드 스테이트 드라이브의 스왑 공간에 캐시해야 함을 나타낸다.
  • (시스템) 스왑 캐시: 설정되면, 파일에 대한 또는 디렉터리 및 디렉터리 아래의 모든 것에 대한 깨끗한 파일 시스템 데이터를 솔리드 스테이트 드라이브의 스왑 공간에 캐시해서는 ''안 됨''을 나타낸다.
  • (시스템) 보관됨: 설정되면, 파일 또는 디렉터리를 보관할 수 있음을 나타낸다.


NetBSD는 또 다른 속성을 추가했으며,[9] OpenBSD에서도 지원한다.[10]

  • (시스템) 보관됨: 설정되면, 파일 또는 디렉터리가 보관되었음을 나타낸다.


macOS는 세 가지 속성을 추가했다.

  • (사용자) 숨김: 설정되면, 기본적으로 GUI에 파일 또는 디렉터리가 표시되지 않아야 함을 나타낸다. 그러나 ls는 이를 표시한다.[11]
  • (시스템) 제한됨: 설정되면, 파일 또는 디렉터리가 시스템 무결성 보호에 의해 보호됨을 나타낸다.
  • (사용자 및 시스템) 압축됨: HFS+ 압축을 사용하여 압축된 파일에 대한 읽기 전용 속성


이러한 시스템에서 `chflags` 및 `ls` 명령을 사용하여 파일 속성을 변경하고 표시할 수 있다. 4.4BSD 파생 운영 체제에서 파일의 "사용자" 속성을 변경하려면, 사용자는 해당 파일의 소유자이거나 슈퍼유저여야 한다. "시스템" 속성을 변경하려면, 사용자는 슈퍼유저여야 한다.

2. 2. 2. 리눅스

리눅스 운영 체제는 `lsattr` 명령으로 나열하고, 가능하다면 `chattr` 명령으로 수정할 수 있는 광범위한 파일 속성을 지원한다.[12] 프로그램은 ioctl 작업을 사용하여 속성을 검사하고 변경할 수 있다.[12]

많은 리눅스 파일 시스템은 제한된 수의 속성만 지원하며, `chattr`이 변경할 수 있는 모든 속성을 지원하는 것은 아니다. 일부 속성을 지원하는 파일 시스템에는 ext4, XFS, btrfs가 있다.

일반적인 리눅스 파일 시스템에서 지원하는 일반적인 파일 속성
속성`lsattr` 플래그`chattr` 옵션의미 및 근거
`atime` 업데이트 없음`A``+A,-A`파일을 읽거나 액세스할 때 atime 기록이 수정되지 않음.
추가 전용`a``+a,-a`파일에 추가 모드로만 쓰기 허용.
변경 불가`i``+i,-i`파일 내용 또는 메타데이터 변경 방지: 파일/디렉토리에 쓰기, 삭제, 이름 바꾸기 또는 하드 링크 불가.
덤프 없음`d``+d,-d`파일이 dump 프로그램에서 건너뜀.
안전한 삭제`s``+s,-s`삭제 시 모든 파일 데이터 블록을 영(0)으로 채우도록 요청.
동기 업데이트`S``+S,-S`변경 사항이 기본 파일 시스템 저장 매체에 동기적으로 기록됨; 영향을 받는 파일에 대한 sync 마운트 옵션과 동일.


2. 2. 3. OpenSolaris 및 파생

OpenSolaris는 2007년에 CIFS 서버를 지원하기 위해 "시스템 속성"(일반적인 확장 파일 속성과 달리 운영 체제가 의미를 정의함)에 대한 지원을 추가했다.[13] 이후 오라클 솔라리스 11 릴리스와 오픈 소스 illumos 프로젝트로 이어졌다.

이 구현에서 `chmod` 명령을 통해 [https://docs.oracle.com/cd/E88353_01/html/E37853/sysattr-7.html 광범위한 속성]을 설정할 수 있으며, `ls` 명령으로 나열할 수 있다.[16][17] 프로그램은 `getattrat` 및 `setattrat` 함수를 사용하여 속성을 검사하고 변경할 수 있다.[18][19]

현재 ZFS 파일 시스템은 정의된 모든 속성을 지원하며, 오라클 솔라리스 11.2부터 tmpfs 파일 시스템은 속성의 하위 집합을 지원한다.[20]

오라클 솔라리스 및 illumos 시스템에서 지원하는 일반적인 파일 속성
속성`ls` 및 `chmod`의 압축 플래그의미 및 근거
`appendonly``a`파일에 대한 쓰기는 추가 모드에서만 허용된다.
`immutable``i`파일 내용 또는 메타데이터 변경을 방지한다(액세스 시간 제외). 파일/디렉터리에 쓰거나 삭제하거나 이름을 변경할 수 없다.
`nodump``d`백업 프로그램에서 파일을 건너뛰어야 한다.
`nounlink``u`파일 제거를 방지하지만 다른 변경은 허용한다.


3. 속성 변경

도스와 OS/2, 윈도의 명령 프롬프트에서는 파일의 특성을 변경하는 명령어로는 attrib가 있으며, 4가지 특성을 보거나 변경할 수 있다. 마이크로소프트 윈도우의 파일 탐색기에서는 7가지 특성이 나타나 있지만 시스템 특성은 설정하거나 변경할 수 없다. 윈도우 7 이후의 구성 요소로 도입된 윈도우 파워 셸은 `Get-ItemProperty`, `Set-ItemProperty`라는 두 가지 읽기/쓰기 특성을 제공한다.[22]

윈도우 NT 기반 운영 체제에서 파일의 특성을 변경하려면 사용자가 "쓰기 특성"과 "쓰기 확장 특성"이라는 적절한 파일 시스템 접근 권한을 소유하여야 한다.[23]

4.4BSD, 4.4BSD 라이트 파생에서는 chflagsls 명령을 사용하여 파일의 특성을 변경하거나 볼 수 있다. 4.4BSD 파생 운영 체제에서 파일의 사용자(user) 특성을 변경하려면 사용자는 파일의 소유자이거나 슈퍼사용자여야 한다. 시스템(system) 특성을 변경하려면 사용자는 슈퍼사용자여야 한다.

리눅스에서는 chattr, lsattr 명령을 사용하여 파일 특성을 보거나 변경할 수 있다.

참조

[1] 웹사이트 What is a hidden file? http://windows.micro[...] Microsoft 2012-12-02
[2] 웹사이트 Why is the readonly property on folders so strange? https://devblogs.mic[...]
[3] 웹사이트 HOW TO: Use the File Attribute Management Script (Fileattributes.pl) in Windows 2000 http://support.micro[...] Microsoft 2012-12-02
[4] 웹사이트 Use a PowerShell Cmdlet to Work with File Attributes http://blogs.technet[...] Microsoft 2011-01-26
[5] 웹사이트 How to set, view, change, or remove special permissions for files and folders in Windows XP http://support.micro[...] Microsoft 2007-05-07
[6] 문서 chflags 4.4BSD-Lite2
[7] 문서 chflags FreeBSD
[8] 문서 chflags DragonFly BSD
[9] 문서 chflags NetBSD
[10] 문서 chflags OpenBSD
[11] 문서 chflags Darwin
[12] 문서 ioctl_iflags Linux
[13] 웹사이트 Extensible Attribute Interfaces [PSARC/2007/315] https://illumos.org/[...] illumos.org 2023-03-10
[14] 웹사이트 chmod(1) https://docs.oracle.[...] Oracle 2023-03-10
[15] 웹사이트 chmod(1) https://illumos.org/[...] illumos.org 2023-03-10
[16] 웹사이트 ls(1) https://docs.oracle.[...] Oracle 2023-03-10
[17] 웹사이트 ls(1) https://illumos.org/[...] illumos.org 2023-03-10
[18] 웹사이트 getattrat(3c)/setattrat(3c) https://docs.oracle.[...] Oracle 2023-03-10
[19] 웹사이트 getattrat(3c)/setattrat(3c) https://illumos.org/[...] illumos.org 2023-03-10
[20] 웹사이트 sysattr(7) https://docs.oracle.[...] Oracle 2023-03-10
[21] 웹인용 HOW TO: Use the File Attribute Management Script (Fileattributes.pl) in Windows 2000 http://support.micro[...] Microsoft 2012-12-02
[22] 웹인용 Use a PowerShell Cmdlet to Work with File Attributes https://web.archive.[...] Microsoft 2011-01-26
[23] 웹인용 How to set, view, change, or remove special permissions for files and folders in Windows XP http://support.micro[...] Microsoft 2007-05-07



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com