Maison  >  Article  >  développement back-end  >  centos+nginx+php,使用ftp工具后,目录权限设置问题

centos+nginx+php,使用ftp工具后,目录权限设置问题

WBOY
WBOYoriginal
2016-06-06 20:45:331927parcourir

背景:
网站使用nginx+php-fpm,运行账户为nginx:nginxftp账户为test:ftp

网站根目录为 /user/share/nginx/html/www

ftp工具为vsftpd

现在网站能正常使用,但是本地使用filezilla无法上传文件,提示553 Could not create file.,附图如下:
centos+nginx+php,使用ftp工具后,目录权限设置问题

问题:
如何设置www的目录权限,才能在保证安全的情况下,使nginxftp都能正常使用?

回复内容:

背景:
网站使用nginx+php-fpm,运行账户为nginx:nginxftp账户为test:ftp

网站根目录为 /user/share/nginx/html/www

ftp工具为vsftpd

现在网站能正常使用,但是本地使用filezilla无法上传文件,提示553 Could not create file.,附图如下:
centos+nginx+php,使用ftp工具后,目录权限设置问题

问题:
如何设置www的目录权限,才能在保证安全的情况下,使nginxftp都能正常使用?

虽然可能跑题,但我的建议是每个网站用单独的用户来跑,网站相关的所有文件属于该用户,这样可以做到站点之间,服务之间的权限隔离。FTP 也用所属的用户来登录。

把test添加到www用户组,然后775应该就可以了。
usermod -a -G www test
chmod 775 -R /user/share/nginx/html/www

试试把filezilla的被动模式去掉,或者vsftpd开启一下被动模式

/etc/vsftpd/vsftpd.conf 末尾追加

<code>pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40080
pasv_promiscuous=YES
</code>

/etc/sysconfig/iptables 开启端口

<code>-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 40000:40080 -j ACCEPT
</code>

重启iptables & vsftpd

题主你好,我今天也是遇到了和你一样的问题,网站使用nginx+php-fpm,运行账户为nginx:nginx,ftp账户为myname:ftp;网站根目录为 /user/share/nginx/html;研究了一下成功了,方法如下,可供参考:

首先编辑“vsftpd.conf”:

<code>vim /etc/vsftpd/vsftpd.conf
</code>

在文档最后添加:

<code>guest_enable=YES #启用vsftpd虚拟用户
guest_username=nginx #虚拟用户对应的系统用户,我安装的是 nginx
#pam_service_name=vsftpd #启用 vsftpd 验证,如果文档里有这一行就注释掉
user_config_dir=/etc/vsftpd/vu_conf #虚拟用户配置文件路径
virtual_use_local_privs=yes #启用vsftpd虚拟用户,并且虚拟用户和本地用户有相同的权限。
</code>

完成后按 ESC 输入 :wp 保存并退出。然后进入“vsftpd”目录:

<code>cd /etc/vsftpd
</code>

创建一个目录“vu_conf”:

<code>mkdir vu_conf
</code>

然后进入此目录:

<code>cd vu_conf
</code>

创建一个和虚拟用户名同名的文件“myname”:

<code>touch myname
</code>

然后打开这个文件:

<code>vim myname
</code>

按 i 键盘进入编辑模式,输入这个用户所对应的路径“local_root= /usr/share/nginx/html”然后按保存退出。最后重新启动 vsftpd 即可:

<code>service vsftpd restart
</code>
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn