나는이 질문이 이미 논의되었다는 것을 알고 있지만, 게시물을 읽음으로써 일부 답변은 "예 umask는 작동 할 수있다"고 말하고 다른 사람들은 "OpenSSH put 명령은 항상 권한을 유지한다"고 대답합니다.
무엇보다도 정확하게 :
- RHEL 6.2에서 OpenSSH 5.9를 사용합니다.
- umask
internal-sftp
와 함께 서브 시스템을 사용하여 chroot 된 SFTP 서버를 구성했습니다.-u 0002
- 나는
-p
또는-P
옵션을 사용하지 않는 것이 정확합니다.
한 손으로 읽은 내용에서 SFTP 전송을 위해 umask를 정의하는 방법에는 여러 가지가 있습니다.
- 옵션
-u
의internal-sftp
(또는sftp-server
OpenSSH를 5.4 이후) - 래퍼를 만듭니다
sftp-server
(명시 적으로 umask를 설정합니다-이것은 chroot 환경에 적합하지 않습니다). pam.d/sshd
파일에 특정 구성을 추가
반면에 나는 읽었습니다.
OpenSSH SFTP 클라이언트 및 서버는 권한을 확장명으로 전송하고 로컬 측의 권한으로 원격 파일을 작성합니다. AFAICT에서는이 동작을 비활성화 할 수 없습니다.
그래서 다음 테스트를 수행했습니다.
내 클라이언트 에서 권한 600 및 700으로 파일 MYFILE
과 디렉토리 MYDIR
를 만들었습니다 .
그런 다음 sftp
명령 을 사용하십시오.
mkdir => the new directory has permissions following the umask (OK)
put MYFILE => MYFILE has same permissions as on client (KO)
put -r MYDIR => MYDIR has same permissions as on client (KO)
클라이언트 측 MYFILE
과 MYDIR
클라이언트 측의 권한을 변경 하고 다시 업로드하면 서버 측에서 새로운 권한을 얻습니다.
나는 pam.d
해결책도 시도했지만 아무것도 바뀌지 않았다.
그래서 지금 혼란스러워합니다.
테스트 한 내용과 읽은 내용 중 일부에서 OpenSSH는 항상 권한을 유지한다고 말합니다. 그러나 umask가 정의 될 수 있다고 말하는 많은 게시물이 있으므로 테스트 구성에서 잘못된 일을한다고 상상할 수 있습니다.
경험이 풍부한 의견을 보내 주셔서 감사합니다.
감사합니다.