chmod
명령어는 파일이나 디렉토리의 권한을 변경할 때 사용된다. UNIX 및 Linux 시스템에서 파일의 읽기, 쓰기, 실행 권한을 관리하는 중요한 도구다.
1. 기본 개념
파일이나 디렉토리의 권한은 세 가지 범주로 나뉜다:
- 소유자(owner): 파일을 소유한 사용자
- 그룹(group): 파일을 소유한 사용자가 속한 그룹
- 기타(others): 위 두 범주에 속하지 않는 모든 사용자
각 범주에 대해 세 가지 권한을 설정할 수 있다:
- 읽기(read, r): 파일을 읽을 수 있는 권한 (디렉토리인 경우 목록 확인 가능)
- 쓰기(write, w): 파일을 수정할 수 있는 권한 (디렉토리인 경우 파일 추가/삭제 가능)
- 실행(execute, x): 파일을 실행할 수 있는 권한 (디렉토리인 경우 접근 가능)
2. 숫자 형식
권한은 8진수로 나타내며, 각 권한은 특정 숫자로 매핑된다:
- 읽기(
r
) = 4 - 쓰기(
w
) = 2 - 실행(
x
) = 1
세 개의 권한을 조합하여 숫자로 표현한다. 예를 들어:
- 읽기 + 쓰기 + 실행:
7
(4 + 2 + 1) - 읽기 + 쓰기:
6
(4 + 2) - 읽기 + 실행:
5
(4 + 1) - 읽기만:
4
- 실행만:
1
- 권한 없음:
0
숫자 조합 예시:
chmod 755 file.txt
- 소유자: 읽기, 쓰기, 실행 (7)
- 그룹: 읽기, 실행 (5)
- 기타: 읽기, 실행 (5)
3. 문자 형식
숫자 대신 문자로도 권한을 설정할 수 있다. 이때 u
(소유자), g
(그룹), o
(기타), a
(전체)를 사용한다.
+
: 권한을 추가- ``: 권한을 제거
=
: 특정 권한만 설정
문자 형식 예시:
chmod u+x file.txt
: 소유자에게 실행 권한을 추가chmod g-w file.txt
: 그룹의 쓰기 권한을 제거chmod o=r file.txt
: 기타 사용자에게 읽기 권한만 부여
4. 디렉토리 권한
디렉토리에 권한을 설정할 때는 파일과 동일한 방법으로 설정되지만, 의미는 조금 다르다.
- 읽기 권한(
r
): 디렉토리의 파일 목록을 볼 수 있음. - 쓰기 권한(
w
): 디렉토리 내에서 파일을 추가하거나 삭제할 수 있음. - 실행 권한(
x
): 디렉토리 내에서 파일에 접근 가능.
하위 디렉토리 및 파일에 권한 적용
chmod -R 755 directory/
:directory/
와 그 하위 파일 및 디렉토리 모두에 재귀적으로 755 권한을 적용.
5. 실습 예시
예시 1: 파일에 권한 추가
chmod 644 example.txt
- 소유자는 읽기/쓰기 권한 (
6
) - 그룹과 기타는 읽기만 가능 (
4
)
예시 2: 실행 권한 추가
chmod +x script.sh
- 모든 사용자에게 실행 권한을 추가
예시 3: 디렉토리에 재귀적으로 권한 변경
chmod -R 755 /var/www/html
/var/www/html
디렉토리와 그 하위 모든 파일 및 디렉토리에 755 권한 적용
6. 기타 옵션
-
R
: 재귀적으로 하위 파일 및 디렉토리 모두에 권한을 적용. -
-reference
: 다른 파일의 권한을 기준으로 설정.chmod --reference=otherfile.txt myfile.txt
요약
chmod
는 파일과 디렉토리의 권한을 설정하는 명령어로, 8진수(숫자)와 문자 형식으로 설정할 수 있다.- 권한은 소유자, 그룹, 기타 사용자로 나누어 설정되며, 읽기, 쓰기, 실행 권한을 조합해 적용한다.