当我通过 SFTP 将文件发送到 Windows 服务器时。当我执行此操作时,默认文件权限将为 640。
我们有一个计划任务,它将在特定时间运行以获取文件。由于文件权限为 640,它无法访问该文件。
sftp 用户和调度程序都是相同用途(即 xmfer)。
在上述情况下,有什么方法可以更改文件的文件权限吗?
答案1
首先,它是 Windows 服务器,而 777 样式的权限是 *nix 的东西,所以这没有意义。一些 SFTP 服务器(例如在 Cygwin 上运行的 OpenSSH 服务器)可能会尝试将 777 样式的权限映射到 Windows 文件系统权限,但结果可能不是您想要的。
此外,即使感知到的 640 个权限也并非实际权限,它只是您的 SFTP 服务器(或客户端)将 Windows 文件系统权限映射到 777 样式权限。简单的 777 权限甚至可能远远达不到 Windows 文件系统 ACL 权限的复杂性。
另一件事是如何在客户端上设置权限。但为此,我们需要知道您使用的是什么 SFTP 客户端。
例如,WinSCP 允许在传输过程中和事后设置远程文件权限。均在 GUI 中:
https://winscp.net/eng/docs/ui_transfer_custom
https://winscp.net/eng/docs/ui_properties
和脚本:
https://winscp.net/eng/docs/scriptcommand_put
https://winscp.net/eng/docs/scriptcommand_chmod
PuTTYpsftp
具有chmod
命令。
此外,较新版本的 SFTP 协议允许设置复杂的文件系统权限。但只有少数服务器和客户端支持此功能(我相信 Vandyke 支持,但不确定)。