把网站目录权限改成777,网站等于把家门钥匙插在锁孔里,目录还贴了张纸条写“欢迎光临”。权限
去年有个做外贸站的都修朋友找我救火。网站被挂马,有危首页被跳转到博彩页面。网站我登上服务器一看,目录
wp-content/uploads目录权限是权限drwxrwxrwx。问他为什么这么设,都修他说之前传图片总失败,有危网上搜到个帖子说改成777就好了,网站改完确实能传了,目录就没再管。权限攻击者利用这个目录上传了一个PHP文件,都修然后通过它遍历了整个站点。有危清理花了四个小时,搜索引擎降权花了三个月。777 意味着文件所有者、所属组、其他用户都拥有读、写、执行权限。放到网站环境里,就是任何能访问到这台服务器的人——包括通过Web漏洞进来的攻击者——都能往目录里写文件、改文件、执行脚本。Linux 的权限模型本来是为多用户环境设计的,777 直接把这个模型废掉了。
很多人改777是因为遇到了“Permission denied”。上传图片失败、插件无法写入缓存、程序不能创建日志文件。这些报错的根源通常是文件所有者和Web服务器运行用户不一致。比如你用 root 通过 SFTP 传了个文件,所有者是 root,而 Nginx 或 Apache 以
www-data身份运行,自然没权限写。正确做法是chown把所有者改成www-data,目录给 755,文件给 644。但有人嫌麻烦,直接chmod -R 777,问题消失了,风险也埋下了。更危险的是递归777。
chmod -R 777 /var/www这条命令会把所有文件——包括配置文件、PHP源码、甚至.htaccess——全部变成任何人可写。攻击者不需要什么高级漏洞,只要能往任意一个PHP文件里追加一行代码,整个网站就沦陷了。我见过一个案例,攻击者往index.php末尾加了一句eval($_POST['cmd']),直接拿到 webshell,然后在内网横向移动,最后把数据库打包卖到了暗网。共享主机环境下777的危害更大。同一台服务器上跑着几十个网站,任何一个站点的漏洞都可能被用来读取或篡改其他站点的文件。你永远不知道隔壁那个 WordPress 是不是装了带后门的主题。
有人会说:“我就一个小破站,没人盯着。”这话我听过太多次。自动化扫描器不分大小站,它们扫全网IP段,发现777目录就尝试写入。你的站可能只是被用来当跳板,或者被塞了黑帽SEO页面。等你在 Google 搜自己域名发现结果里全是“买伟哥”的时候,已经晚了。
那到底怎么设?我的习惯是:目录 755,文件 644,需要写入的目录单独处理。
wp-content/uploads可以设 755 并把所有者改成 Web 用户,或者 775 让组用户可写。实在需要777的场景——比如某些老旧的CMS强制要求——至少加上open_basedir限制,或者用disable_functions禁掉system、exec、passthru这些危险函数。改权限之前先问自己一句:这个目录真的需要所有人都能写吗?答案几乎总是否定的。
顶: 6665踩: 46






评论专区