我有一个SFTP服务器(openssh / sftp服务器),我想为使用此服务的用户设置umask 002。 我试着为每个用户设置PAM(pam.d / common-session)和.profile,但没有运气。
用SSHlogin一切都很好,但是当我尝试使用SFTP(与gFTP)我有022 umask集。
我已经尝试使用sftp-server的包装器,在调用sftp-server之前更改umask,没有运气。
任何帮助? 非常感谢!
自从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应用程序,请检查其设置上载权限的首选项。
我已经尝试了上面的所有解决scheme,结果certificate应用程序正在压倒他们。
经过几个小时试图应用各种黑客和修复我find了一个适当的解决scheme!
有一个SSH补丁,允许你select你想要的SFTP的umask。 你可以在这里下载: http : //sftpfilecontrol.sourceforge.net/
对我来说(OpenSSH_5.2p1 + sftpfilecontrol-v1.3,OpenSSL 0.9.8g 2007年10月19日),它的工作完美!
引用这个消息 :
通过在/etc/init.d/ssh中添加一个“umask 007”行,我得到了这个工作的好处。
Bash使用.profile
进行交互式loginshell。 我不认为sftp
作为一个。 如果上面的提示不起作用,或者您想要更细致的控制,您可以在/etc/bash.bashrc
或~/.bashrc
设置umask。
参考这个问题find一个简单的解决scheme,不需要特定的openssh版本和自定义的补丁。
在sshconfiguration文件中,你也可以使用它来专门设置文件的模式(覆盖客户端可能要设置的任何chmod)。 这里我使用的是internal-sftp,但是我想这对sftp-server是一样的:
ForceCommand internal-sftp -u 0022