我像这样配置了 OpenSSH
Subsystem sftp internal-sftp
Match Group sftp
ForceCommand internal-sftp -u 002
AuthorizedKeysFile /home/sftp/ssh/%u
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
此配置有效,但存在一个问题:从本地驱动器复制到 sftp 的文件或文件夹保留其权限(通常755
),并且其他人无权sftp-user
访问它们。
其他人sftp-users
只有在有人创建文件夹或文件或复制具有 775 权限的文件时才拥有完全权限。
有没有办法让所有文件都sftp-directory
具有775
权限?目前我正在chmod -R 775 /home/sftp/files/
手动设置,但这不是我想要的解决方案...
谢谢
答案1
使用此设置是不可能的,因为umask
如果原始权限较低,则没有足够强大的工具来强制权限。 有几种解决方案可以解决这个问题:
首先是您提到的
chmod
,您需要定期运行它以便所有用户可以访问所有文件。另一个解决方案是
-m
switch forsftp-server
,它通过强制对新上传的文件使用精确的权限来解决此问题。但此功能不是上游的,但至少在 RHEL/Fedora 中是可用的,特别是针对这种用例。