https://www.linux.co.kr/home/lecture/?leccode=10664
파일의 속성관리를 위한 chattr실무활용 -1- | |||
작성자 : (주)수퍼유저코리아, http://www.superuser.co.kr 서버팀 | |||
| |||
위의 testfile을 root로 삭제하려고 하였으나 보시는 바와 같이 “Operation not permitted”라는 메시지와 함께 삭제되지 않았습니다. 여러분들께서도 위와 같은 황당한 경험을 한번쯤은 해보셨으리라 생각합니다. 왜그럴까요. 이 파일에는 삭제되지 못하도록 하는 파일속성이 설정되어있기 때문입니다. 가끔씩 해킹을 당한 서버내에 이런 파일들이 존재하는 경우가 흔히 있습니다. 이런 경우에 chattr과 lsattr명령어로 해당 파일에 설정되어있는 파일의 속성을 확인해 보시고 올바른 속성으로 수정하시면 됩니다. 즉, 이런 파일의 속성을 설정하고 제거할 수 있는 명령어가 chattr이며 파일에 설정되어있는 속성을 확인하는 명령어가 lsattr입니다. 어떤분들께서는 좀 황당하게 생각할 수도 있을 것입니다. 파일의 퍼미션(permission)에 대한 이해와 설정방법만 해도 복잡해 죽겠는데, 뭔 속성(attribution)이라는 것이 있어서 이렇게 힘들게 하나라고 말입니다. 하지만, 분명히 말씀드리지만 현명하고 똑똑하고 유능한 서버관리자가 되려면 파일의 퍼미션외에도 속성에 대해서 정확하게 알아두셔야 합니다. 필자가 지금 괜히 공포분위기 조성하는 것이 아니라 사실이기 때문에 힘주어 강조하고 있는 것입니다. 따라서 이번장의 설명을 잘 읽고 이해하셔서 여러분들의 서버관리 행로에 일취월장의 보탬이 되기를 바랍니다. 이쯤에서 잔소리는 각설하고 한마디로 요약하자면 chattr명령어는 파일과 디렉토리의 속성을 지정하는 명령어입니다. 도스(DOS)에서는 attrib라는 명령어로 파일의 속성을 지정하였던 것을 기억하실 것입니다. 리눅스에서는 chattr이라는 명령어로 파일과 디렉토리의 속성을 지정할 수 있습니다. 여기서 말하는 속성(attribution)은 파일의 퍼미션(permission)과는 다른 것으로 다음과 같은 것들이 있습니다. 특정파일에 대해 삭제 및 변경, 추가등을 불가능하게 한다든지, 추가는 되지만 삭제는 안되게한다든지하는 설정이 가능합니다. 쉽게 말씀드리면, 퍼미션(permission)은 ls명령어로 확인할 수 있는 것으로 파일의 읽기(read), 쓰기(write), 실행(execution)에 관한 표시를 하지만, 속성(attribution)은 lsattr로 확인할 수 있으며 파일의 변경과 접근,실행등의 권한을 설정해둔 것입니다. chattr의 사용형식은 다음과 같습니다. 명령어위치 : /usr/bin/chattr 사용형식 : chattr [-RV] [-v 설정버전] [+-=설정모드] 대상파일들 chattr에서 사용하는 [설정모드]는 다음과 같습니다. + : 지정한 속성을 부여합니다. +기호가 사용되면 지정한 속성을 부여한다는 의미입니다. : 지정한 속성을 제거합니다. -기호가 사용되면 부여된 속성을 제거한다는 의미입니다. : 원래 파일이 가지고 있던 그 속성만을 유지하게 합니다.
-R : 서브디렉토리이하까지 그 속성을 변경할 수 있습니다. -V : 자세한 출력모드를 제공합니다. -v version : 지정된 파일에 버전을
설정할 수 있습니다. 또한 chattr명령어에서 무엇보다 중요한 것은 각 속성을 정확하게 이해하는
것입니다. a 속성 이 속성이 설정된 파일은 커널에 의해 디스크상에 자동적으로 압축된 상태로 저장이 되어 있습니다. 파일을 읽을 경우에는 압축을 해제한 상태로 되돌려주며 쓰기시에는 디스크에 저장하기 전에 파일을 압축합니다. d 속성 이 속성이 설정된 파일은 dump로 백업이 되지않습니다. i 속성
S 속성 이 속성이 설정된 파일은 변경이 될 경우에 디스크동기화가 일어나는 효과를 그대로 누릴 수 있습니다.
따라서 chattr로 파일과 디렉토리의 속성을 지정하는 주된 이유는 허가되지않은 사용자가 파일의 변경을 못하게하는 설정을 하여 파일보안을 하기위한 것입니다.
| |||
| |||
다음은 이 파일에 i 속성을 설정한 것입니다.
이제 파일(rc.local)의 삭제를 해보도록 하겠습니다.
그리고 이번예에서 부여한 rc.local파일의 i속성을 다음절에서 제거해
보겠습니다.
| |||
| |||
그리고 이제 다시 rc.local파일을 삭제하시면 아무런 속성이 지정되어 있지않기 때문에 삭제가 됨을 알 수 있습니다.
|
'UNIX > Redhat' 카테고리의 다른 글
chage 를 통한 비밀번호 관리 -2 (0) | 2013.10.30 |
---|---|
파일 속성관리 chattr -2 (0) | 2013.10.07 |
ext3 파일시스템의 resize (0) | 2013.09.27 |
dd 명령어 (0) | 2013.09.27 |
vsftpd 에서 익명 ftp 경로 바꾸기 (0) | 2013.07.31 |