Linux如何修改文件权限chmod命令

那天,我在公司服务器上处理一个项目文件时,突然发现脚本文件无法执行。
我打开终端并尝试运行脚本,但收到“权限不足”错误。
我检查了文件权限,发现所有者和其他用户都没有执行权限。

我决定使用 chmod 命令为文件添加可执行权限。
我选择符号模式是因为我很清楚我需要对此文件的权限,并且我只想向所有者添加执行权限。
所以我输入 chmod u+x script.sh,命令执行成功,再次运行脚本,这次成功完成。

等等,我突然想到,如果这个脚本涉及到一些敏感操作,那么简单地给所有者添加权限可能不够安全。
我需要考虑其他用户的权限,尤其是组用户和其他用户的权限。
所以我运行了另一个命令 chmod go-w file.txt ,它删除了该组和其他用户的写入权限。

处理完这个文件后,我遇到了目录权限的另一个问题。
我需要为此目录及其所有子文件设置某些权限。
这次我选择了八进制模式,因为它可以让你快速设置一组标准的分辨率。
我输入 chmod 7 5 5 my_directory/ 并设置了目录及其内容的权限。

通过这些操作,我认识到在Linux系统上正确使用chmod命令是多么重要。
这不仅可以让我有效地管理文件和目录的权限,还可以保证系统的安全。
不过,我还是有点好奇,对于新手来说,符号模式和数字模式哪个更容易上手?

LINUX如何修改文件权限_Linux使用chmod更改文件权限教程

直接进入实用信息: chmod 命令有两种类型的权限更改:符号和数字。

符号模式为加+减-等于= 例如,u+x 添加所有者实现,go-w 删除组和其他写入。

数字模式使用数字来代表权限 4 个读,2 个写,1 个执行 6 4 4 表示所有者可以读写,其他人只能读。
7 5 5 表示所有者拥有完全权限,可以被其他人读取和执行
上周我就是靠这个来处理项目的 只需在脚本文件中添加 x 并运行即可 配置文件使用6 00保护更安全
注意不要随意使用7 7 7 功率太高容易出问题
我们先这样做

LINUX如何修改文件和文件夹的权限_LINUX修改文件夹权限方法

说白了,Linux权限管理有3 个强大的工具: chmod 改变权限; chown 更改所有者,setfacl 添加访问列表。
其实很简单;但每个命令背后都有一个小技巧。

我们先来说说chmod最重要的一点。
去年我们做电商项目时遇到的一个大坑:数模7 5 5 和6 4 4 是简单的万能公式;但你需要记住它们 - 7 5 5 代表所有者 (7 );向小组和 (5 ) 其他人朗读; 6 4 4 是给主人读(6 );对于该组和其他 4 个人来说它是只读的。
用行话来说,这称为雪崩效应。
事实上,前面任何小的延迟都会延迟其余的事情。
例如,如果您忘记为脚本添加执行权限。
整个部署将会崩溃。
还有一件事。
进行递归修改时不要盲目使用-R。
去年测试环境几乎改变了整个系统目录。
“查找 /var/log -type d -exec chmod 7 5 5 {} \;”不要忘记使用 find 命令来验证范围,例如有一个非常重要的细节。
数字模式下的4 +2 +1 从何而来?尽管团队中有人去年提出要求并解释说权限基本上是二进制的更好地理解使用数字。
例如,阅读是1 00,写作是01 0总共是1 1 0或6
一开始我以为chmod就足够了,但后来我发现有些不对劲。
例如,如果我想将文件提供给 root 组,仅 chmod 是行不通的。
我必须首先删除 user:root file.txt 并选择 chmod 6 4 0。
还有一件事,在使用 setfacl 时不要忘记检查文件系统支持。
我有一个项目安装了默认支持ACL的xfs。
但有一个使用ext3 的测试环境。
如果直接setfacl会报错。
请改用 ext4
一个简单的陷阱警告:setfacl 设置的权限不会自动转移到子目录。
必须使用-d参数设置默认规则,如setfacl -d -m u:user1 :rwx /path,这样新创建的文件就会自动拥有权限。
说实话,很复杂,但是解决了我们权限混乱的问题。

我建议将它们组合起来尝试。
例如,将文件编译到运维组,并使用setfacl为该组中的新worker授予权限。
它比纯粹的 chmod 灵活得多。
您认为哪种方法更方便?