강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

특정 파일에 대하여 파일삭제는 불가능하지만 파일에 내용을 추가하는 것은 가능하도록 하는 속성 부여하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

특정 파일에 대하여 파일삭제는 불가능하지만 파일에 내용을 추가하는 것은 가능하도록 하는 속성 부여하기

 




파일의 a속성이 설정되어있다면 파일삭제는 불가능하지만 파일에 내용을 추가하는 것은 가능해집니다.

 

 

 

  따라서 이번에는 a 속성을 이용하여 파일에 추가는 가능하나 삭제는 되지 않도록 속성을 설정하는 예를 보겠습니다.

 

 

 

 


, 파일에 내용추가는 가능하도록 설정하고 삭제는 되지 않도록 하는 예를 보일 것이며 대상이 되는 파일은 리눅스의 로그파일에 설정하시면 유용할 것입니다.

 

 

 

 필자의 경우에는 a속성의 설정은 주로 /var/log/디렉토리에 존재하는 로그파일들, 예를 들어 messages, secure, maillog등의 파일들에 이 속성을 지정해 두고 사용합니다.

 

 

 

 

 

, 그럼 /var/log/messages파일을 대상으로 a속성을 부여하여 로그는 계속 추가저장 되도록 설정하고 삭제는 불가능하도록 설정해 보도록 하겠습니다.

 

 

 

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

 

 

 

 

 

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

 

 

 

 

 

[root@su250 ~]# ls -l messages

-rw------- 1 root root 705950 Jan  8 17:15 messages

[root@su250 ~]#

[root@su250 ~]# lsattr messages

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

[root@su250 ~]#

 

다음은 chattr을 이용하여 a속성을 messages 파일에 부여한 것입니다.

 

 

 

 그리고 부여된 결과를 확인하기 위해 lsattr로 속성설정내용을 확인한 것입니다.

 

 

 

 

 

[root@su250 ~]# chattr +a messages

[root@su250 ~]#

[root@su250 ~]# lsattr messages

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

[root@su250 ~]#

 

a 속성이 설정되어 있기 때문에 messages파일에 시스템로그는 계속 저장이 될 것입니다.

 

 

 

 , messages의 기능상의 문제는 전혀 없기 때문에 시스템에서 발생하는 문제는 전혀 없습니다.

 

 

 

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

 

 

 

 

 

[root@su250 ~]# tail -f messages

Jan  8 16:45:04 su250 avahi-daemon[1901]: Joining mDNS multicast group on interface eth0.IPv4 with address 192.168.0.250.

Jan  8 16:45:04 su250 avahi-daemon[1901]: New relevant interface eth0.IPv4 for mDNS.

Jan  8 16:45:04 su250 avahi-daemon[1901]: Registering new address record for 192.168.0.250 on eth0.IPv4.

Jan  8 16:45:05 su250 avahi-daemon[1901]: Server startup complete. Host name is su250.local. Local service cookie is 3785052050.

Jan  8 16:45:05 su250 NetworkManager: <WARN>  nm_system_replace_default_ip4_route(): Failed to set IPv4 default route on 'eth1': Sucess#012

Jan  8 16:45:06 su250 NetworkManager: <info>  Policy set 'System eth1' (eth1) as default for routing and DNS.

Jan  8 16:45:06 su250 NetworkManager: <info>  (eth0): device state change: 7 -> 8

Jan  8 16:45:06 su250 NetworkManager: <info>  Activation (eth0) successful, device activated.

Jan  8 16:45:06 su250 NetworkManager: <info>  Activation (eth0) Stage 5 of 5 (IP Configure Commit) complete.

Jan  8 16:45:06 su250 avahi-daemon[1901]: Service "su250" (/services/ssh.service) successfully established.

 

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

 

 

 

 

 

[root@su250 ~]# rm -f messages

rm: cannot remove `messages': Operation not permitted

[root@su250 ~]#

 

그리고 이번에는 a라는 속성을 제거하였습니다.

 

 

 

  a속성을 제거한 후에 lsattr로 속성제거를 확인 하였습니다.

 

 

 

 

 

[root@su250 ~]# chattr -a messages

[root@su250 ~]#

[root@su250 ~]# lsattr messages

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

[root@su250 ~]#

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,074 명
  • 현재 강좌수 :  35,995 개
  • 현재 접속자 :  521 명