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 编辑 ] FTP和目录,都别用 WWW 权呀。不然,你再怎么设,都可以写。安全是个问题。
就算你设为000 PHP都可以写
你说的 FTP上传的文件也是 www,是因为你在 pureftpd 设为 FTP 属性为 www了。
还去 mysql 改个啥。 为何不直接去pureftpd 改FTP发放为FTP的呢。
有个注意的是:你在 pureftpd改 FTP属性为 FTP后,你要在SSH里把网站目录和所有文件的属性也都设为FTP属性。
使用 chown -R 命令来修改目录和目录下的所有文件属性为 你的FTP权限。
只有这么做了,你设置 755 才会有做用。网站目录需要写入权的,你就设置 777。
只有这样才能防安全,和防跨站!
页:
[1]