반응형
How to use commands related to file properties
리눅스 시스템에서 모든 파일과 디렉토리는 접근 권한 정책을 가지며, 이 권한 정책에는 사용자, 그룹, 기타 사용자로 나뉘어 집니다. 또한 파일 시스템의 유형에 따라 ext2, ext3 등으로 나뉘어지며, 그 외에 다양한 정보에 따라 파일과 디렉토리의 정보가 정의됩니다.
lsattr 명령어
파일의 속성을 조회하는 명령어
주요 옵션 | 내용 |
-R | 디렉토리와 그 이하 모든 내용에 대해 재귀적으로 속성 값을 출력합니다. |
-V | lsattr의 버전을 출력합니다. |
-a | '.'로 시작하는 파일을 포함한 디렉토리 내 모든 파일을 출력합니다. |
-d | 디렉토리를 보여줄 때 안에 든 파일을 보여주는 것이 아닌, 폴더를 일반 파일처럼 출력합니다. |
-v | 파일의 버전을 출력합니다. |
lsattr 사용 예시
▶ /etc/ntp 디렉토리 내 파일과 디렉토리 구조 확인
# lsattr은 아니지만 이후 예시에 도움 될 수 있도록 확인
$> ls -alt /etc/ntp
▶ /etc/ntp 디렉토리 내 파일과 디렉토리 속성 확인
$> lsattr /etc/ntp
▶ /etc/ntp 내 파일과 디렉토리 뿐만 /etc/ntp 디렉토리 내 재귀적으로(디렉토리 안의 디렉토리...) 파일과 디렉토리 속성 확인
$> lsattr -R /etc/ntp
▶ lsattr의 버전을 확인합니다.
$> lsattr -V
▶ '.'과 상위 디렉터리가 있는 경우 '..' 까지 포함하여 확인
▶ 파일의 버전을 포함하여 확인
chattr 명령어
파일 속성 설정
주요 옵션 | 내용 |
-R | 현재 디렉토리 이하 모든 디렉토리와 파일의 속성을 변환합니다. (재귀적 적용) |
-V | 자세한 출력 모드를 제공합니다. |
-f | 대부분의 에러 메시지를 출력하지 않습니다. |
-v | 지정된 파일의 버전 정보를 설정할 수 있습니다. |
설정 모드 | 내용 |
+ | 지정한 속성을 추가합니다. |
- | 지정한 속성을 제거합니다. |
= | 지정한 속성을 덮어씌웁니다. |
속성 | 정의 | 내용 |
A | No atime Update | atime 레코드가 수정되지 않음 |
a | append only | 파일을 append mode로만 열 수 있기 때문에, 파일을 쓰는 것은 가능하지만 삭제는 불가능합니다. |
c | Compressed | 파일이 커널에 의해 자동적으로 압축됩니다. 파일을 읽을 때 압축을 해제하여 보여주며, 쓰기 작업 시에는 디스크에 저장하기 전에 압축부터 진행합니다. |
D | Synchronous directory update | 디렉토리의 변경 사항이 디스크에 동기식으로 저장 됩니다. |
d | No dump | dump 프로그램이 실행 중일 때에는 해당 파일이 백업 되지 않습니다. |
E | Compression error | Experimental compression path에 사용되며, 압축된 데이터가 오류를 가지고 있음을 의미합니다. |
e | Extent format | 파일이 디스크 블록에 배포될 때 Extents를 사용합니다. |
h | Huge file | 파일을 저장할 때 섹터 단위 대신에 블록 사이즈 단위로 저장합니다. 또한 파일이 2TB 이상의 크기를 가지고 있음을 의미합니다. |
I | Indexed directory | 디렉터리가 htree(Hased tree)로 인덱싱 중임을 나타냅니다. |
i | Immutable | 파일을 수정할 수 없습니다. 쓰기, 삭제, 이름 변경은 물론 링크를 생성할 수도 없습니다. |
j | Data journaling | 파일에 데이터를 쓰기 전에 ext3 journal에 먼저 씁니다. |
S | Synchronous updates | 해당 속성 집합을 가진 파일을 수정하면 변경 내용이 디스크에 동기적으로 기록됩니다. |
s | secure deletion | 해당 파일을 삭제하면 해당 파일의 블록이 0이 되어 디스크에 다시 기록됩니다. |
T | Top of directory hierarchy | 해당 속성을 갖는 디렉토리는 가장 상위 디렉토리로 여겨집니다. |
t | No tail-merging | 파일에 Partial block fragmentation이 발생하지 않습니다. (tailmerging이 발생하지 않음) |
u | Undeletable | 파일이 삭제되더라도 내용은 저장되어 있으며 복구가능합니다. |
X | Compression raw access | Experimental comperssion path에 사용되며, 압축된 파일의 실제 내용을 직접 접근할 수 있음을 의미합니다. |
Z | Compression dirty file | Experimental compression path에 사용되며, 압축된 데이터가 손상되었음을 의미합니다. |
chattr 사용 예시
▶︎ file01.txt 파일이 수정 할 수 없도록 설정 후 삭제 + 파일 수정 가능하도록 설정 후 삭제
# 파일 생성
$> touch file01.txt
# 파일 존재 여부 확인
$> ls -alt | grep file01.txt
# 파일 수정 불가 속성 부여
$> chattr +i file01.txt
# 파일 속성 확인
$> lsattr file01.txt
# 파일 강제 삭제
$> rm -f file01.txt
# 파일 수정 불가 속성 제거
$> chattr -i file01.txt
# 파일 속성 확인
$> lsattr file01.txt
# 파일 강제 삭제
$> rm -f file01.txt
# 파일 존재 여부 확인
$> ls -alt | grep file01.txt
반응형
'개발 창고 > Server' 카테고리의 다른 글
[Linux] How to use "lastlog" command (0) | 2023.10.29 |
---|---|
[Linux] How to use "dd" command (2) | 2023.10.28 |
[Linux] How to use "chkconfig" command (0) | 2023.10.27 |
[Linux] How to use "chmod" command (0) | 2023.10.27 |
[Linux] How to use "top" command (2) | 2023.10.26 |