Skip to content

파일의 속성관리를 위한 chattr실무활용 -2- 
작성자 : (주)수퍼유저코리아, http://www.superuser.co.kr 서버팀
 
4장. 특정 파일에 대하여 파일삭제는 불가능하지만 파일에 내용을 추가하는 것은 가능하도록 하는 속성 부여하기
 
 

파일의 a속성이 설정되어있다면 파일삭제는 불가능하지만 파일에 내용을 추가하는 것은 가능해집니다.
따라서 이번에는 a 속성을 이용하여 파일에 추가는 가능하나 삭제는 되지않도록 속성설정을 하는 예를 보이도록 하겠습니다.

즉, 파일에 내용추가는 가능하도록 설정하고 삭제는 되지않도록하는 예를 보일 것이며 대상이 되는 파일은 리눅스의 로그파일에 설정하시면 유용할 것입니다.
필자의 경우에는 a속성의 설정은 주로 /var/log 디렉토리에 존재하는 로그파일들, 예를 들어 messages, secure, maillog등의 파일들에 이 속성을 지정해 두고 사용합니다.

자, 그럼 /var/log/messages파일을 대상으로 a속성을 부여하여 로그는 계속 추가저장 되도록 설정하고 삭제는 불가능하도록 설정해 보도록 하겠습니다.
앞서도 설명드렸지만 여기서 설명되는 내용을 그대로 따라 하실 것 같아서 필자는 imsi라는 디렉토리를 따로 만들어서 /var/log/messages파일을 복사한 다음 a속성을 부여한 것이므로 여러분들께서는 이론적인 무장과 충분한 설정연습을 하신 후에 실제업무에 적용하시기 바랍니다.

먼저, messages파일을 확인 한 것입니다.

[root@host3 log]# ls -l messages

-rw-------1 rootroot65852 10월7 21:43 messages

[root@host3 log]#
 

다음은 chattr을 이용하여 a속성을 messages 파일에 부여한 것입니다. 그리고 부여된 결과를 확인하기 위해 lsattr로 속성설정내용을 확인한 것입니다.

[root@host3 log]# chattr +a messages

[root@host3 log]#

[root@host3 log]# lsattr messages

----a--------- messages

[root@host3 log]#
 

 

a 속성이 설정되어 있기 때문에 messages파일에 시스템로그는 계속 저장이 될 것입니다. 즉, messages의 기능상의 문제는 전혀 없기 때문에 서버에서 발생하는 문제는 전혀 없습니다.


아래의 예는 실제로 /var/log/messages 파일에 a속성이 설정되어 있는 것으로 시스템 로그는 그대로 실시간으로 추가 저장이 되고 있음을 알 수 있습니다.

[root@host3 log]# tail -f messages

Oct7 16:49:19 host3 atd: atd startup succeeded

Oct7 16:49:19 host3 xfs: ignoring font path element

/usr/X11R6/lib/X11/fonts/cyrillic (unreadable)

Oct7 16:49:24 host3 modprobe: modprobe: Can't locate module char-major-226

Oct7 16:49:24 host3 modprobe: modprobe: Can't locate module char-major-226

Oct7 16:49:24 host3 kernel: Linux agpgart interface v0.99 (c) Jeff Hartmann

Oct7 16:49:24 host3 kernel: agpgart: Maximum main memory to use for agp memory: 96M

Oct7 16:49:24 host3 kernel: agpgart: Detected Intel 440BX chipset

Oct7 16:49:24 host3 kernel: agpgart: AGP aperture is 128M @ 0xe0000000

Oct7 16:49:24 host3 kernel: [drm] Initialized tdfx 1.0.0 20010216 on minor 0

Oct7 21:43:39 host3 sshd(pam_unix)[892]: session opened for user root by (uid=0)
 

 

그리고 다음과 같이 삭제를 하려고 할 경우에 "명령이 허용되지 않음" 또는 영문으로 "Operation not permitted"라는 메시지와 함께 삭제는 되지않음을 확인하실 수 있을 것입니다.

[root@host3 log]# rm -f messages

