ftp_chmod() 함수는 FTP를 통해 원격 서버에 있는 파일의 권한(permission)을 설정하는 데 사용됩니다. 이 함수를 활용하면 서버에 직접 접속하지 않고도 파일의 읽기·쓰기·실행 권한을 손쉽게 변경할 수 있습니다.
문법
ftp_chmod(con, mode, my_file);
매개변수
con − FTP 연결 리소스입니다.
mode − 새로 설정할 권한 값입니다.
권한은 네 자리 숫자로 구성되며 각 자릿수는 다음과 같은 의미를 가집니다.
첫 번째 숫자는 항상 0입니다.
두 번째 숫자는 소유자(OWNER)의 권한을 지정합니다.
세 번째 숫자는 소유자가 속한 그룹(USER GROUP)의 권한을 지정합니다.
네 번째 숫자는 그 외 모든 사용자(EVERYBODY ELSE)의 권한을 지정합니다.
각 자릿수에 들어갈 수 있는 값은 다음과 같습니다. 여러 권한을 동시에 부여하려면 해당 숫자들을 더해서 조합하면 됩니다.
1 = 실행(execute) 권한
2 = 쓰기(write) 권한
4 = 읽기(read) 권한
my_file − 권한을 변경할 대상 파일 이름입니다.
반환값
ftp_chmod() 함수는 성공 시 새로 설정된 파일 권한을 반환하고, 오류가 발생하면 FALSE를 반환합니다.
예제
다음은 mode 값을 변경하여 원격 파일의 권한을 설정하는 예제입니다.
<?php
$ftp_server="192.168.0.4";
$ftp_user="amit";
$ftp_pass="tywg61gh";
$myfile = "E:/new/demo.txt";
$con = ftp_connect($ftp_server);
$res = ftp_login($con, $ftp_user, $ftp_pass);
if (ftp_chmod($con, 0755, $myfile) !== false) {
echo "Mode changed successfully! \n";
} else {
echo "Mode cannot be changed! \n";
}
ftp_close($con);
?>
예제 해설
위 코드에서는 먼저 ftp_connect()와 ftp_login()으로 FTP 서버에 연결하고 로그인한 뒤, ftp_chmod($con, 0755, $myfile)를 호출해 파일 권한을 0755로 변경합니다. 여기서 0755는 소유자에게 읽기·쓰기·실행 권한을, 그룹과 기타 사용자에게는 읽기·실행 권한만 부여하는 일반적인 설정값입니다. 작업이 끝나면 ftp_close()로 FTP 연결을 반드시 종료해야 합니다.