SFTP를 통해 파일을 업로드할 때 umask가 무시되는 이유는 무엇입니까?

SFTP를 통해 파일을 업로드할 때 umask가 무시되는 이유는 무엇입니까?

원격 시스템에 업로드된 파일에 대한 권한에 이상한 문제가 있습니다.

로컬에서 index2.html 파일은 chmod 664입니다.

acoder@acoder-local ~ $ ll index2.html
-rw-rw-r-- 1 acoder acoder    29 May 17 14:46 index2.html

동일한 파일을 원격 시스템에 업로드하면 원격 디렉터리의 권한이 다음과 같이 표시됩니다.

-rw-r--r--. 1 acoder acoder 3657 May 17 14:43 index2.html

처음에는 원격 시스템에 umask가 제대로 설정되지 않은 줄 알았으나...

[acoder@remote public_html]$ umask
0002

비교를 위해 원격 시스템의 파일을 터치하면 지정된 umask에 대한 올바른 권한이 표시됩니다.

-rw-rw-r--. 1 acoder acoder    0 May 17 14:44 index3.html

그렇다면 SFTP를 통해 업로드된 파일의 권한은 어떻게 설정되나요? SFTP를 통해 파일을 배치할 때 umask가 무시되는 이유는 무엇입니까?

답변1

SFTP는 로그인 셸을 전혀 거치지 않습니다. SSH 서버에서 직접 관리됩니다. 예상하는 umask가 /etc/profile이나 다른 셸 초기화 파일에 의해 설정된 경우 ~/.profileSFTP ~/.bashrc에서 작동하지 않습니다.

다음을 통해 umask를 설정할 수 있습니다.폴리아크릴아미드기준 치수pam_umask. SSH 서버의 설정은 SSH 셸 세션(셸 초기화 파일로 재정의되지 않는 한) 및 SFTP 세션에 적용됩니다.

Subsystem sftp/etc/sshd_config또한 다음 -u줄을 편집하여 SSH용으로 특별히 설정된 umask에 옵션을 전달할 수도 있습니다.sftp-server.

답변2

Gilles가 제안한 것처럼 PAM을 통해 이 작업을 수행하려면 다음과 같이 사용자 항목에 필수 umask를 추가하기만 하면 됩니다 /etc/passwd.

usermod -c ,,,,umask=002 acoder

이 방법은 전체 GECOS 필드를 대체했지만. 따라서 잠재적인 기존 정보도 위 순서에 포함되어야 합니다.

pam_umask모듈을 사용하면 이것이 작동합니다. 이는 Fedora 및 CentOS Stream 9( )의 기본값인 것 같습니다 /etc/pam.d/postlogin.

관련 정보