目次
1. 소개
Linux에서 “접근 권한”이란?
Linux 및 Unix 계열 시스템에서는 파일 및 디렉터리의 “접근 권한(퍼미션)”을 적절히 관리하는 것이 매우 중요합니다. 이는 보안 관점에서도, 시스템의 안정적인 운영 측면에서도 빼놓을 수 없는 요소입니다. 많은 사람들이 터미널에서 파일 목록을 표시했code>-rw-r–r–와 같은 익숙하지 않은 기호를 보고 “이것은 무엇을 의미할까?”라고 궁금해한 경험이 있지 않을까요.chmod와 -rw-r–r–의 관계
이러한 기호는 파일의 접근 권한을 나타내는 표기입니다. 그리고 그 접근 권한을 설정·변경하기 위해 사용되는 것이chmod
명령입니다. 즉 chmod
를 사용해 파일에 특정 접근 권한을 부여한 결과로 -rw-r--r--
와 같은 기호가 표시되는 것입니다.본 기사(글)의 목적과 독자층
이 글에서는 이-rw-r--r--
가 구체적으로 어떤 의미를 갖는지, 어떻게 chmod
를 사용해 설정·변경하는지를 초보자도 이해하기 쉽게 설명합니다. 또한 보안상의 주의점과 실제 사용 예시 등 실용적인 내용도 다룹니다. Linux를 처음 사용하는 사람부터 어느 정도 터미널 작업에 익숙해진 중급자까지를 대상으로, 실무에 활용할 수 있는 지식을 확실히 습득하도록 하는 것을 목표로 합니다.2. chmod이란?【기본 이해】
chmod 명령의 역할
chmod
(chmod는 ‘체모드’ 또는 ‘체인지·모드’라고 읽으며)는 「change mode」의 약자로, Linux와 Unix 계열 OS에서 파일 및 디렉터리의 접근 권한(퍼미션)을 변경하기 위한 명령입니다。
이 명령을 사용하면, “누가 어떤 작업을 할 수 있는지(읽기·쓰기·실행)”를 유연하게 제어할 수 있습니다。 파일 및 디렉터리의 적절한 퍼미션 설정은 보안 확보뿐만 아니라 파일 공유 및 실행 문제 방지에도 직결되므로 매우 중요합니다。chmod의 기본 구문
chmod [옵션] [권한지정] 파일명
예를 들어, 다음과 같이 사용합니다:chmod 644 sample.txt
이 명령을 사용하면, sample.txt
의 퍼미션이 아래와 같이 변경됩니다:-rw-r--r-- 1 user group 1234 Apr 13 20:00 sample.txt
- 소유자(user):읽기·쓰기 가능(rw-)
- 그룹(group):읽기만(r–)
- 기타(others):읽기만(r–)
숫자 지정과 기호 지정의 2가지
chmod
에서는 접근 권한을 지정하는 방법으로 다음 두 가지가 있습니다。- 숫자 지정(숫자 모드)
- 예:
chmod 755 script.sh
- 각 사용자 종류에 대해 숫자로 권한을 지정하는 방법입니다。
- 기호 지정(심볼릭 모드)
- 예:
chmod u=rw,g=r,o=r file.txt
- u(user)、g(group)、o(others)에 대해 r(읽기)、w(쓰기)、x(실행)를 기호로 지정합니다。
chmod와 chown의 차이에 주의
자주 혼동되는 것이chown
명령입니다。chmod
:접근 권한(퍼미션)을 변경한다chown
:파일 및 디렉터리의 “소유자(오너)”와 “그룹”을 변경한다
3. -rw-r–r– 의 의미를 분해하여 이해하기
권한 기호의 구조
Linux에서ls -l
명령을 실행하면, 아래와 같은 형식으로 파일 정보가 표시됩니다:-rw-r--r-- 1 user group 1234 Apr 13 2025 sample.txt
이 중, 왼쪽 끝에 있는 -rw-r--r--
가 파일의권한(접근 권한)을 나타냅니다. 이를 이해함으로써, 누가 어떤 작업을 할 수 있는지 정확히 파악할 수 있습니다.각 부분의 의미를 자세히 설명
① 첫 번째 문자: 파일 종류기호 | 의미 |
---|---|
- | 일반 파일 |
d | 디렉터리 |
l | 심볼릭 링크 |
b | 블록 디바이스 |
c | 캐릭터 디바이스 |
-rw-r--r--
의 경우, 첫 번째 -
는 ‘일반 파일’임을 의미합니다. ② 2번째 문자~10번째 문자: 접근 권한(3문자 × 3세트)- 소유자(user) →
rw-
→ 읽기(r)와 쓰기(w)가 허용되고, 실행(x)은 불가능합니다. - 그룹(group) →
r--
→ 읽기만 가능. 쓰기·실행은 불가능합니다. - 기타(others) →
r--
→ 읽기만 가능.
숫자 표기와의 대응: 644 의 의미
Linux에서는, 동일한 권한을숫자(8진수 표기) 로도 나타낼 수 있습니다.-rw-r--r--
에 해당하는 숫자 표기는 644 입니다.사용자 종류 | 기호 표기 | 숫자 | 의미 |
---|---|---|---|
소유자 | rw- | 6 | 읽기+쓰기 |
그룹 | r-- | 4 | 읽기만 |
기타 | r-- | 4 | 읽기만 |
- 읽기(r) = 4
- 쓰기(w) = 2
- 실행(x) = 1
rw-
= 4 + 2 = 6、r--
= 4、r--
= 4 → 합계가 644 가 됩니다.왜 이 권한이 사용되는가?
-rw-r--r--
(644)は, 공개 파일이나 웹 서버의 정적 파일(HTML, CSS 등)에 많이 사용되는 권한입니다。
이유는 다음과 같습니다:- 소유자만 편집 가능 → 의도치 않은 변경을 방지할 수 있음
- 다른 사용자에게도 읽기를 허용 → 파일의 공개·공유에 대응
4. chmod로 -rw-r–r– 를 설정하는 방법【실전편】
chmod 명령을 사용하여 권한을 변경하기
파일 및 디렉터리의 접근 권한은chmod
명령으로 자유롭게 변경할 수 있습니다. 예를 들어, -rw-r--r--
상태로 만들고 싶다면 “644” 권한을 설정하면 됩니다.숫자 지정으로 설정하는 방법
chmod 644 파일명
형태로 사용합니다.chmod 644 document.txt
이 명령으로 document.txt
의 권한이 아래와 같이 변경됩니다:-rw-r--r-- 1 user group 1234 Apr 13 20:00 document.txt
- 소유자(user):읽기·쓰기 가능(rw-)
- 그룹(group):읽기만 가능(r–)
- 기타(others):읽기만 가능(r–)
기호 지정(심볼릭 모드)으로 설정하는 방법
보다 유연하게 권한을 조작하고 싶다면, 기호 지정이 유효합니다.chmod u=rw,g=r,o=r document.txt
이 명령은 아래와 같이 의미가 부여됩니다.u=rw
→유자에 읽기·쓰기 권한을 설정g=r
→ 그룹에 읽기만 허용o=r
→ 기타 사용자에도 읽ul결과적으로 숫자 지정644
와 전혀 같은 상태가 됩니다.디렉터리에 적용할 경우 주의점
파일과 달리, 디렉터리에는 “실행 권한(x)”이 없으면 내부에 접근할 수 없는이라는 규격이 있습니다. 예를 들어, 아래와 같이 하면 접근이 제한될 가능성이 있습니다:
이 설정에서는 읽기만 허용되지만, 디렉터리의 내용을 “열기” 작업(실행 권한이 필요)이 불가능해집니다. 올바른 설정 예:chmod 644 my_folder
chmod 755 my_folder
- 소유자: 읽기·쓰기·실행
- 그룹·기타: 읽기·실행
재귀적으로 권한을 변경하기:
다수의 파일 및 서브디렉터리를 한 번에 변경하고 싶다면,-R
옵션-R
(recursive: 재귀적) 옵션을 사용합니다.
이 작업으로chmod -R 644 my_folder
my_folder
이하의 모든 파일에 644 권한이 적용됩니다. 다만, 이 방법에는주의점이 있습니다.5. ls -l 명령어를 사용한 권한 확인 방법
파일 권한을 확인하려면?
파일 및 디렉터리의 접근 권한(퍼미션)을 확인하려면, Linux의 대표 명령어인ls -l
을 사용합니다. 이는 “long listing format(긴 목록 형식)”을 의미하며, 퍼미션, 소유자, 크기, 최종 수정 날짜 등 상세 정보를 표시합니다.기본 사용법
이 명령을 실행하면, 아래와 같은 출력이 표시됩니다:ls -l
각 항목은 다음과 같은 의미를 가집니다:-rw-r--r-- 1 naoya devs 2048 Apr 13 20:00 index.html
항목 의미 -rw-r--r--
퍼미션(접근 권한) 1
하드링크 수(보통 1) naoya
소유자(user) devs
그룹(group) 2048
파일 크기(바이트) Apr 13 20:00
최종 수정 일시 index.html
파일명 퍼미션 열 읽는 방법
이 장의 주인공인-rw-r--r--
부분에 주목합시다. 이는 다음과 같이 분해할 수 있습니다:- 첫 번째 문자: 파일 종류
-
:일반 파일d
:디렉터리l
:심볼릭 링크- 나머지 9 문자: 접근 권한(3 문자 × 3 세트)
- 소유자(user):
rw-
→ 읽기+쓰기 - 그룹(group):
r--
→ 읽기만 - 기타(others):
r--
→ 읽기만
특정 파일만 확인하기
특정 파일의 퍼미션만 확인하고 싶을 때는 파일명을 지정합니다.
이와 같이 하면, 대상 파일에만 국한하여 확인할 수 있습니다. 파일이 많이 존재하는 디렉터리에서 확인 작업에 유용합니다.ls -l index.html
디렉터리 확인도 동일하게 가능
디렉터리도ls -l
로 확인할 수 있습니다. 다만, 디렉터리 내부를 목록으로 표시하고 싶을 때는-d
옵션을 함께 사용합니다.
이렇게 하면,ls -ld my_folder
my_folder
자체의 퍼미션 정보만 표시됩니다(내부 파일 목록은 표시되지 않음).퍼미션을 확인하면서 안전하게 관리하기
chmod
로 퍼미션을 설정한 후에는 반드시ls -l
로 결과를 확인하는 것이 권장됩니다。 잘못된 설정이 그대로 운영되면, 보안 사고나 예상치 못한 동작의 원인이 됩니다. 또한, 여러 파일을 한 번에 확인하고 싶을 때는 다음과 같이 파이프와 결합하는 것도 가능합니다:
이는ls -l | grep '.sh'
.sh
(쉘 스크립트) 파일만을 필터링하여 표시합니다.6. GUI 도로 권한을 확인·변경하는 방법(초보자용)
명령어가 서툰 사람을 위한 선택지
Linux 작업은 터미널을 사용한 명령줄 작업이 중심이지만, “텍스트만 있는 화면은 어렵다”“실수할까 두렵다”라고 느끼는 초보자도 많습니다。 그러한 분들을 위해, GUI(그래픽 사용자 인터페이스)를 이용한 방법으로도 파일의 권한을 확인·변경할 수 있습니다。 의 작업(Nautilus) Ubuntu와 같은 Linux 배포판에는 “Nautilus”라는 파일 관리자가 기본 탑재되어 있습니다. Windows에서 말하는 “Explorer”에 해당하는 도구입니다。 확인 방법:- 대상 파일 또는 디렉터리를 오른쪽 클릭
- “프로퍼티(Properties)”를 선택
- “접근 권한” 탭을 열기(버전에 따라 “Permissions”라고 표시될 수도 있음)
- 소유자·그룹 확인 및 변경(관리자 권한 필요)
- 읽기·쓰기·실행 권한 전환
- 접근 권한 변경 내용이 즉시 반영됨
rw-
,r--
와 같은 기호가 아니라 “읽기 전용”“읽기·쓰기” 등과 같은 알기 쉬운 표현으로 표시되기 때문에 초보자도 안심하고 조작할 수 있습니다。WinSCP(Windows 사용자용 SFTP 클라이언트)
Windows에서 원격 Linux 서버에 접속할 경우, WinSCP라는 SFTP 클라이언트를 사용하면 GUI 상에서 권한 설정을 할 수 있습니다。 작업 순서:- WinSCP에서 서버에 로그인
- 원하는 파일을 오른쪽 클릭 → “프로퍼티”
- “접근 권한(Permissions)”의 숫자(예:644)와 체크박스를 변경
- “OK”를 클릭하면 반영됨
- 숫자와 기호 모두로 확인 가능
- 재귀적인 권한 변경도 GUI에서 가능(디렉터리 대상)
- root 권한이 필요한 파일은 sudo 권한이 없으면 변경할 수 없는 경우가 있습니다
WinSCP - Free SFTP and FTP clientWinSCP is a popular free file manager for Windows supporting…
FileZilla(크로스 플랫폼 SFTP 클라이언트)
Mac 및 Linux에서도 사용할 수 있는 SFTP 클라이언트 “FileZ”에서도 동일하게 권한 변경이 가능합니다。 절차:- 서버에 연결 후 해당 파일을 오른쪽 클릭
- “파일 권한(File Permissions)”을 선택
- 체크박스와 숫자로 설정하고 “OK”를 눌러 반영
GUI 조작의 장점과 주의점
장점:- 초보자도 실수를 하기 어렵다
- 변경 내용이 즉시 시각적으로 확인 가능
- 명령어에 익숙하지 않은 사람도 사용하기 쉽다
- 서버 설정이나 환경에 따라 GUI 도구로 변경할 수 없는 경우가 있다
- 표시와 실제 반영 상황이 다를 수 있으,
ls -l
등으로 확인하는 것을 병행 권장
FileZilla - The free FTP solution for both client and server…
7. chmod 설정의 주의점과 트러블슈팅
올바르게 설정했는데도 동작하지 않을 때, 그 원인은?
chmod
명령으로 접근 권한을 변경한 후, 생각대로 동작하지 않을 때가 있습니다. 이는권한 설정 실수나 권한에 대한 오해가 원인인 경우가 대부분입니다。 여기에서는실무에서 흔히 발생하는 트러블 사례와 그 대처 방법을 소개합니다。Permission denied 오류의 원인과 대처법
증상:
원인:bash: ./script.sh: Permission denied
- 실행하려는 파일에 “실행 권한(x)”이 부여되어 있지 않다
또는, 숫자 지정이라면:chmod +x script.sh
이처럼, “읽기와 쓰기는 가능하지만 실행은 할 수 없다”는 점에 주의가 필요합니다。chmod 755 script.sh
디렉터리에 실행 권한이 없으면 접근할 수 없습니다
디렉터리에chmod 644
를 설정하면, 내용물을 읽을 수 없게 되는 경우가 있습니다。 이유:- 디렉터리에서 “실행 권한(x)”은 “들어가다”와 “내용을 보다”를 가능하게 하는 데 필수적입니다。
→ 위와 같은 경우, 내용물을 표시할 수 없어 오류가 발생할 수 있습니다。 해결책:chmod 644 my_folder ls my_folder
chmod 755 my_folder
재귀적 변경(-R)에서의 함정
chmod -R
은 편리하지만, 파일과 디렉터리를 모두 동일한 권한으로 설정해버리기 때문에 예상치 못한 트러블로 이어질 수 있습니다。 자주 발생하는 실수 예:
→ 디렉터리의 실행 권한이 없어져, 내부에 접근할 수 없게 된다 올바른 사용법:chmod -R 644 /var/www/html
# 디렉터리는 실행 권한 포함 find /var/www/html -type d -exec chmod 755 {} ; # 파일은 644에 find /var/www/html -type f -exec chmod 644 {} ;
소유자·그룹과의 조합 실수
chmod
뿐만 아니라, 파일의 “소유자(user)”와 “그룹(group)”에도 주의가 필요합니다。 예를 들어,apache
사용자가 파일을 읽어야 하는데, 소유자가 일반 사용자이고, 다른 사용자에게 읽기 권한이 없으면 웹 표시가 실패합니다。 해결책:- 소유자를 변경:
sudo chown www-data:www-data index.html
- 그룹 권한을 부여:
chmod 640 index.html
(그룹이 적절한 경우)
777은 위험! 권한을 과도하게 개방하는 위험
문제 발생 시 “우선 777로 하면 동작한다”고 생각하는 사람도 있지만, 그것은매우 위험한 행위입니다。 이유:- 누구나 읽기·쓰기·실행이 가능한 상태가 된다
- 제3자에 의한 변조, 스크립트 악용 등의 위험이 높아진다
- 파일은 644 또는 600
- 디렉터리는 755 또는 700
- 스크립트 및 바이너리는 755(필요에 따라)
8. 사용 예·자주 발생하는 시나리오
chmod에 의한 권한 설정은 현장에서 어떻게 사용되고 있나요?
지금까지 소개한chmod
명령과-rw-r--r--
라는 접근 권한은, 실제 서버 운영 및 개발 현장에서 자주 사용됩니다. 여기서는 대표적인 3가지 시나리오를 통해 권한 설정이 어떻게 활용되는지 살펴보겠습니다.1. 웹 서버에서의 HTML 파일 관리
시나리오: Apache나 Nginx와 같은 웹 서버에서 HTML 파일을 공개하는 경우, 해당 파일에 설정되는 권한은 일반적으로-rw-r--r--
(644)입니다.
왜 644인가?chmod 644 index.html
- 소유자(웹 관리자)는 수정이 필요 → 쓰기 권한(w)
- 웹 서버(www-data 등)는 읽기만 필요 → 읽기 권한(r)
- 다른 사용자에게 쓰기를 허용할 필요가 없음
2. 스크립트 파일에 실행 권한 부여
시나리오: 자신이 만든 셸 스크립트backup.sh
를 만들었지만 실행하려고 하면 “Permission denied”가 발생한다.
이 설정의 의미:chmod 755 backup.sh
- 소유자는 읽기·쓰기·실행이 가능(rwx)
- 그룹·기타는 읽기·실행이 가능(rx)
3. 기밀 파일의 읽기 제한
시나리오: API 키나 비밀번호 등을 기록한secrets.txt
를 관리하고 있다. 자신 외에는 보이고 싶지 않다.
이 설정의 의미:chmod 600 secrets.txt
- 소유자만 읽기·쓰기 가능(rw-)
- 그룹·기타는 접근 불가(—)
600
또는400
(읽기 전용)으로 관리하는 것이 베스트 프랙티스이다.4. 디렉터리를 안전하게 공유하기
시나리오: 여러 개발자가 접근하는 공유 디렉터리shared_folder
를 생성한다.
이 설정의 의미:chmod 770 shared_folder
- 소유자·그룹: 모든 권한(rwx)
- 기타: 접근 불가(—)
chgrp
명령으로 그룹을 변경하면 대상 사용자를 유연하게 제어할 수 있다.5. 잘못된 설정으로 인한 문제와 회피 예시
시나리오: 실수로chmod -R 777 .
를 실행해 모든 파일이 쓰기 가능해졌다. 권장되는 회피책:- 항상
find
로 파일 종류를 지정해 권한을 변경 - 변경 전
ls -l
로 권한을 확인해 둔다 test
용 가상 환경에서 먼저 시도한다
9. 자주 묻는 질문(FAQ)
Q1.
A. 표기 방법만 다를 뿐, 의미는 전혀 동일합니다.chmod 644
와-rw-r--r--
는 어떻게 다른가요?chmod 644
:숫자를 이용한 권한 설정 명령-rw-r--r--
:설정 후ls -l
로 확인할 수 있는 기호 표기
Q2. 파일에 실행 권한이 없으면 어떻게 되나요?
A. 스크립트나 바이너리를 직접 실행하려고 하면 오류가 발생합니다. 예를 들어.sh
나.py
파일 등을 실행하려면 실행 권한(x)이 필요합니다. 권한이 없으면 다음과 같은 오류가 발생합니다.
해결 방법:bash: ./script.sh: Permission denied
chmod +x script.sh
Q3. 디렉터리에
A. 일반적으로 적절하지 않습니다. 디렉터리에는‘실행 권한(x)’이 필요합니다. 실행 권한이 없으면 내부 파일에 접근할 수 없습니다. 올바른 설정:644
를 설정해도 괜찮나요?chmod 755 디렉터리명
Q4.
A. 파일과 디렉터리에 동일한 권한이 적용되어 버리므로 주의가 필요합니다. 예:chmod -R
은 편리하지만, 사용할 때 주의할 점이 있나요?
→ 디렉터리에서 실행 권한이 없어져, 내부에 접근할 수 없게 된다 추천하는 안전한 방법:chmod -R 644 my_project/
find my_project/ -type d -exec chmod 755 {} ; find my_project/ -type f -exec chmod 644 {} ;
Q5. “Permission denied”의 원인을 모르겠습니다.
A. 다음 중 하나를 확인해 주세요:- 실행 파일인데 실행 권한이 없음
- 소유자가 아닌데 쓰기를 시도하고 있음
- 디렉터리에 실행 권한이 없음
- 실행 중인 사용자에게 sudo 권한이 없음
ls -l
이나whoami
로 현재 사용자와 권한을 확인해 봅시다.Q6. 누군가와 파일을 공유하고 싶지만, 쓰기 권한을 주고 싶지 않습니다. 어떻게 해야 할까요?
A. 소유자만 쓰기 가능한 “644” 또는 “444”로 설정합시다.chmod 644 share.txt
- 644:다른 사용자는 읽기만 가능
- 444:모든 사용자가 읽기 전용
Q7. 퍼미션을 잘못 설정했습니다. 원래대로 되돌리려면 어떻게 해야 할까요?
A. 사전에 메모를 하지 않은 경우, 다른 정상 파일과 비교하여 되돌리는 것이 확실합니다.
그 출력에 맞춰ls -l /path/to/올바른파일
chmod
을 다시 설정합시다. 프로젝트나 시스템에 따라, 초기 상태를 문서화해 두는 것이 이상적입니다.10. 요약
chmod와 퍼미션 기본을 이해하는 것의 중요성
이 기사에서는 Linux 및 Unix 계열 OS에서 널리 사용되는chmod
명령과 기호 표기-rw-r--r--
의 의미에 대해 자세히 설명했습니다。 이것들은 단순한 기술적 지식에 그치지 않고, 시스템의 안전성·운용 효율·파일 공유의 정확성을 지원하는 중요한 요소입니다。본 기사에서 배운 내용 되돌아보기
chmod
는 파일이나 디렉터리의 접근 권한(퍼미션)을 변경하기 위한 명령이다-rw-r--r--
는 “소유자는 읽기·쓰기 가능, 다른 사람은 읽기만 가능”이라는 접근 권한을 나타낸다- 숫자 표기
644
와 기호 표기-rw-r--r--
는 같은 의미를 가진다 - 퍼미션 설정 방법에는 “숫자 지정”과 “기호 지정” 두 가지가 있다
ls -l
명령으로 현재 권한을 확인할 수 있다- GUI 도구(Nautilus, WinSCP, FileZilla)에서도 설정·확인 가능
- chmod 설정 실수로 인한 “Permission denied” 등의 오류에 주의가 필요
- 자주 사용되는 권한 설정에는 안전성과 목적에 따른 명확한 이유가 있다
퍼미션 설정의 “최적 해”는 상황에 따라 다르다
가장 중요한 것은 모든 파일과 디렉터리에 만능 설정은 존재하지 않는다는 점이다。 실행 목적이나 공유 대상, 필요한 보안 수준에 따라 최소한이면서 적절한 권한을 선택하는 것이 요구된다。앞으로 퍼미션을 다룰 분들에게
처음에는 어려워 보일 수도 있지만,chmod
와 퍼미션에 대한 사고방식에 익숙해지면、 문제를 사전에 방지하고 보안을 의식한 스마트한 운영을 할 수 있게 됩니다。 “누가, 어떤 목적을 가지고, 어디까지 접근할 수 있어야 하는가?” — 이 관점을 항상 잊지 않고, 실천 속에서 스킬을 향상시켜 나갑시다.