我一直试图弄清楚文件权限有什么问题.当我使用FileZilla上传文件时,所有文件都获得权限-rw-r – r–.我希望他们有-rwxr-xr-x.我曾尝试使用umask来修复权限,但有些事情是错误的.我已经读过您可以使用umask更改权限,例如:
在/ etc / ssh / sshd_config中,更改以下内容:
Subsystem sftp /usr/lib/openssh/sftp-server -u 002
有了这个改变,我得到的文件是-rw-rw-r–.据我所知0应该给予所有权利?但我只是得到了rw.
怎么了?我正在使用Debian.
解决方法
如果SFTP客户端未指定上载文件的权限,则OpenSSH SFTP服务器会为新创建的文件分配0666权限(减去umask 0002使0664成为可能).
这是硬编码的,你不能改变它.请参阅OpenSSH的sftp-server.c中的process_open()函数.甚至,如果没有明确指定,0666仍然是文件的* nix默认值,你不能只用umask更改它(一般来说这是真的,而不仅仅是OpenSSH).
请注意,您的umask实际上是错误的.如果你想要0644,请使用umask 0022,而不是0002.
FileZilla从不指定上载文件的权限.导致您遇到的行为的原因是什么.
要获得所需的权限:
>使用FileZilla,您可以在上载后使用远程文件上下文菜单中的“文件权限”命令手动更改文件权限.
>使用允许指定上载文件权限的SFTP客户端.
例如,WinSCP允许这样做.
见https://winscp.net/eng/docs/ui_transfer_custom
(我是WinSCP的作者)