bbong blog : 위치로그 : 태그 : 방명록 : 관리자 : 새글쓰기
bbong blog 블로그에 오신것을 환영해요^^
방명록에 글 남기기!!
25
132
149417
Date : 2011/06/02 17:38 (보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.)
'chattr'에 해당되는 글 1건

chattr, lsattr


루트도 지우지 못하는 파일을 설정한다.


chattr [옵션] [+=-속성] [파일명]


[옵션]

-R : 하위 디렉토리까지 재귀적으로 바꿈
-V : 파일속성을 바꾼 다음에 보여줌
-v version : 지정된 파일에 버전을 설정할 수 있습니다.


[설정모드]
+ : 속성을 추가합니다.

- : 속성을 제거합니다.

= : 원래 파일이 가지고 있던 그 속성만을 유지하게 합니다.


[속성]
a : 파일을 추가모드로만 열수 있다. 단, vi편집기로는 내용을 추가 할 수 없습니다.
c : 압축되어 있는 상태로 저장함
d : dump명령을 통하여 백업받을 경우 백업받지 않습니다.
i : 파일을 read-olny로만 열 수 있게 설정합니다. 링크도 허용하지 않고 루트만이 이 속성를 제거할 수 있습니다.

s : 파일삭제가 될 경우에 해당블럭이 모두 0으로 되어 버리고 디스크에 다시 쓰기가 발생합니다.

S : 파일이 변경 될 경우에 디스크동기화가 일어나는 효과가 발생합니다.

u : 파일이 삭제가 되었을 경우에는 그 내용이 저장이 되며 삭제되기 전의 데이터로 복구가 가능해집니다.


* lsattr 이라는 명령으로 파일의 chattr 속성를 확인할 수 있다.

예제

----------------------------------------------------------------------------------------
1. 파일의 삭제,변경,추가등을 불가능하게 하는 속성 설정하기

[root@SasuKE root]# touch test
[root@SasuKE root]# lsattr test
------------- test
[root@SasuKE root]# chattr +i test
[root@SasuKE root]# lsattr test
----i-------- test
[root@SasuKE root]# rm -rf test
rm: cannot remove `test': 명령이 허용되지 않음
[root@SasuKE root]#


2. 파일의 삭제는 불가능하지만 내용추가는 가능하도록 하는 속성 설정하기

[root@SasuKE root]# ls -al /var/log/messages
-rw-------    1 root     root       474540  3월 14 11:29 /var/log/messages
[root@SasuKE root]# chattr +a /var/log/messages
[root@SasuKE root]# lsattr /var/log/messages
-----a------- /var/log/messages
[root@SasuKE root]# tail -f /var/log/messages
Mar 13 14:35:18 SasuKE dhcpd: Sending on   Socket/fallback/fallback-net
Mar 13 14:35:18 SasuKE dhcpd: dhcpd startup succeeded
Mar 13 14:35:19 SasuKE sendmail: sendmail startup succeeded
Mar 13 14:35:19 SasuKE sendmail: sm-client startup succeeded
Mar 13 14:35:19 SasuKE gpm: gpm startup succeeded
Mar 13 14:35:22 SasuKE httpd: httpd startup succeeded
Mar 13 14:35:22 SasuKE crond: crond startup succeeded
Mar 13 14:35:24 SasuKE kernel: parport0: PC-style at 0x378 [PCSPP]
Mar 13 14:35:24 SasuKE kernel: lp0: using parport0 (polling).
Mar 13 14:35:24 SasuKE kernel: lp0: console ready
Mar 13 14:35:24 SasuKE modprobe: modprobe: Can't locate module char-major-188
Mar 13 14:35:24 SasuKE last message repeated 15 times
Mar 13 14:35:24 SasuKE cups: cupsd startup succeeded
Mar 13 14:35:25 SasuKE smb: smbd startup succeeded
Mar 13 14:35:25 SasuKE smb: nmbd startup succeeded
Mar 13 14:35:25 SasuKE anacron: anacron startup succeeded
Mar 13 14:35:25 SasuKE atd: atd startup succeeded

[root@SasuKE root]# rm -rf /var/log/messages
rm: cannot remove `/var/log/messages': 명령이 허용되지 않음


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

[root@SasuKE SasuKE]# ls -lR Shell
합계 112
-rwxr--r--    1 root     root          171  1월 14 17:09 4.csh
drwxr-xr-x    9 root     root         4096  3월 10 11:27 ExShell
-rwxr--r--    1 root     root          122 12월 21 16:33 aa.csh
-rwxr--r--    1 root     root          261 10월  8 09:09 adduser.csh
-rwxr--r--    1 root     root          418 10월 11 19:23 case.csh
-rwxr--r--    1 root     root          384 10월  8 09:09 chmod.csh
-rwxr--r--    1 root     root          262 10월  8 09:09 chmod1.csh
-rwxr--r--    1 root     root           70 10월  8 09:09 crontab_server.csh
-rwxr--r--    1 root     root          274 10월  8 09:09 deluser.csh
-rwxr--r--    1 root     root          418 10월  8 09:09 expr.csh

[root@SasuKE SasuKE]# chattr -R -i Shell

[root@SasuKE SasuKE]# lsattr -R Shell |more
----i-------- Shell/4.csh
----i-------- Shell/aa.csh
----i-------- Shell/adduser.csh
----i-------- Shell/case.csh
----i-------- Shell/chmod.csh
----i-------- Shell/chmod1.csh
----i-------- Shell/crontab_server.csh
----i-------- Shell/deluser.csh
----i-------- Shell/expr.csh


4. 속성 제거하기

[root@SasuKE root]# lsattr test
------------- test
[root@SasuKE root]# chattr -i test
[root@SasuKE root]# lsattr test
----i-------- test
[root@SasuKE root]# rm -rf test
[root@SasuKE root]#


5. 특정 디렉토리내의 모든 파일과 디렉토리에 대하여 한번에 속성 제거하기

[root@SasuKE SasuKE]# lsattr -R Shell |more
----i-------- Shell/4.csh
----i-------- Shell/aa.csh
----i-------- Shell/adduser.csh
----i-------- Shell/case.csh
----i-------- Shell/chmod.csh
----i-------- Shell/chmod1.csh
----i-------- Shell/crontab_server.csh
----i-------- Shell/deluser.csh
----i-------- Shell/expr.csh

[root@SasuKE SasuKE]# chattr -R -i Shell

[root@SasuKE SasuKE]# lsattr -R Shell |more
------------- Shell/4.csh
------------- Shell/aa.csh
------------- Shell/adduser.csh
------------- Shell/case.csh
------------- Shell/chmod.csh
------------- Shell/chmod1.csh
------------- Shell/crontab_server.csh
------------- Shell/deluser.csh
------------- Shell/expr.csh

6. 여러가지 속성을 한번에 설정하기

[root@SasuKE root]# lsattr test
------------- test
[root@SasuKE root]# chattr +aisSu test
[root@SasuKE root]# lsattr test
suS-ia------- test
[root@SasuKE root]# rm -rf test
rm: cannot remove `test': 명령이 허용되지 않음
[root@SasuKE root]#

-----------------------------------------------------------------------------------