SFTP로 원하는 umask를 넣는 방법? 각 사용자에 대해

SFTP 서버 (openssh / sftp-server)가 있으며이 서비스를 사용하는 사용자를 위해 umask 002를 설정하고 싶습니다. 각 사용자에 대해 PAM (pam.d / common-session) 및 .profile 설정을 시도했지만 운이 없습니다.

SSH 로그인을 사용하면 모든 것이 정상이지만 SFTP (gFTP 포함)로 시도하면 022 umask가 설정됩니다.

나는 이미 sftp-server를 호출하기 전에 umask를 변경하는 sftp-server에 래퍼를 사용하려고했지만 운이 없습니다.

어떤 도움? 고마워요!



답변

OpenSSH 5.4p1부터 “-u”옵션을 사용할 수 있습니다.

Subsystem sftp /usr/lib/openssh/sftp-server -u 022

매뉴얼 페이지에서 :

 -u umask
         Sets an explicit umask(2) to be applied to newly-created files
         and directories, instead of the user's default mask.

답변

나는 이것이 다른 누군가를 좌절시킬 수 있기를 바랍니다 …

GUI SFTP 응용 프로그램을 사용하는 경우 업로드 권한 설정에 대한 기본 설정을 확인하십시오.

위의 모든 솔루션을 시도했지만 응용 프로그램이 방금 재정의 한 것으로 나타났습니다.


답변

여러 해킹 및 수정 사항을 적용하려고 여러 시간을 보낸 후 적절한 해결책을 찾았습니다!

SFTP에 원하는 umask를 선택할 수있는 SSH 패치가 있습니다. 여기에서 다운로드 할 수 있습니다 : http://sftpfilecontrol.sourceforge.net/

나를 위해 (OpenSSH_5.2p1 + sftpfilecontrol-v1.3, OpenSSL 0.9.8g 2007 년 10 월 19 일) 완벽하게 작동합니다!


답변

ssh 구성 파일에서이를 사용하여 파일 모드를 구체적으로 설정할 수도 있습니다 (클라이언트가 설정하려고 시도하는 chmod를 재정의 함). 여기에서 internal-sftp를 사용하고 있지만 sftp-server와 동일하다고 생각합니다.

ForceCommand internal-sftp -u 0022

답변

이 메시지 를 인용하려면 :

/etc/init.d/ssh에 “umask 007″라인을 추가하여이 작업을 정상적으로 수행 할 수 있습니다.

Bash는 .profile대화식 로그인 쉘을 위해 사용합니다 . 나는 sftp하나로 간주 되지 않습니다 . umask를 설정할 수 /etc/bash.bashrc있거나 ~/.bashrc위의 팁이 작동하지 않거나 더 세밀한 제어를 원할 수 있습니다.


답변

특정 openssh 버전이나 사용자 지정 패치가 필요없는 간단한 솔루션을 찾으 려면 이 질문 을 참조하십시오 .