找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 1896|回复: 0

虚拟主机用户ftp和apache用户文件互操作权限解决方法

[复制链接]

482

主题

303

回帖

1486

牛毛

二级牛人

学习  !!!

积分
1486
QQ
发表于 2009-7-29 08:28:10 | 显示全部楼层 |阅读模式 来自 河北省沧州市
近来用linux虚拟主机学习了一下linux下的权限比较高级一点的权限管理,当我们使用PHP程序的时候,在安装好以后,如果你想删除整个目录,你会发现apache用户生成了一些文件,ftp的用户不能删除. 其实这是有办法解决的。 方法1.用户组控制方法 先给所有的虚拟主机主机中的虚拟用户(ftp用户)加入到apache这个组.然后设置umask为002.这样用户和组都有读写执行权限。这个是比较容易的方法.但不安全。不同的用户可以删除对方的文件,因为是同一个组,组有读写执行的权限. 方法2.使用linux高级的权限管理acl。 对一个目录设置二重权限,除了用户本身的用户组,在加入apache对他要读写执行的权限. 这样用户就能删除apache生成的文件.但为别人的组,别的虚拟用户他没法删除. 下面我们就来看看第二种的控制方法 linux系统里面,并不是只能为所有者,同组用户和其他用户这三类人分配一个文件(目录)的权限,你还可以指定其他的用户或者组,不过有个前提,挂载分区的时候加上acl选项,比如: mount /dev/hda1 /home -o acl。 然后你可以使用 setfacl -m u:ftp:rwx /home/ftp/www 命令来给ftp用户分配/home/ftp/www目录的所有权限 如果你要/home/ftp/www/下面新建的目录和文件也有同样的权限 setfacl -d -m u:ftp:rwx /home/ftp/www 设置默认的权限,这个命令还可以实现多个用户的不同权限的控制,比如 setfacl -m u:ftp:rwx /home/www; setfacl -m u:tmp:r-x /home/www; ftp用户拥有所有权限,tmp用户拥有只读权限。 你还可以设置mask的值: setfacl -m m::rwx /home/www; 这样,新建的你就可以让虚拟主机的用户和apache用户都有权限操作文件和目录了,比如apache用户的用户名是apache,虚拟主机的用户名是vmuser,目录是/home/vmuser/www,可以使用以下的命令: setfacl -m u:vmuser:rwx /home/vmuser/www; setfacl -m u:apache:rwx /home/vmuser/www; setfacl -d -m u:vmuser:rwx /home/vmuser/www; setfacl -d -m u:apache:rwx /home/vmuser/www; setfacl -m m::rwx /home/vmuser/www; setfacl -d -m m::rwx /home/vmuser/www; 这样,在安装PHP程序的时候,就不会提示你apache的用户没有权限写文件,而你想删除一个目录的时候,也不会因为下面有apache用户生成的文件而不能删除了。当然这个办法有点局限就是基本上只有ext2和ext3分区格式能用,其他的,比如xfs,jfs等不能直接使用,修改后才能使用。
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-4-26 12:40 , Processed in 0.175558 second(s), 34 queries .

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表