[Linux] 리눅스 chmod 권한 변경 완벽 가이드: 8진수(755, 644) 계산법과 chown, chgrp 사용법
안녕하세요! 지난 시간에 리눅스 터미널에서 ls -l을 입력했을 때 나오는 맨 앞의 외계어들(-rw-r--r--)을 해독하는 방법을 알아보았습니다. 각각 [파일종류][소유자 권한][그룹 권한][타인 권한]을 뜻한다는 것을 배웠는데요.
오늘은 이 권한을 내 마음대로 주무르고 수정할 수 있는 마법의 명령어 chmod, chown, chgrp의 사용법을 정리해 보겠습니다.
특히 개발자들이 입 버릇처럼 말하는 chmod 755 속 숫자의 비밀을 완벽하게 파헤쳐 드립니다!
🛠️ 1. 글자로 권한 수정하기 (Symbolic Method)
가장 직관적인 방법은 대상과 더하기(+), 빼기(-) 기호를 이용해 권한을 넣고 빼는 것입니다.
- 대상:
u(User/소유자),g(Group/그룹),o(Others/타인),a(All/전체) - 연산자:
+(권한 부여),-(권한 박탈),=(권한 지정) - 권한:
r(읽기),w(쓰기),x(실행)
🎮 재밌는 실습: 파이어폭스(Firefox) 브라우저 고장 내기
리눅스 시스템 환경에서 실행 프로그램의 ‘실행(x) 권한’이 빠지면 어떻게 되는지 직접 테스트해 볼 수 있습니다.
# 1. 파이어폭스 실행 파일이 있는 폴더로 이동
$ cd /usr/lib/firefox
# 2. 모든 사용자(a)에게서 실행(-x) 권한을 뺏어버리기
$ sudo chmod a-x launcher.sh
이렇게 권한을 뺏은 뒤 바탕화면이나 메인 메뉴에서 파이어폭스를 더블클릭해 보면, 놀랍게도 프로그램이 전혀 실행되지 않습니다! 원상복구 하려면 다시 플러스(+)를 해주면 됩니다.
# 3. 모든 사용자(a)에게 다시 실행(+x) 권한을 부여하기
$ sudo chmod a+x launcher.sh
🔢 2. 숫자로 권한 수정하기 (Absolute/Octal Method)
현업 개발자들이나 가이드 문서에서 가장 애용하는 방식은 바로 8진수(Octal) 숫자 3개를 던져주는 방식입니다. (예: chmod 755 파일명)
이 숫자는 컴퓨터가 좋아하는 2진수 자릿수 특성을 바탕으로 [읽기=4], [쓰기=2], [실행=1]이라는 고유 점수를 부여한 뒤, 이를 더해서 만듭니다.
| 권한 | 기호 | 점수 (8진수 값) | 이진수 대응 |
|---|---|---|---|
| Read (읽기) | r |
4 | 100 |
| Write (쓰기) | w |
2 | 010 |
| Execute (실행) | x |
1 | 001 |
자, 이제 이 점수를 [소유자] [그룹] [타인] 순서대로 각각 더해서 3자리 숫자를 완성하면 됩니다.
💡 단골 숫자 해독하기
chmod 755(rwxr-xr-x)- 소유자: $4(읽기) + 2(쓰기) + 1(실행) = \mathbf{7}$
- 그룹: $4(읽기) + 0 + 1(실행) = \mathbf{5}$
- 타인: $4(읽기) + 0 + 1(실행) = \mathbf{5}$
-
의미: 주인은 모든 권한을 다 갖고, 나머지 사람들은 읽고 실행만 할 수 있는 일반적인 프로그램 파일에 적용합니다.
chmod 644(rw-r--r--)- 소유자: $4(읽기) + 2(쓰기) + 0 = \mathbf{6}$
- 그룹: $4(읽기) + 0 + 0 = \mathbf{4}$
- 타인: $4(읽기) + 0 + 0 = \mathbf{4}$
- 의미: 주인은 읽고 쓸 수 있지만, 나머지 사람들은 오직 ‘읽기’만 가능한 일반적인 텍스트나 소스코드 데이터 파일에 적용합니다.
# 사용 예시
$ sudo chmod 755 launcher.sh
👤 3. 파일의 주인과 그룹 바꾸기: chown, chgrp
권한(rwx)을 아무리 잘 설정해도 파일의 진짜 ‘주인’이 누구냐에 따라 접근 여부가 갈립니다. 이때 소유권 자체를 넘겨버리는 명령어가 있습니다.
소유자 변경하기 (chown)
CHange OWNer의 약자로, 파일의 소유자를 바꿉니다.
$ sudo chown root myfile.txt
- 결과: 일반 사용자 계정(예:
pi)에서 만든 파일의 주인을root(절대신)로 넘겨버립니다. 이렇게 하면 내가 만든 파일임에도 불구하고 주인이 바뀌었기 때문에 더 이상 내용을 수정(쓰기)할 수 없게 됩니다.
그룹 변경하기 (chgrp)
CHange GRouP의 약자로, 파일이 속한 사용자 그룹을 바꿉니다.
$ sudo chgrp root myfile.txt
🎯 요약 및 한 줄 정리
chmod a+x는 모든 사용자에게 실행 권한을 추가한다는 뜻이다.chmod 755에서 7은 rwx(4+2+1), 5는 rx(4+1)를 뜻하는 8진수 표기법이다.- 파일의 주인을 바꿀 때는
chown, 그룹을 바꿀 때는chgrp명령어를 사용한다.
리눅스 시스템 보안의 핵심인 권한 제어는 서버 관리자와 개발자에게 필수 무기입니다. 오늘 배운 숫자의 비밀을 직접 터미널에 대입해 보며 나만의 보안 설정을 연습해 보세요.
공부하느라 머리가 지치셨다면, 지난 시간에 설치한 bsdgames 패키지의 고전 텍스트 RPG 게임인 hack을 실행해서 잠시 머리를 식혀보시는 것도 추천합니다! 😉 궁금한 점은 댓글로 남겨주세요!
댓글 남기기