为啥使用 sftp 上传文件后文件权限发生变化?

Posted

技术标签:

【中文标题】为啥使用 sftp 上传文件后文件权限发生变化?【英文标题】:why permission of file changes after uploading file using sftp?为什么使用 sftp 上传文件后文件权限发生变化? 【发布时间】:2012-01-19 06:19:12 【问题描述】:

假设本地机器的文件权限是644 如果我将文件上传到远程,则使用 openssh (sftp) /putty ssh 远程机器的文件权限改为640 为什么?

我们必须做什么我们需要相同的权限?

我们实现的SFTP库 朗:C

【问题讨论】:

这和编程有关吗?如果不是,那么这里就是题外话了。如果是,请指定您使用的语言/环境。 【参考方案1】:

这是由于 umask,它会影响新创建文件的默认权限。如果远程服务器允许,您可以使用umask 命令更改此设置。

【讨论】:

感谢回复,上传后我必须发送 UMASK 或在上传 cmd 本身我们可以发送 umask 你需要设置umask,然后开始上传。您当前的 umask 决定了新创建文件的权限。 我想知道,为什么上传完成后,如果本地权限是wrxwrxwrx,那么在remore write permision removes,远程文件权限是rwxr_xr_x for group而其他人write permision autoalyreved为什么? 如果您想了解更多关于 umask 的信息,最好的办法是:en.wikipedia.org/wiki/Umask(如果 Wikipedia 的页面过于技术性,Google 可能会提供一些更易于访问的文档)。【参考方案2】:

要么是@pgl 所说的,要么是使用传输后实际设置文件模式的程序,例如rsync(-over-ssh)。

【讨论】:

以上是关于为啥使用 sftp 上传文件后文件权限发生变化?的主要内容,如果未能解决你的问题,请参考以下文章

SecureCRT使用sftp上传较大文件意外暂停

利用nodejs监控文件变化并使用sftp上传到服务器

java项目为啥有的电脑上传文件后端接口响应很慢?

从windows向Linux上传文件,为啥用RZ命令上传文件后,文件权限为600,而其他文件权限都为644?

linux子用户 sftp连接 无法上传或修改文件

sftp用户权限设置