Linux 명령어 - chmod 명령어 사용법 알아보기(파일 권한 바꾸기)

     

     

    이번 포스팅에서는 chmod 명령어에 대해서 알아보도록 하겠습니다.

     

     

     

       Linux chmod 명령어 란?

     

     

     

    리눅스 파일 시스템에서 파일을 생성시 파일을 생성한 사용자가 파일에 대한 제어를 할수 있습니다 그러나 서비스를 운영하다보면 다른 사용자에게 접근, 읽기, 쓰기 같은 권한을 주어야할 경우가 있습니다.

     

     

     

     

    다른 사용자에게 접근 권한을 부여할때 사용되는 명령어가 chmod 입니다 chmod 명령어는 소유자, 그룹, 익명사용자에게 각각 별도로 지정이 가능하며, 권한을 지정시 숫자, 알파벳기호, 특수문자를 통해 설정할 수 있습니다.

     

     

     

       Linux chmod 옵션

     

     

     

    사용법 : chmod [옵션] [--옵션] [모드] [파일]
    사용법 : chmod [옵션] [--옵션] [8진수 모드] [파일]

     

    옵 션 설 명
    -c, --changes 올바르게 변경된 파일들만 -v 옵션을 적용하여 자세히 보여준다.
    -f, --silent, --quite 가능한 한 불필요한 메시지를 보여주지 않고 간략하게 보여준다.
    -v, --verbose 실행 과정을 자세하게 보여준다.
    -R, --recursive 디렉토리와 그 안에 존재하는 서브디렉토리까지 모두 적용한다.
    --help 사용 가능한 옵션들과 사용법을 보여준다.
    --version 현재 버전 정보를 보여준다.

     

     

     

       Linux chmod 절대 모드 지정 방식

     

     

    chmod 명령의 파일의 권한을 설정하는 방법에는 숫자를 지정하는 방식인 절대 모드 지정 방식과 특정 문자를 지정하여 상대 모드 지정 방법이 있습니다 먼저 절대 모드 지정밥법 부터 알아보겠습니다.

     

     

     

     

    사용자 권한 접근 유형 절대 모드 지정
    파일 소유자 읽기 r 5 or 400
    쓰기 w 2 or 200
    실행 x 1 or 100
    그룹 읽기 r 5 or 40
    쓰기 w 2 or 20
    실행 x 1 or 10
    다른 사용자 읽기 r 5
    쓰기 w 2
    실행 x 1

     

    숫자로 권한을 지정하는 방법은 읽기는 5, 쓰기는 2, 실행은 1입니다 읽기, 쓰기, 실행을 모두 더한 수인 7을 지정을 하여 읽기, 쓰기, 실행을 권한을 허용할 수 있고, 0을 지정할 경우 읽기, 쓰기, 실행을 권한을 허용하지 않을 수 있습니다

    이러한 수를 각각 소유자 권한, 그룹 권한, 그 밖에 다른 사용자를 지정할 수 있으며, 100, 10, 1 단위로 각각 권한을 설정할 수 있습니다.

     

     

     

    # ls -l chmod_file 
    -rw-r--r-- 1 root root 0  8월 12 18:56 chmod_file
    # chmod 751 chmod_file
    # ls -l chmod_file 
    -rwxr-x--x 1 root root 0  8월 12 18:56 chmod_file

     

    위 예제는 chmod_file을 741로 설정하였으며, 파일의 소유자는 읽기, 쓰기, 실행 권한이 그룹은 읽기, 실행 권한이 다른 사용자는 실행 권한만 주어지게 됩니다.

     

     

     

    # chmod 40 chmod_file 
    # ls -l chmod_file 
    ----r----- 1 root root 0  8월 12 18:56 chmod_file

     

    또한, 위 예제와 같이 2자리수로 지정이 가능합니다.

     

     

     

       Linux chmod 상대 모드 지정 방식

     

     

     

    두 번째는 특정 문자를 이용한 퍼미션 설정 방법이다. 먼저 특정 문자(u(파일 소유자)), g(그룹 소속자), o(일반 다른 사용자), a(모두))로 접근 주체를 지정하고, 다음으로 어떻게 실행할 것인지에 대한 실행자(+(권한 부여), -(권한 제거), =(권한유지))를 지정한 후에, 일기, 쓰기, 실행 등 권한에 해당하는 문자(r(일기), w(쓰기), x(실행), s(SetUID 또는 SetGID 설정) 등)를 지정하여 퍼미션을 설정한다.

     

    사용자 접근 주체 실행자 의 미 권 한 의미
    파일 소유자 u + 권한 부여 r 읽기
    - 권한 제거 w 쓰기
    = 권한 유지 x 실행
    그룹 g + 권한 부여 r 읽기
    - 권한 제거 w 쓰기
    = 권한 유지 x 실행
    다른 사용자 o + 권한 부여 r 읽기
    - 권한 제거 w 쓰기
    = 권한 유지 x 실행

     

     

     

     

    # ls -l chmod_file 
    ---------- 1 root root 0  8월 12 18:56 chmod_file
    # chmod g+rw chmod_file 
    # ls -l
    ----rw---- 1 root root 0  8월 12 18:56 chmod_file

     

    위 예제는 chmod_file의 그룹에 읽기와 쓰기 권한을 부여한 내용 입니다.

     

     

     

     

     

    # ls -l
    ----rw---- 1 root root 0  8월 12 18:56 chmod_file
    # chmod g-rw chmod_file 
    # ls -l
    ---------- 1 root root 0  8월 12 18:56 chmod_fil

     

    위 예제는 chmod_file의 그룹에 읽기와 쓰기 권한을 제거한 내용 입니다.

     

     

     

       Linux chmod 특수 목적 접근 방식

     

     

     

    접근 주체 절대 모드 방법 의미 표시
    SetUID(Set User ID) 4000 파일의 소유자만 삭제가능 설정 S - 빨간색
    SetGID(Set Group ID) 2000 프로세스 실행 당시 GID로 설정 S - 노란색
    sticky bit 1000 파일의 소유자만 삭제가능 설정 T

     

    SetUID. SetGID. 스티키 비트(Sticky bit)는 1000 단위에 절대 모드 지정 방식으로 설정이 가능 합니다 또한 해제 할때에는 0으로 지정하면 됩니다 그리고 SetUID는 파일에 색상이 빨간색 표시되고 SetGID는 노란색으로 표시됩니다.

     

    Posted by 서버이야기