在各种情况下,我一直在与umask /权限问题争论一段时间。我已经在/etc/init/php-fpm.conf文件中设置了www-data(由nginx / php-fpm运行)以获得002的umask,而我的部署用户在/ home / deployer /中也有002的umask .bashrc中。应用程序文件都具有0660权限(目录为0770),因此它们都可以读/写它们(部署者的主要组是www-data)。但是我一直遇到这种umask没有得到尊重的情况,文件设置为644或640。
我目前的情况是使用ansible脚本以root身份进行SSH连接,选项为:
sudo: yes
sudo_user: deployer
使用ansible创建的文件获得644的文件权限。如何查看umask的设置位置以及添加umask的位置?
其次是没有更好的部署方式吗?我想完全避免这个问题,并将所有部署工作作为www-data用户,但显然这是一个安全问题。这个umask的东西是非常复杂的部署。
谢谢。
答案 0 :(得分:0)
可能取决于Unix的风格,但HP-UX sshd
的{{3}}页面表示当用户通过SSH成功登录时,其中一个步骤是:
Reads the file ~/.ssh/environment, if it exists, and users are
allowed to change their environment. See the
PermitUserEnvironment option in sshd_config(5).
所以你可能想尝试创建一个文件/home/deployer/.ssh/environment
并在那里设置umask。
这可能不适用于您的情况,但对于SFTP,您可以通过包含命令
为sftp
传输的文件设置系统范围的设置。
SftpUmask 002
文件/opt/ssh/etc/sshd_config
中的或sshd_config
所说的人工谱页。
答案 1 :(得分:0)