Linux系统中如何修改及设置文件系统的权限及安全

linux修改文件和目录权限chmod

如何更改 Linux 文件和目录权限?

说实话,Linux的权限看起来很复杂,但是用多了就变得很顺畅了。
刚开始接触chmod的时候,我很困惑,尤其是数字和符号这两种表示方法,让我一头雾水。
但做了几个项目后,我慢慢掌握了窍门。

我们以数字形式为例。
我之前有一个项目使用Apache来运行Web服务,我必须将网站的文件权限调整为7 5 5 为什么是7 5 5 ?说白了,所有者有读写执行(7 ),组等人只能读执行(5 )。
记得有同学坚持要把权限改成7 7 7 ,结果随便改了几个敏感文件,还被老板训斥了。
这个教训太深刻了。
数字形式用得越多,数字和权限的对应关系就越铭刻在我的脑海里。

象征形式更有趣。
例如,如果你只想给组内的人添加写权限,只需使用 chmod g+w 即可。
我的一个朋友将服务器权限称为“过家家”,并且使每个人的权限都过于宽松。
结果,系统被黑客入侵。
后来它转变为象征形式。
哪个用户有哪些权限一目了然,错误也少得多。
另一个技巧是组合使用它们,例如 chmod u=rw,g+x,o-rwx。
这种写入方式特别适合安全性要求较高的环境。
每一类用户必须拥有的权限是明确的。

最烦人的就是权限的递归修改。
我已经在大目录的权限上犯了错误。
当我使用 ls -l 看到它包含数千个子目录时,我感到震惊。
这时候就得用chmod -R 7 5 5 /path,不然一一改起来很累。
但是,请注意,对权限的递归更改有时会导致崩溃,特别是对于具有特殊权限的文件,例如 setuid 文件。
更改权限可能会导致系统直接崩溃。

现在我使用Linux权限,我几乎不再使用数字形式,符号形式更直观。
但有时你仍然需要以数字形式编写脚本,因为符号形式的脚本很容易出现错误。
我记得有一次我编写了一个自动化脚本并使用符号来更改权限。
因此,空格未正确添加。
我花了很长时间才找到问题所在。
那一刻我真想给自己一巴掌。
因此,在调整权限时,请全部使用数字或符号。
如果一起使用它们很容易出错。

其实,控制权限有两个要点:一是明确谁应该做什么;二是明确谁应该做什么。
其次,不要授予过于广泛的权限。
我目前的习惯是默认最小权限并根据需要扩展它们。
例如,普通用户文件的默认值是rw-r--r--,大目录的默认值是7 5 0。
它安全且易于管理。