在 Mac OS X 上设置通过 FTP 和 SFTP 创建的文件的默认权限

在 Mac OS X 上设置通过 FTP 和 SFTP 创建的文件的默认权限

我的 Mac OS X 服务器上有 2 个用户,均属于“wheel”组。如果用户 A 通过 SFTP/FTP 创建文件,则用户 B 可以读取该文件,但不能写入,因为默认文件权限为 644,这允许所有者读取/写入,但只允许组读取。

如何在 Mac OS X 10.8 上将默认 FTP 和 SFTP 文件权限更改为 664?

答案1

默认的新文件权限由 umask 设置控制。您需要将 umask 设置为 002 才能将权限设置为 664。

对于 FTP 服务器,我通常会在 ftp 服务器配置文件中看到 umask 设置。对于 SFTP,因为这与您常用的命令 shell 相关,我认为您需要更改这些用户的默认系统 umask。(或者更好的是,如果您只能更改 sftp 子系统的 umask,那就更好了)

话虽如此,在我更熟悉的 Linux 系统上,共享写入功能由称为“用户私有组 (UPG)”方案的东西处理。该方案为每个新用户创建一个新组,并将其设为主要组。在这些系统中,umask 设置为 002,这意味着权限将为 664(从 666 中减去 umask 可获得文件的结果权限。目录使用 777)。在这些系统中,要让用户对给定目录中的文件进行共享写入,通常将目录的组设置为双方都是成员的公共组,然后执行“chmod g+s directory_name/”。

我对 MacOS 不是很熟悉,但是发现了一篇很棒的文章,讨论了如何在 OSX 10.3 或更高版本中设置 UPG: http://hints.macworld.com/article.php?story=2006010714524168

我个人会尝试找出如何仅针对 sftp 子系统执行此操作,而不是将其应用于整个系统。我不完全了解将 umask 全局更改为 002 对附带 umask 022 的系统的影响。我担心的事情是这样的 - root 创建的文件最终会获得什么权限?这有什么影响?系统帐户呢?等等。

相关内容