
ssh2_sftp_chmod 함수는 SSH2 연결을 통해 원격 서버의 파일 권한을 변경하는 함수입니다.
ssh2_sftp_chmod 함수의 인자는 다음과 같습니다.
- $sftp: SSH2 연결을 통해 원격 서버에 접속한 후 생성된 SFTP 객체입니다.
- $remote_file: 원격 서버의 파일 경로입니다.
- $mode: 파일 권한을 변경할 모드입니다. 일반적으로 4자리 이진수 형태로 입력합니다.
예를 들어, 0644 모드는 다음과 같이 계산됩니다.
- 0: 읽기, 쓰기, 실행 권한이 없을 때
- 6: 읽기, 쓰기 권한이 있을 때
- 4: 실행 권한이 있을 때
따라서 0644 모드는 읽기, 쓰기 권한이 있고, 실행 권한이 없다는 의미입니다.
위 코드에서 문제는 $remote_file 변수에 \'/remote/path/to/file.txt\'가 아닌 \'/remote/path/to/\file.txt\'로 입력된 것 같습니다. 경로에 \file.txt\'이 아니라 \file.txt\를 사용해야 합니다.
또한, ssh2_sftp_chmod 함수는 원격 서버의 파일 권한을 변경할 때, 해당 파일이 존재하지 않으면 에러를 발생시킵니다. 따라서, 해당 파일이 존재하는지 확인하는 코드를 추가하는 것이 좋습니다.
예를 들어, 다음과 같이 코드를 수정할 수 있습니다.
#hostingforum.kr
php
$ssh = ssh2_connect('example.com', 22);
ssh2_auth_password($ssh, 'username', 'password');
$sftp = ssh2_sftp($ssh);
$remote_file = '/remote/path/to/file.txt';
if (file_exists($remote_file)) {
ssh2_sftp_chmod($sftp, $remote_file, 0644);
} else {
echo "파일이 존재하지 않습니다.";
}
위 코드는 원격 서버의 파일 권한을 변경하는 코드입니다. 해당 파일이 존재하는지 확인하고, 존재하면 권한을 변경합니다. 없으면 에러 메시지를 출력합니다.
2025-08-08 11:21