记一次差点悲剧的权限配置

本文共被喵星人侦察过22,676次。。。

刚刚在电子科大的凝聚群里和大神们闲聊,提到翻墙问题了我决定给大神们提供一个可以翻墙用得SSH账户。Nologin权限只能用来翻墙的账户很好弄啦,这个VPS上面流量躲到用不完所以我也打算让群里大家都用上吧。在群里发完账号密码以后我想起来上次Rebuild这个VPS(很久以前的事情了)之后还木有禁止root账户的远程登录,于是乎配置ssh设置禁止root账户登录。一切搞定以后闲着没事儿去网站目录转了一圈,猛然发现有ls的时候几个PHP文件的文件名居然是绿色的!有执行权限!仔细想想服务器应该木有被攻击过的迹象,应该是自己不小心配置错了。留着执行权限可是很危险的事情,于是乎很自然的就想取消权限。于是。。。很自然的chmod -r -x DIR到这里问题来了。。。我本来想递归下文件夹下面所有内容的,结果-R弄错了大小写给写成了-r!!!于是整个Web目录下所有文件文件夹读取的权限都木有了。这时候我还没发现什么问题,突然手机响了, 打开一看监控宝的邮件,服务器宕机,错误代码403!!赶紧看了下,好嘛!这个目录下放的所有站点都403Forbidden了。。。发现问题后赶紧补救,chmod -R +r DIR无果!依旧403.咬了咬牙,chmod -R 755 DIR403错误消失了,但是回去一看,文件又都变成了绿色。。。755是有执行权限的啊,这不就等于白忙活了。。。于是644权限,403 。换成744权限,403消失了看来不是*44的问题。。。去正常访问的Web目录ls -l了一下,发现权限都是 -rw–r–r–这样的,用chmod命令改之。。依旧403…666权限也不行,看来就得是7**的权限站点才能访问。。。但是有执行权限以后文件名那耀眼的绿实在是让人不能忍。。。我甚至试了一个笨办法:把文件打包压缩放到别处,删除原文件然后再解压。。。发现依旧不行。。。

纠结了很久之后,无奈求助Google大神。。。在Linux公社的Linux-chmod 命令的详细用法讲解这篇文章中,我看到了这么一句话

设置 mode 所表示的权限可用下述字母的任意组合:

r 可读。
w 可写。
x 可执行。
X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。

原来大写和小写的X对应的权限还是不一样的啊。。。这下就好说了,先chmod -R 644 DIR,吧执行权限都去掉,然后chmod -R +X DIR,注意是大写的X哦~然后。。。我还没来得及测试,监控宝就发来了邮件说服务器恢复。。。嘿嘿,真是虚惊一场啊。。。

Linux的权限配置真是好复杂好复杂,安全性自然是没问题,但是是不是可以稍微再人性化一点呢?