IT

[mac]터미널에서 파일 및 디렉터리 퍼미션 부여( chmod 명령 )

생각파워 2020. 1. 15. 10:54

맥 터미널에서 ls -al 이란 명령어를 실행시켜보면

제일 앞 부분에 위와 같은 문자열이 나타납니다.

drwxr-xr--

구분을 해서 보면 아래와 같이 나눠볼 수 있습니다.

문자열 의미
d d면 디렉터리, 하이픈(-)이면 파일
rwx 소유자의 읽기(r), 쓰기(w), 실행(x) 권한
r-x 그룹의 읽기(r), 쓰기(w), 실행(x) 권한
r-- 모든 사용자의 읽기(r), 쓰기(w), 실행(x) 권한

파일이나 디렉터리를 보호하기 위해서 사용자 별로 권한을 부여할 수 있게 해놨습니다.

 

이제 권한을 변경해야 한다면 어떻게 해야 할까요?

chmod 명령어를 사용하면 됩니다.

앞에 디렉터리 및 파일 구분자를 제외하고 총 9자리에 대해서 

권한을 부여하는곳은 이진수로 1, 그렇지 않은 곳에는 0을 주면 됩니다. 

 

예를들어 test.txt 파일을 전체 권한을 주고 싶을때(-rwxrwxrwx 라고 부여되겠죠)

명령문을 적어보면

 

chmod 111111111 test.txt

 

라고 하면 될것입니다.

그런데 이렇게 실행을 해보면

 

chmod: Invalid file mode: 111111111: Result too large

 

라는 에러메시지만 뜹니다.

왜냐? chmod에는 10진수만 사용할 수 있기 때문이죠.

앞에 1이 9개인것을 3개씩 나눠서 10진수로 변환합니다.

 

111 / 111 / 111 

 7  /  7  /  7

 

그래서

 

chmod 777 test.txt

 

로 실행을 하면 누구에게나 읽기, 쓰기, 실행 권한이 부여됩니다.

물론 이렇게 해서는 안되겠죠.

보통 755라고 권한을 많이 줍니다.

2진수로 변환해보면 

 

  7   /   5    /   5

 111  / 100 / 100

rwx / r--   / r--

 

최종적으로

 

-rwxr--r--

 

파일소유자에게는 읽기, 쓰기, 실행 권한

그룹과 모든 사용자에게는 읽기 권한만 부여됩니다.

나머지 권한도 0~7까지 적절한 숫자를 부여해주면 됩니다.

 

반응형