PHP의 chmod() 함수는 파일이나 디렉터리의 모드(권한)를 변경하는 데 사용됩니다. 권한 변경에 성공하면 TRUE를, 실패하면 FALSE를 반환합니다.
문법(Syntax)
chmod($file_path, file_mode)
매개변수
file_path − 권한을 변경할 파일 또는 디렉터리의 경로를 지정합니다. (필수)
file_mode − 설정할 권한 모드를 나타내는 값을 지정합니다. 자세한 구성은 아래에서 설명합니다.
file_mode 매개변수의 구성
파일 모드는 다음 네 자리의 값으로 이루어집니다.
- 첫 번째 자리: 항상 0 (8진수 표기를 위한 접두사)
- 두 번째 자리: 소유자(owner)의 권한
- 세 번째 자리: 소유자가 속한 그룹(group)의 권한
- 네 번째 자리: 기타 사용자(others)의 권한
여러 권한을 동시에 설정하려면 아래 숫자들을 더해 조합하면 됩니다.
- 1 = 실행(execute) 권한
- 2 = 쓰기(write) 권한
- 4 = 읽기(read) 권한
예를 들어, 읽기와 쓰기 권한을 함께 부여하려면 2 + 4 = 6을, 읽기·쓰기·실행 모든 권한을 부여하려면 1 + 2 + 4 = 7을 사용합니다.
반환값
- 성공 시 TRUE 반환
- 실패 시 FALSE 반환
예제
예제 1: one.txt – 소유자에게만 읽기·쓰기 권한
"one.txt" 파일의 모드를 변경하는 예제입니다. 소유자에게는 읽기·쓰기 권한을 부여하고, 그 외 사용자에게는 어떠한 권한도 주지 않습니다.
<?php
// 파일 모드 설정
// 소유자에게 읽기·쓰기 권한, 그 외에는 권한 없음
chmod("one.txt", 0600);
?>
예제 2: two.txt – 소유자는 읽기·쓰기, 그 외에는 읽기만
"two.txt" 파일의 모드를 변경하는 예제입니다. 소유자에게는 읽기·쓰기 권한을, 그 외 사용자에게는 읽기 권한만 부여합니다.
<?php
// 파일 모드 설정
// 소유자에게 읽기·쓰기 권한, 그 외에는 읽기 권한만 부여
chmod("two.txt", 0644);
?>
예제 3: three.txt – 소유자는 전체 권한, 그 외에는 읽기·실행
"three.txt" 파일의 모드를 변경하는 예제입니다. 소유자에게는 모든 권한을, 그 외 사용자에게는 읽기·실행 권한을 부여합니다.
<?php
// 파일 모드 설정
// 소유자에게 모든 권한, 그 외에는 읽기·실행 권한 부여
chmod("three.txt", 0755);
?>
예제 4: four.txt – 소유자는 전체 권한, 그룹은 읽기만
"four.txt" 파일의 모드를 변경하는 예제입니다. 소유자에게는 모든 권한을, 소유자의 그룹에게는 읽기 권한만 부여합니다.
<?php
// 파일 모드 설정
// 소유자에게 모든 권한, 그룹에게 읽기 권한만 부여
chmod("four.txt", 0740);
?>
예제 5: five.txt – 소유자는 전체 권한, 그룹은 읽기·실행
"five.txt" 파일의 모드를 변경하는 예제입니다. 소유자에게는 모든 권한을, 소유자의 그룹에게는 읽기·실행 권한을 부여합니다.
<?php
// 파일 모드 설정
// 소유자에게 모든 권한, 그룹에게 읽기·실행 권한 부여
chmod("five.txt", 0750);
?>