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權限了