代码: 全选
linux@ubuntu:~$ ls -ld /home/demo/public_html/
代码: 全选
linux@ubuntu:~$ groups demo
代码: 全选
linux@ubuntu:~$ sudo chgrp -R www-data /home/demo/public_html/
代码: 全选
linux@ubuntu:~$ ls -ld /home/demo/public_html/
linux@ubuntu:~$
这样, public_html就属于demo这个用户和www-data这个组
但是, apache通过www-data用户读写创建出来的新文件和新目录, demo通过ftp还是无法删除, 如何解决呢?
这个指令虽然加了-R, 但是这个循环只是对ssh登录demo的帐号或者用ftp上传创建的新文件, 新目录有递归权限的效果, 也就是说, 新创建的文件或者目录, demo有权限通过ftp来删除, 但是www-data创建的新文件和新目录, demo就无法删除, 比如, 网站的一些缓存文件, 网站后台安装的一些扩展, 组件, 插件, 模板等等都是通过apache的www-data来写入并创建生成的, demo用户虽然和www-data用户同在www-data组, 但是demo无权删除www-data创建的文件和目录。
显然, 如果是划分虚拟主机, 对public_html这个目录的权限设置还是不够的, 客户根本无法通过FTP来管理他们的网站。
我们要达到什么目的, 该如何处理?
我们要达到的目的是:
- demo用户通过FTP登录到/home/demo/这个目录下并锁定在这个目录
- demo通过FTP, 在/home/demo/public_html/下能创建并删除任何文件, 不仅是但前文件, 还有后来网站的www-data读写出来的文件和目录。