Adi*_*ban 7 ssh sftp file-permissions
我正在使用各种 SFTP 客户端将文件上传到 SFTP 服务器,但在放置文件时使用的默认权限有问题。
当请求放置文件时,SFTP 客户端(例如 WinSCP 或 Filezilla)将发送 SSH_OPEN 命令,而不请求任何显式文件权限。
另一方面,Linux(Red Hat 和 Ubuntu)上的 OpenSSH sftp 命令似乎正在等待 SSH_OPEN 命令以及“640”模式。
如何配置 OpenSSH 命令以不显式设置文件模式,或者如何将其配置为发送 640 以外的模式?
非常感谢!
更新:
我检查了 OpenSSH sftp 客户端源代码,看起来 OpenSSH sftp 将始终尝试保留文件模式,即使未设置 -P: http ://www.koders.com/c/fidD3B20680F615B33ACCB42398FAAFEE1C007DF942.aspx?s=rsa#L986
为了解决这个问题,我使用了 Putty SFTP 客户端。
如果SFTP客户端未指定上传文件的权限,OpenSSH SFTP服务器将为新创建的文件分配0664权限。这是默认的 umask 0002,您可以使用-u开关进行更改,如 @JimB 的答案所示。
如果 SFTP 客户端指定了权限,OpenSSH 服务器将使用指定的权限(umask 不适用)。
一些流行的 SFTP 客户端概述:
PSFTP:不允许您设置上传文件的权限。(但Unix版本保留源本地文件的文件)
OpenSSH sftp:不允许您设置上传文件的权限。保留源本地文件的文件。有关交换机的详细信息-P,请参阅OpenSSH SFTP 服务器在 put 命令后是否使用 umask 或保留客户端权限(chroot 环境)?
WinSCP:可以设置上传文件的权限
请参阅https://winscp.net/eng/docs/ui_transfer_custom

(我是WinSCP的作者)
FileZilla:不允许您设置上传文件的权限。应用服务器的默认值(umask)。