Hello 👋

🧑🏻‍💻 A Developers who create code that changes the world

Infrastructure/Linux

[Linux] Filezilla로 파일 복사 시 x권한(실행 비트)가 사라지는 이유

Potato_H 2024. 9. 4. 17:56

로컬에서 실행 권한(chmod +x)을 부여한 스크립트나 바이너리를 FileZilla로 서버에 전송하면, 업로드된 파일의 실행 비트가 빠져 -rw-r--r-- 형태로만 올라감

 

복사 과정에서 새로 파일을 “만들기” 때문에 umask 설정에 따라 실행 비트가 제거되는 것이 문제의 원인

 

 

SFTP/FTP 프로토콜 동작

  • FileZilla가 사용하는 SFTP(or FTP) 전송은 새 파일 생성(create) 동작임
  • 서버 입장에서는 “새로 만든 파일”로 인식되므로, OS의 기본 umask가 적용되어 실행 비트가 제거됨

서버 측 umask 설정

  • 실행 권한(x)은 원래부터 기본 생성 권한(666)에 포함되지 않으므로, 항상 빠지게 됨
  • ex --> umask 022라면 새 파일 권한은 666-022=644 -> rw-r--r--.

FileZilla는 FTP(S) 구현체로서 파일 내용, 타임스탬프 보존 옵션은 제공하지만, 퍼미션 보존 기능은 지원하지 않음

 

 

해결 방법 1

파일질라로 업로드 후 chmod 명령어를 통해 수동으로 수정

해결 방법 2

tar.gz 파일로 압축하여 전송 후 압축 해제

해결 방법 3

umask 값 수정 - 이 방법은 x권한(실행비트)는 붙지 않음 (유닉스 계열에서는 새 파일의 최대 허용 권한이 666임)