리눅스를 유닉스를 기반으로 하고 있고

유닉스는 파일의 속성 권한을 2진법으로 구분 하고 있다.

이는 시스템 보안에서 가장 첫번째로 중요한 부분 으로써 외부 애플리케이션 등이나 외부의 일반적인 친입 등으로 부터 파일의 변조나 리딩을 보호 할수가 있다.

뿐만 아니라 파일의 실행 속성 가능 여부 까지 제어 하는 것을 기본 원칙으로 하고 있다.

즉 유닉스 시스템 에서는 모든 파일들이 실행 가능한 스크립트를 내장 하고 있다고 하여 실행이 가능한 것이 아니다.

관리자 혹은 제작자가 실행 가능 여부를 권한 변경 설정을 해줘야만 실행이 가능한 것이다.

이러한 관리툴을 대표적으로 'chmod (Changes mod)' 라고 하며 이 chmod 명령을 사용하여 해당 폴더나 파일의 권한 속성을 변경 할수가 있다.

모드의 종류는

크게 세 가지인 'R, W, X'로 나뉜다.

R = Read (읽기 가능)

W = Write (쓰기 가능)

X = Excute (실행 가능)



먼저 현재 사용자의 홈 폴더의 파일이나 폴더들의 속성을 보도록 해 보자.


// ls의 -la 속성 명령어로 파일의 속성까지 전부 출력 한다.

    $ ls -la

    -- 다음과 비슷한 화면이 뜰 것이다.

    drwxrwxr-x.   3 tester tester      4096  5월 16 02:40 test7
    -rwx--x--x.   1 tester tester      1715  5월  8 18:11 tested
    -rwx--x--x.   1 tester tester         5  5월  8 21:17 testo
    drwx--x--x.   3 tester tester      4096  6월 10 19:35 tmp
    -rwx--x--x.   1 tester tester       442  5월 10 23:41 ustat
    -rwxrwxr-x.   1 tester tester        10  5월 15 02:54 vi
    -rwx--x--x.   1 tester tester         7  5월 15 03:16 vic
    drwxrwxr-x.   2 tester tester      4096  7월 25 13:57 video
    drwxrwxr-x.   2 tester tester      4096  8월  4 15:47 wine
    drwxrwxr-x.   2 tester tester      4096  7월 20 17:57 workspace
    drwx--x--x.   2 tester tester      4096  4월 29 17:59 공개
    drwx--x--x.   2 tester tester     12288  8월  4 12:42 다운로드
    drwxrwx--x.   2 tester tester      4096  8월  4 14:43 문서
    drwxrwx--x.   2 tester tester      4096  8월  4 15:36 바탕화면
    drwx--x--x.   2 tester tester      4096  8월  4 02:09 비디오
    drwx--x--x.   2 tester tester      4096  8월  4 03:39 사진
    drwx--x--x.   2 tester tester      4096  5월 11 20:46 음악
    drwxrwxr-x.   2 tester tester      4096  5월 17 11:43 이름 없는 폴더
    drwxrwxr-x.   3 tester tester      4096  5월 17 11:37 이름 없는 폴더 2
    drwx--x--x.   2 tester tester      4096  4월 29 17:59 템플릿

    (  속성    )          (사용자 이름)               (파일이나 폴더 이름)



   

여기서 '템플릿' 이라는 디렉토리의 속성 'drwx--x--x' 는 아래와 같이 3등분이 된다.

drwx / --x / --x :

사용자 / 그룹 / 외부(anonymous)


읽기,쓰기,실행/ 실행 / 실행

처음 drwx 의 'd'는 '디렉터리'를 의미 한다.

이것을 진수로 표기한다면


rwx / --x / --x =

111  / 001 / 001 =

(421) / (421) / (421) =

4+2+1 / 0+0+1 / 0+0+1 =

7    /     1    /   1


즉 해당 폴더에 대한 모드는 숫자표기로 '711'이 된다.


그렇다면 이제는 해당 '템플릿' 폴더를 'drwx/---/--- (절대 사용자만 읽기,쓰기,실행 가능)' 으로 속성 권한을 변경 하여 보자.



// 속성을 700으로 변경한다.

    $ chmod 700 템플릿

// 속성을 재확인 한다.

   $  ls -l |grep 템플릿
         (grep 은 출력에서 원하는 문자열이 있는 라인만 출력 시킨다.)
 
    - 다음과 같이 출력 되면 성공한 것이다.
 
    drwx------.  2 tester tester      4096  4월 29 17:59 템플릿



이와 같은 방법은 파일에서도 똑같이 적용 되며


* 만일 디렉터리일 경우 속성을 '6xx'로 할 경우

    $ chmod 600 폴더

    - 폴더 속성이 drw------- 으로 변경됨으로 x(실행) 속성 권한이 사라짐으로 폴더로 진입 할수 없게 된다.

    - 뿐만 아니라 그룹 속성까지 제로로 한다면 'ls' 같은 일반 프로그램도 타 소프트웨어들도 접근을 못하게 된다.
    (해당 폴더에 들어가서 ls를 실행할 경우 진행 되지 않는다.)   
즉, 그룹 권한을 생각하여 최소한 '750(rwxr-x---)' 이상으로 권한을 부여 하는 것이 일반적이다.





또한 해당 디렉토리 하부의 모든 파일과 폴더들을 전부 똑같이 적용 시키려면



// -R 속성으로 하부까지 전부 적용 시킨다.

   $ chmod -R 770 폴더
 
// 하위까지 속성을 한번에 확인해 본다.

   $ ls -lR 폴더



+ Recent posts