rm: cannot remove `messages': Operation not permitted

[root@host3 log]#
 

 

그리고 이번에는 a라는 속성을 제거하였습니다.a속성을 제거한 후에 lsattr로 속성제거를 확인 하였습니다.

 

[root@host3 log]# chattr -a messages

[root@host3 log]#

[root@host3 log]# lsattr messages

-------------- messages

[root@host3 log]#
 

 

 
 
5장. 특정 디렉토리내의 모든 파일과 디렉토리에 대하여 한번에 속성부여하고 확인하기
 
 


이번에는 특정 디렉토리내의 모든 파일들과 디렉토리들을 대상으로 한꺼번에 특정 속성을 설정해 보도록 하겠습니다. 다음과 같이 bible이라는 디렉토리가 있습니다.

[root@host3 home]# ls -l

합계 36

drwxr-xr-x38 biblebible40969월 18 18:08 bible

[root@host3 home]#
 

이 디렉토리에는 다음과 같이 수많은 파일들과 디렉토리들이 존재합니다. 아래 결과가 너무 많은 까닭으로 일부 결과를 생략하였습니다..

[root@host3 home]# ls -lR bible | more

bible:

합계 3732

-rw-r--r--1 rootroot80428월 272001 00-INDEX

drwxr-xr-x4 rootroot40968월 28 03:13 802

drwxr-xr-x2 rootroot40968월 28 03:13 8021q

-rw-r--r--1rootroot3699 11월 281999 BUG-HUNTING

-rw-r--r--1 rootroot120349월52002 Changes

-rw-r--r--1 rootroot109089월 102001 CodingStyle

-rw-r--r--1 rootroot34839월52002 Config.in

-rw-r--r--1 rootroot11190659월52002 Configure.help

-rw-r--r--1 rootroot24349월 18 18:04 DIR_COLORS

-rw-r--r--1 rootroot24349월 18 18:04 DIR_COLORS.xterm

-rw-r--r--1 rootroot295949월52002 DMA-mapping.txt

drwxr-xr-x2 rootroot40968월 28 03:13 DocBook

-rw-r--r--1 rootroot79901월52001 IO-mapping.txt

-rw-r--r--1 rootroot13629월52002 IRQ-affinity.txt

-rw-r--r--1 rootroot45282월 182000 LVM-HOWTO

-rw-r--r--1 rootroot16949월52002 Makefile

-rw-r--r--1 rootroot923369월 18 18:04 Muttrc

-rw-r--r--1 rootroot932 12월 222001 README

-rw-r--r--1 rootroot34741 10월 182001 README.DAC960

-rw-r--r--1 rootroot7731월 212000 README.moxa

-rw-r--r--1 rootroot3848 10월 122001 README.nsp_cs.eng

이하 결과생략....
 

자, 그럼 bible내에 존재하는 모든 파일과 디렉토리에 i속성을 설정해 보도록 하겠습니다.

[root@host3 home]# chattr -R +i bible

[root@host3 home]#
 

아래와 같이 lsattr로 bible디렉토리의 모든 파일과 디렉토리들에게 i속성이 설정된 것을 확인한 것입니다.
결과내용이 너무 많은 관계로 일부결과를 생략 하였습니다.

[root@host3 home]# lsattr -R bible | more

---i---------- bible/DIR_COLORS

---i---------- bible/DIR_COLORS.xterm

---i---------- bible/Muttrc

---i---------- bible/a2ps-site.cfg

---i---------- bible/a2ps.cfg

---i---------- bible/adjtime

---i---------- bible/aep.conf

---i---------- bible/aeplog.conf

---i---------- bible/aliases

---i---------- bible/aliases.db

---i---------- bible/anacrontab

---i---------- bible/at.deny

---i---------- bible/auto.master

---i---------- bible/auto.misc

---i---------- bible/bashrc

---i---------- bible/cdrecord.conf

---i---------- bible/crontab

이하결과 생략..
 

 

 
 
6장. 특정 디렉토리내의 모든 파일과 디렉토리에 부여되어있는 속성을 동시에 제거하기
 
 

다음은 앞의 예와는 반대의 경우로 특정디렉토리 내의 파일과 디렉토리의 속성을 한번에 제거하는 예입니다.
즉, 위에서 bible이라는 디렉토리내의 모든 파일과 디렉토리의 속성을 설정하였으므로 이 속성을 모두 한번에 제거해 보겠습니다.

[root@host3 home]# chattr -R -i bible

[root@host3 home]#

[root@host3 home]# lsattr -R bible | more

-------------- bible/DIR_COLORS

-------------- bible/DIR_COLORS.xterm

-------------- bible/Muttrc

--------------bible/a2ps-site.cfg

-------------- bible/a2ps.cfg

-------------- bible/adjtime

-------------- bible/aep.conf

-------------- bible/aeplog.conf

-------------- bible/aliases

-------------- bible/aliases.db

-------------- bible/anacrontab

-------------- bible/at.deny

-------------- bible/auto.master

-------------- bible/auto.misc

-------------- bible/bashrc

-------------- bible/cdrecord.conf

-------------- bible/crontab

-------------- bible/csh.cshrc

-------------- bible/csh.login

-------------- bible/dumpdates

-------------- bible/esd.conf

-------------- bible/exports

-------------- bible/fam.conf

이하결과 생략...
 

아래의 결과를 보시면 앞의 예에서 bible디렉토리내의 모든 파일과 디렉토리에 설정했던 i속성이 제거된 것을 확인하실 수 있습니다.

 

 

 
7장. 파일의 여러가지 속성을 한번에 설정하기
 
 

이번에는 chattr로 설정할 수 있는 여러가지 속성을 동시에 설정하는 예를 보도록 하겠습니다.

아래의 예는 file1이라는 파일에 a, i, s, S, u 속성 5개를 동시에 설정한 것입니다.

[root@host3 command]# ls -l file1

-rwx-----x1 rootroot4314004 10월7 21:58 file1

[root@host3 command]#

[root@host3 command]#

[root@host3 command]# lsattr file1

-------------- file1

[root@host3 command]#

[root@host3 command]# chattr +aisSufile1

[root@host3 command]#

[root@host3 command]# lsattr file1

suSia--------- file1

[root@host3 command]#
 

이처럼 각각의 속성은 독립적이기 때문에 여러개의 속성을 동시에 설정할 수 있습니다.

리눅스에는 보안설정을 하는 여러가지 방법이 있습니다. 이들 여러가지 방법중 파일보안을 위하여 chattr이 사용될 수 있습니다. 지금까지 설명드렸던 예들을 참조하여 여러분들께서 관리하시는 리눅스서버의 파일보안을 위하여 직접적용해 보시기 바랍니다.

이제 어느날 갑자기 파일을 삭제하려고 하였을 때에 “Operation not permitted”라는 메시지를 만나더라도 절대 당황하지 마시고 필자가 설명드린 내용을 참고하여 현명하게 대처하시길 바랍니다.

 

profile

일요일은 짜빠게뤼~ 먹는날~^^

엮인글 :
http://adminplay.com/2632/3f1/trackback
List of Articles
번호 제목 글쓴이 날짜 조회 수
127 crontab 예약실행 file ADMINPLAY 2009-09-22 22914
126 [Linux] too many files 에러가 날때 ADMINPLAY 2009-09-20 23869
125 서버로그 관리 ADMINPLAY 2009-09-20 22207
» [리눅스] 파일의 속성관리를 위한 chattr실무활용 -2- ADMINPLAY 2009-09-09 15782
123 [리눅스] 파일의 속성관리를 위한 chattr실무활용 -1- ADMINPLAY 2009-09-09 17872
122 ipchains bridge 방화벽 정리 자료. file ADMINPLAY 2009-09-08 23181
121 웹에서 ssh 를 지원해준다. [webssh] file ADMINPLAY 2009-09-08 23215
120 포트 포워딩 도구 ipmasqadm file ADMINPLAY 2009-09-08 23550
119 리눅스서버 응급복구와 삭제파일 복구 ADMINPLAY 2009-08-19 18860
118 리눅스에서 베드섹터 검사명령어 ADMINPLAY 2009-08-18 23553
117 CentOS 설치후 기본언어를 한국어로 바꾸기 ADMINPLAY 2009-08-18 21050
116 리눅스서버 장애처리및 삭제파일 복구 ADMINPLAY 2009-08-08 21071
115 커널 2.6으로 업그레이드!「A to Z」 ADMINPLAY 2009-08-08 76358
114 Cent OS-5.2 설치 문서 GUI ADMINPLAY 2009-08-08 20870
113 커널 컴파일 장애 처리 perl: warning: Please check that... ADMINPLAY 2009-08-08 24427
112 rrdtool 컴파일시 에러 configure: error: Please fix the... ADMINPLAY 2009-08-08 67950
111 FreeBSD 커널패닉 복구하기 ADMINPLAY 2009-08-08 21727
110 usb 부팅 리눅스 만들기(knoppix) ADMINPLAY 2009-08-08 26483
109 인터넷 속도 단위 (bps, cps) ADMINPLAY 2009-08-03 23341
108 리눅스 로그파일 관리 [로그파일 삭제하는 방법] ADMINPLAY 2009-07-31 23582

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234