我知道这个问题已经讨论过了,但是通过阅读帖子我无法找到答案,因为有些人说“是的 umask 可以工作”,而其他人说“OpenSSH put 命令始终保留权限”
在此之前,准确地说:
internal-sftp子系统,-u 0002用于 umask-por-P选项从我一方面读到的内容:有很多方法可以为 SFTP 传输定义 umask:
-u的internal-sftp(或sftp-server)中,由于5.4的OpenSSHsftp-server(在其中我们明确设置了 umask - 这不适合 chrooted 环境顺便说一句)pam.d/sshd文件中添加特定配置另一方面,我读过:
OpenSSH SFTP 客户端和服务器确实传输权限(作为扩展)并在本地创建具有权限的远程文件。AFAICT,没有办法禁用这种行为。
所以我做了以下测试:
在我的客户端上,我创建了权限为 600 和 700 的文件MYFILE和目录MYDIR。
然后用sftp命令:
mkdir => the new directory has permissions following the umask (OK)
put MYFILE …Run Code Online (Sandbox Code Playgroud)