리눅스는 파일 또는 경로에 각각의 권한을 설정할 수 있으며 기본적으로 권한 값을 가지게 됩니다. 이 권한들은 숫자로 표기되는데 이 숫자가 의미하는 바는 무엇이고 어떤 권한을 말하는지 알아봅니다.



# 리눅스 권한에 대하여 알아보기
파일을 서버에 전송하기 전에도 역시 전송될 파일에 권한이 부여됩니다. 파일을 웹서버에 업로드 하기 전에도 권한을 변경하여 업로드 하기도 하죠~ 이때 777 또는 755 등의 표기로 권한이 일반적으로 부여합니다. 각 숫자가 의미하는 것은 무엇일까요?

! 권한 분류하기
일단 파일의 권한을 구분하는 경우 크게 3가지로 분류할 수 있습니다.
1. 읽기 Reading - 4
2. 쓰기 Writing - 2
3. 실행 Executing - 1

위 숫자는 각각의 실행 코드로 8진수로 나타냅니다. 예를 들자면 만약 777의 권한이 부여되었다면 각각의 7은 (4 + 2 + 1)을 의미하게됩니다. 즉 읽고 쓰고 실행 모두 가능하다는 의미입니다.

그 다음으로 연속된 숫자가 세번 표기되죠 ~ 777의 경우 각각의 7은 첫자리부터 다음의 의미를 가지게 됩니다.

처음의 7 - 소유자 권한
두번째의 7 - 그룹 사용자 권한
세번째의 7 - 기타 사용자 권한


위와 같이 누구에게 권한을 부여하는가를 나타납니다.

문제) 만약 755의 권한이라면 어떤 권한을 가지는 것일까요?
755는 소유자만 모든 것(쓰기, 읽기, 실행)이 가능하고 그 외 사용자의 경우는 읽기, 실행은 가능하나 쓰기는 불가능하다고 보시면 됩니다.


! 리눅스의 권한 표기 모습
리눅스는 권한이 매우 간단하고 명료하게 나타나죠. 다음처럼 출력되는 것을 볼 수 있습니다.
777 - rwxrwxrwx // 리눅스에서의 표기



# chmod를 사용한 권한 부여방법
chmod 명령어를 사용하여 파일 또는 디렉토리(폴더)에 권한을 부여, 수정할 수 있습니다. 만약 모든 권한 읽기, 쓰기, 실행을 부여한다면 아래와 같습니다.
sudo -s // root 권한 얻기
chmod -R 777 filename

이제 해당 파일의 권한이 바뀌게됩니다.


! 모든 파일 또는 폴더의 권한을 한번에 바꾸는 방법
하나가 아닌 모든 파일 또는 폴더의 권한을 변경할 경우 어떻게 해야할까요? 이  경우 find 키워드를 사용하여 가능합니다. 아래를 봐주세요.
find /test -exec chmod 755 {} \;

위 예제는 /test 경로에 위치한 모든 파일 및 폴더의 권한을 755로 변경하게 됩니다.


! 폴더 또는 파일의 권한만 모두 변경하는 방법은?
만약 파일만 변경하려면 아래와 같이 수행합니다.
find /test -type f chmod 755 {} \;

이번에는 폴더만 변경하려면 아래와 같이 type 값을 f로 바꾸어 수행합니다.
find /test -type f chmod 755 {} \;

여기까지 권한을 수정하는 방법에 대하여 알아보았습니다.