Overview
오늘은 리눅스 파일 속성 관리 명령어 chattr, lsattr에 대해 알아보겠다. 파일 속성(attribution)은 파일 자체의 보호 기능을 설정하는 개념으로, 퍼미션(permission)과는 다르다. 퍼미션이 사용자에 따라 특정 권한을 부여하는 반면, 속성은 파일 자체에 대한 설정을 적용하여 심지어 파일 소유자도 삭제하지 못하도록 만들 수 있다. 이를 통해 보다 강력한 보안과 무결성을 유지할 수 있다.
chattr란?
chattr(change attribute)은 리눅스 파일 시스템에서 파일 속성을 변경하여 보호하는 명령어이다. 특정 파일을 삭제하지 못하게 하거나, 내용 추가만 허용하는 등의 설정을 할 수 있다.
chattr [옵션] [+,-,= 속성] [파일명]
✅ 주요 옵션
옵션 | 설명 |
-R | 하위 디렉토리 및 파일 속성 변경 |
-V | 변경된 속성을 자세히 출력 |
-v | 파일 버전 번호 설정 |
✅ 주요 속성
속성 | 설명 |
a | 파일 내용 추가만 가능 (삭제, 수정 불가) |
c | 자동 압축 저장 |
d | dump 명령어로 백업 제외 |
i | 파일 삭제, 수정, 이름 변경 불가 |
s | 파일 삭제 시 완전 삭제 (복구 불가) |
S | 변경 사항 즉시 디스크에 반영 |
u | 파일 삭제 시 복구 가능 |
j | Ext3 저널링 활성화 |
A | 파일 액세스 시간(atime) 갱신 방지 |
D | 디렉토리 변경 사항 즉시 동기화 |
T | 최상위 디렉토리로 간주 |
chattr 사용 예제
1️⃣ 파일을 삭제 및 변경 불가하도록 설정 (i 속성)
lsattr testfile
------------- testfile
chattr +i testfile
rm -f testfile # 삭제 시도 → 실패
lsattr testfile
----i-------- testfile
✔ `+i ` 속성을 설정하면 루트 사용자도 삭제할 수 없다.
✔ `-i` 속성을 사용하면 다시 삭제할 수 있다.
chattr -i testfile
rm -f testfile # 삭제 가능
2️⃣ 파일 내용 추가만 허용 (`a` 속성)
lsattr testfile
------------- testfile
chattr +a testfile
lsattr testfile
----a-------- testfile
echo "EFGH" > testfile # 변경 시도 → 실패
-bash: testfile: Operation not permitted
echo "EFGH" >> testfile # 내용 추가 → 성공
cat testfile
ABCD
EFGH
✔ `+a` 속성을 설정하면 로그 파일처럼 내용 추가만 허용된다.
3️⃣ 기존 속성을 무시하고 새로운 속성 적용 (`=` 연산자)
lsattr f
--S-ia------- f
chattr =c f
lsattr
--------c---- ./f
chattr = f # 모든 속성 제거
lsattr f
------------- f
✔ `=` 연산자를 사용하면 기존 속성을 모두 제거하고 새로운 속성만 설정된다.
4️⃣ 특정 디렉토리의 파일 속성 확인 (`lsattr` 사용)
lsattr /test # test 디렉토리 내 파일 속성 확인
-----a------- /test/testfile
-----a------- /test/file01
-----a------- /test/newdir
✔ 특정 디렉토리의 파일 속성을 한눈에 확인할 수 있다.
lsattr -d /test # test 디렉토리 자체 속성 확인
-----a------- /test
✔ -d 옵션을 사용하면 디렉토리 자체의 속성을 확인할 수 있다.
chattr vs. lsattr 비교
비교 항목 | chattr | lsattr |
역할 | 파일 속성 변경 | 파일 속성 확인 |
주요 기능 | +, -, = 속성 추가/제거 | 파일의 속성 목록 출력 |
사용 예 | chattr +i testfile (삭제 방지) | lsattr testfile (속성 조회) |
결론
✅ chattr을 사용하면 중요한 시스템 파일을 보호하고, 특정 파일을 변경하지 못하도록 설정할 수 있다.
✅ lsattr을 사용하면 파일이 어떤 속성을 가지고 있는지 확인할 수 있다.
✅ +i, +a 같은 속성을 활용하면 파일을 보다 안전하게 관리할 수 있다.
🚀 파일 보호 및 시스템 보안을 강화하는 데 chattr과 lsattr을 적극 활용하세요!
Reference
'Linux' 카테고리의 다른 글
리눅스 명령어 2. jq란? (2) | 2024.01.19 |
---|---|
리눅스 명령어 1. xargs란? (0) | 2024.01.16 |
CentOS 7 / 계정에 sudo 권한 주기 (0) | 2022.04.28 |
Django(Linux) (0) | 2022.02.16 |
LVM (0) | 2022.02.16 |