CentOS修改home目录权限:750还是755?
给/home改权限,顺手敲个chmod -R 755 /home,结果同事第二天说SSH密钥登录失灵;回滚成750,又有人抱怨共享目录打不开。到底该用750还是755,一句话:看你要防谁、要给谁看。

先搞清楚这三个数究竟在拦谁
Linux权限三位一组,7=4+2+1,分别是读、写、执行。第一位是属主,第二位是属组,第三位是其他人。755意味着任何人都能cd进别人的家目录,能看文件名,甚至能读那些全局可读的脚本;750把其他人直接挡在门外,连文件名都看不到。区别就在“其他”这一位,5和0只差一位,却决定能不能“窥探”。
750的爽点与痛点
爽点:黑客拿到普通账号也扫不到其他用户目录,暴力破解字典都省一半时间;多用户服务器里,个人配置文件、SSH密钥、浏览器缓存默认不再裸奔。
痛点:Apache、Nginx如果跑在www用户,需要访问/home/web/site,750会把www挡在外面,除非把web目录单独拎到/var/www或者把www加进用户组再改属组,这一步新手经常忘,结果页面直接报403。
755的爽点与痛点

爽点:省心,任何服务都能直接读,开发机、内部测试环境传文件不用频繁改组;samba、vsftpd默认配置就能共享,省掉一堆ACL调试时间。
痛点:只要系统里有一个被提权的普通账号,就能批量拉取其他用户的私钥、历史命令、SQL备份;一旦被人写入.plan或.forward,还能钓管理员去执行恶意脚本,风险敞口太大。
真实场景怎么选
1. 公共WEB多站点服务器
用户目录下放站点,统一用750,把运行用户加到同一附加组,站点根目录再给755,既防窥探又保访问。
2. 内部开发机

大家互相信任,又要频繁scp、rsync,直接755减少沟通成本;但记得把SSH密钥设成600,把历史记录清掉,别让“方便”变成“后门”。
3. 共享科研计算节点
用户数据敏感,750是底线;如果有跨用户读取需求,用ACL单独开目录,命令setfacl -m u:partner:r-x /home/you/data,一条指令搞定,不影响父目录。
一条命令改完不背锅
chmod 750 /home/* 只改一级用户目录,别加-R,否则把用户自己的public_html一起锁死;想批量,用find:
find /home -mindepth 1 -maxdepth 1 -type d -exec chmod 750 {} \;改完顺手验证:
namei -l /home/alice
把每一级权限列出来,一眼就能看见哪里漏了5。
常见翻车现场
翻车1:把/home本身也改成750,结果sshd无法创建/.ssh,登录直接拒;/home本身必须保持755,只改下一层用户目录。
翻车2:为了图省事,直接把用户附加组改成apache,结果用户下次新建文件默认属组变成apache,自己反而删不掉;正确做法是g+s让目录继承属组,或者干脆把目录搬到/var/www。
翻车3:用setfacl后忘了备份,系统迁移时tar默认不打包ACL,解压后权限全乱;打包加--acls,或者记录setfacl -R -b /home > acl.txt,恢复时setfacl --restore。
对外、对多用户、对生产,一律750;对内、对单人、对临时测试,可以755。别让“省事”成为以后“背锅”的理由。
CentOS修改home目录权限:750还是755?答案其实就在你准备让谁进门的那一刻。
