我是 Linux(Debian)安装中的非 root 用户,我的主文件夹中现有文件的文件/文件夹权限为 -rw-rw-r--,目录的权限为 drwxrwxr-x,如果我直接登录 SSH(我在 Windows 7 上使用 putty),然后创建一个新文件或文件夹,它会使用这些权限创建它。但是,如果我以任何其他方式登录,例如使用 FTP 或 SFTP 或使用我的文件编辑器(如 Eclipse 或 Sublime Text)或使用其他任何方式(如 win-sshfs),我创建的任何文件或文件夹都没有组写入权限。
我已经将 umask 002 添加到我的 .bash_profile 中,退出所有内容并重新登录,但没有成功。
答案1
此行为特定于 FTP/SFTP 服务器。您未指定正在使用的服务器。
对于 SFTP,我假设是 OpenSSH,因为大多数发行版都使用它。对于 FTP,我没有做任何猜测。
OpenSSH SFTP 服务器不遵循您在 中设置的 umask .bash_profile
。相反,它使用自己的 umask 设置。默认情况下,它是一个全局设置。虽然它可以按用户设置,但只能由 root 设置(它在 中配置sshd_config
)。
有关详细信息,请参阅SFTP 服务器上传的文件具有错误的权限。
另一种解决方案(如上面的链接中所建议的)是使用允许指定上传文件权限的 SFTP 客户端。
例如 WinSCP 允许这样做。
看https://winscp.net/eng/docs/ui_transfer_custom
(我是 WinSCP 的作者)