Linux权限值为:
1、执行
2、写入
4、读取
创建一个sftp用户,添加到nginx和php-fpm同组(比如www用户组)
useradd -g www sftp
修改sftp用户的默认权限umask
修改/home/sftp/.bashrc文件,在最后添加掩码设置命令
umask 002
对应的目录权限就是775,文件权限就是664。(目录的权限是777-掩码,文件的权限是666-掩码)
配置文件的选择
对于交互式登录(login shell) ,系统读取的只有/etc/profile 一个文件,但是/etc/profile 会按顺序依次判断下面3个文件是否存在
~/.bash_profile
~/.bash_login
~/.profile
如果存在就读取并不再读取后面的配置文件(也就是只读取这3个文件中的第1个)。bash 之所以会读取这么多配置,主要是出于对其他 shell 的兼容。而 ~/.bash_profile 会调用 ~/.bashrc ,也就是说 Login shell 最后读取的是~/.bashrc
而非交互式登录(non-login shell) , 只会直接读取~/.bashrc
所以最好的修改umask权限的方式就是直接修改 ~/.bashrc 文件
最后,将web目录(/data/www)下的已有目录和文件的权限修改过来
//设置文件权限为664
find /data/www -type f -exec chmod 664 {} ;
//设置目录权限为775
find /data/www -type d -exec chmod 775 {} ;
后面使用sftp用户重新登录后,就会看到新创建的目录和文件已经是775和664权限了