boot 发表于 2012-5-22 20:32:54

pureftpd上传的文件只能为www用户,不论用户的uid、gid为多少

目前场景是这样,www 用户的 UID=500 GID=500
我在MySQL里面添加的pureftpd用户为test uid=ftp-uid    gid=ftp-gid


我需要实现的需求如下:

/home/wwwroot   ftp:ftp 0755
也就是其它账号无法写入,主要是为了防止www(nginx)用户进行写入操作,某些php文件夹必须由管理员开启 777才能让PHP写
而通过pureftpd则可以上传和修改等。


而不论怎么修改Mysql中的uid和gid,上传用户总是以www(500)的身份上传

#ps -ef

root      2940   1          0 20:00 ?      00:00:00 pure-ftpd (SERVER)
www   2958      2940    0 20:03 ?      00:00:00 pure-ftpd (IDLE)          这个和下面的进程是有连接时自动生成的,此进程是www 用户
root      2960      2958   0 20:03 ?      00:00:00 pure-ftpd (PRIV)





故只有将/home/wwwroot改为www:www 0755时,FTP才能上传,而这样,php也有了写入权限。很为纠结。
(大家别说改成www:www 0555,这样ftp都无法上传。)

就算将/home/wwwroot 改为 xxx:xxx 0777 通过 FTP上传的文件也会是www:www,和mysql中的uid和gid完全不一致。

[ 本帖最后由 boot 于 2012-5-22 20:43 编辑 ]

id886 发表于 2012-5-24 23:08:23

FTP和目录,都别用 WWW 权呀。不然,你再怎么设,都可以写。安全是个问题。

就算你设为000 PHP都可以写      

你说的 FTP上传的文件也是 www,是因为你在 pureftpd 设为 FTP 属性为 www了。

还去 mysql 改个啥。 为何不直接去pureftpd 改FTP发放为FTP的呢。


有个注意的是:你在 pureftpd改 FTP属性为 FTP后,你要在SSH里把网站目录和所有文件的属性也都设为FTP属性。

                           使用 chown -R 命令来修改目录和目录下的所有文件属性为 你的FTP权限。

                        只有这么做了,你设置 755 才会有做用。网站目录需要写入权的,你就设置 777。

只有这样才能防安全,和防跨站!
页: [1]
查看完整版本: pureftpd上传的文件只能为www用户,不论用户的uid、gid为多少