使用 OpenSSH sftp 命令放置文件时如何指定文件权限

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 客户端。

Mar*_*ryl 6

如果SFTP客户端未指定上传文件的权限,OpenSSH SFTP服务器将为新创建的文件分配0664权限。这是默认的 umask 0002,您可以使用-u开关进行更改,如 @JimB 的答案所示。


如果 SFTP 客户端指定了权限,OpenSSH 服务器将使用指定的权限(umask 不适用)。

一些流行的 SFTP 客户端概述: