我有一个 SFTP 服务器(openssh/sftp-server),我想为使用此服务的用户设置 umask 002。我尝试为每个用户设置 PAM (pam.d/common-session) 和 .profile,但没有运气。
使用 SSH 登录一切正常,但是当我尝试使用 SFTP(使用 gFTP)时,我设置了 022 umask。
我已经尝试为 sftp-server 使用一个包装器,它在调用 sftp-server 之前更改了 umask,但不走运。
有什么帮助吗?非常感谢!
Web*_*ide 30
我认为从 OpenSSH 5.4p1 开始,您可以使用“-u”选项,例如:
Subsystem sftp /usr/lib/openssh/sftp-server -u 022
Run Code Online (Sandbox Code Playgroud)
从手册页:
-u umask
Sets an explicit umask(2) to be applied to newly-created files
and directories, instead of the user's default mask.
Run Code Online (Sandbox Code Playgroud)
小智 6
在 ssh 配置文件中,您还可以使用它来专门设置文件的模式(覆盖客户端可能尝试设置的任何 chmod)。这里我使用的是内部 sftp,但我想 sftp-server 也是一样的:
ForceCommand internal-sftp -u 0022
Run Code Online (Sandbox Code Playgroud)
经过几个小时尝试应用各种技巧和修复后,我找到了正确的解决方案!
有一个 SSH 补丁,允许您选择 SFTP 所需的 umask。您可以在这里下载: http: //sftpfilecontrol.sourceforge.net/
对我来说(OpenSSH_5.2p1+sftpfilecontrol-v1.3,OpenSSL 0.9.8g 2007 年 10 月 19 日)它工作得很好!