我的情况如下:我正在为团队共享设置一个 Ubuntu 14.04 网络服务器。我希望团队对里面的所有内容都有读/写权限(与每个文件和文件夹var/www/html
一样)。CHMOD 775
我的问题是 Mac 上的 SFTP 客户端(Transmit、Cyberduck 和 FileZilla)不尊重我设置的默认权限。
经过几个小时,我已经完成了许多步骤来实现我的目标:
设置团队权限:
- 创建
myteam
群组 - 将所有用户添加到
myteam
组 - 将 的组所有权更改
/var/www/html
为myteam
此时,ls -la
回报/var/www
drwxrwsr-x 2 marcelo myteam 4096 Jul 20 13:29 html
设置默认的 UMASK:
- 更新
/etc/ssh/sshd_config
基于Subsystem sftp /usr/lib/openssh/sftp-server -u 002
本文。 - 更新
/etc/pam.d/sshd
并/etc/pam.d/login
基于session optional pam_umask.so umask=0027
这个问题 - 更新
/etc/pam.d/common-session/
了新行session optional pam_umask.so
并编辑/etc/login.defs
以将 UMASK 行更改为UMASK 002
基于这个问题 - 重新启动所有适当的服务和/或重新启动整个机器
此时,如果我通过 shell 通过 SSH 进入服务器,该umask
命令将报告002
,并且所有新文件和文件夹都具有正确的权限。但是,如果我通过 Transmit、Filezilla、Cyberduck 等通过 SFTP 进入服务器并创建文件或文件夹,它不会遵守并将文件默认为rw-r--r--
和文件夹默认为rwxrwsr-x
(文件夹是正确的)。我检查过,FTP 客户端没有覆盖任何权限 - 这些权限已被禁用。
答案1
这是一个老问题,已经讨论过很多次了。我在这里写了简短的回答:
https://superuser.com/questions/937003/setting-default-group-permissions-via-sftp/937735#937735
基本上,您使用最后一条评论回答了自己。 SFTP 保留原始权限并umask
从中截断。