当前位置: 首页 > news >正文

Linux权限核心:chmod命令终极指南(文字与数字法详解)

在Linux这个多用户、多任务的操作系统中,文件权限是维护系统安全的基石。你是否曾遇到过执行脚本时被提示“Permission denied”的窘境?或者想保护自己的私密文件不被他人窥探?掌握 ​​chmod​​ 命令,就是掌握了掌控文件生杀大权的钥匙。

今天,我们将深入学习 ​​chmod​​ 命令的两种核心用法:直观易懂的文字设定法和高效专业的数字设定法,让你彻底告别权限困惑。

准备工作:理解权限的语言

在修改权限之前,我们必须先能读懂它。使用 ​​ls -l​​ 命令,我们可以看到类似这样的输出:

# 创建一个实验目录和文件
mkdir /tmp/chmod_lab && cd /tmp/chmod_lab
touch test_file.txt
mkdir test_dir
ls -l

运行结果(示例):

drwxr-xr-x 2 user group 4096 Nov 21 23:00 test_dir
-rw-r--r-- 1 user group    0 Nov 21 23:00 test_file.txt

权限字符串(如 ​​-rw-r--r--​​)分为4个部分:

  1. 文件类型:第一个字符。​​-​​ 代表普通文件,​​d​​ 代表目录,​​l​​ 代表软链接。
  2. 所有者权限 (User):第2-4位。​​rw-​​ 表示所有者拥有读(r)和写(w)权限,但没有执行(x)权限。
  3. 所属组权限 (Group):第5-7位。​​r--​​ 表示与文件所有者同组的用户只有读(r)权限。
  4. 其他用户权限 (Other):第8-10位。​​r--​​ 表示其他用户也只有读(r)权限。

权限含义速记:

  • ​r​​ (Read): 读权限
  • ​w​​ (Write): 写权限
  • ​x​​ (Execute): 执行权限

特别注意:​​x​​ 权限对于目录至关重要,它代表进入该目录的权限。没有 ​​x​​ 权限,即使有 ​​r​​ 权限也无法 ​​ls​​ 目录内容。


方法一:文字设定法 (Symbolic Method) - 直观易懂

文字设定法通过组合“操作对象”、“操作符”和“权限类型”来修改权限,非常符合自然语言逻辑,尤其适合进行小范围的精确调整。

语法结构:chmod [ugoa][+-=][rwx] 文件名

  • 操作对象 (Who):
  • ​u​​: 所有者 (user)
  • ​g​​: 所属组 (group)
  • ​o​​: 其他人 (other)
  • ​a​​: 所有人 (all),即 ​​ugo​​ 的合集,也是默认值。
  • 操作符 (Operator):
  • ​+​​: 添加权限
  • ​-​​: 取消权限
  • ​=​​: 直接赋予指定权限(会覆盖原有的)
  • 权限类型 (Permission): ​​r​​, ​​w​​, ​​x​
实战演练

准备文件:

cp test_file.txt perm_file.txt
ls -l perm_file.txt

初始状态:​-rw-r--r--​

示例1:给所属组(g)添加(+)写(w)权限

chmod g+w perm_file.txt
ls -l perm_file.txt

运行结果:

-rw-rw-r-- 1 user group 0 Nov 21 23:00 perm_file.txt

结果分析:中间三位的 ​​r--​​ 变成了 ​​rw-​​,成功为组用户添加了写权限。

示例2:给其他人(o)添加(+)写(w)和执行(x)权限

chmod o+wx perm_file.txt
ls -l perm_file.txt

运行结果:

-rw-rw-rwx 1 user group 0 Nov 21 23:00 perm_file.txt

结果分析:最后三位的 ​​r--​​ 变成了 ​​rwx​​。

示例3:复杂操作,用逗号分隔 一次性完成:取消所有者(u)的写权限,同时给所属组(g)添加写权限。

# 先恢复一下初始状态
chmod 644 perm_file.txt
ls -l perm_file.txt # 确认状态为 -rw-r--r--# 执行复杂操作
chmod u-w,g+w perm_file.txt
ls -l perm_file.txt

运行结果:

-r--rw-r-- 1 user group 0 Nov 21 23:00 perm_file.txt

结果分析:所有者的 ​​rw-​​ 变为 ​​r--​​,所属组的 ​​r--​​ 变为 ​​rw-​​。

示例4:使用赋值符(=)直接设定 将权限精确设定为:所有者​​rwx​​,所属组​​rx​​,其他人​​r​​。

chmod u=rwx,g=rx,o=r perm_file.txt
ls -l perm_file.txt

运行结果:

-rwxr-xr-- 1 user group 0 Nov 21 23:00 perm_file.txt

结果分析:​​=​​ 操作符会忽略文件之前的权限,直接设置为指定值。


方法二:数字设定法 (Numeric Method) - 高效专业

数字设定法是实际工作和脚本编程中的首选,它使用三位数字简洁地定义了所有权限。

核心换算规则:

  • ​r​​ = 4
  • ​w​​ = 2
  • ​x​​ = 1
  • 无权限 = 0

将每组(所有者、所属组、其他人)的权限数字相加,得到一个0-7的数字。

数字

权限组合

含义

0

​---​

无任何权限

1

​--x​

仅执行

2

​-w-​

仅写

3

​-wx​

写和执行

4

​r--​

仅读

5

​r-x​

读和执行

6

​rw-​

读和写

7

​rwx​

读、写、执行(全部权限)

语法结构:chmod [所有者数字][组数字][其他数字] 文件名

实战演练

示例1:设置权限为 rwxrw--wx​ (763)

  • 所有者: ​​rwx​​ = 4 + 2 + 1 = 7
  • 所属组: ​​rw-​​ = 4 + 2 + 0 = 6
  • 其他人: ​​-wx​​ = 0 + 2 + 1 = 3
chmod 763 perm_file.txt
ls -l perm_file.txt

运行结果:

-rwxrw--wx 1 user group 0 Nov 21 23:00 perm_file.txt

结果分析:权限被精确地设置为我们计算的结果。

常用权限组合
  • 644​ (rw-r--r--): 普通文件的标准权限。所有者可读写,其他人只读。
chmod 644 perm_file.txt
  • 755​ (rwxr-xr-x): 可执行文件(脚本)和目录的标准权限。所有者拥有一切,其他人可读可执行(可进入目录)。
touch script.sh
chmod 755 script.sh
chmod 755 test_dir
ls -ld script.sh test_dir # -d 参数用于显示目录本身信息

运行结果:

drwxr-xr-x 2 user group 4096 Nov 21 23:00 test_dir
-rwxr-xr-x 1 user group    0 Nov 21 23:00 script.sh

终端颜色提示:在很多Linux发行版中,拥有执行权限的文件会显示为绿色,这是一种非常直观的辅助判断。

  • 777​ (rwxrwxrwx): 【高危操作,请谨慎使用!】 所有人都有全部权限。
chmod 777 perm_file.txt
ls -l perm_file.txt

运行结果:

-rwxrwxrwx 1 user group 0 Nov 21 23:00 perm_file.txt

安全警告:​​777​​ 意味着任何人都可以读取、修改甚至删除你的文件,这会带来巨大的安全风险。除非你非常清楚自己在做什么(例如,设置一个公共临时上传目录),否则应严格避免使用 ​​777​​ 权限。


知识小结

知识点

核心内容

考试重点/易混淆点

权限基础

文件权限分为所有者(u)、所属组(g)、其他人(o)三组

文件默认无执行权限,目录必须有执行权限才能进入

chmod 命令

修改文件/目录权限的工具

掌握文字法和数字法两种方式是基本要求

文字设定法

​chmod [ugoa][+-=][rwx] 文件​

面试高频,需清晰解释 ​​u/g/o/a​​​ 和 ​​+/-/=​​ 的含义

数字设定法

​chmod XYZ 文件​​ (XYZ是0-7的数字)

工作首选。核心是 ​​r=4, w=2, x=1​​ 的换算与累加

常用权限

​644​​​ (文件), ​​755​​ (脚本/目录)

777​ 权限的含义及其带来的安全风险是必考点

​chmod​​ 是每一位Linux用户和管理员的必备技能。文字设定法胜在直观,适合临时、小范围的修改;而数字设定法则以其高效和简洁,成为专业场景下的不二之选。理解并熟练运用这两种方法,你将能像一位精密的工程师,为你的文件系统构建起一道坚实而灵活的安全防线。

http://www.dtcms.com/a/434866.html

相关文章:

  • 太原网站建设总部地址青岛seo推广专员
  • 藏语自然语言处理入门 - 4 找相似的句子
  • ubuntu 环境
  • php网站开发 多少钱服务器网站建设软件有哪些
  • Python 图像中矩形四角二维坐标和归一化一维坐标相互转换
  • 做电商网站有什么用万网网站建设教程
  • 网站 设计风格wordpress 加链接地址
  • 中山市企业网站seo营销工具wordpress 搜索 自定义字段
  • 05、Python从入门到癫狂:数据库操作与其他
  • 网页制作报价徐州seo外包平台
  • jQuery简化了事件的绑定和解除,常用的方法有.on()和.off()
  • [Dify] 知识库切片逻辑解析:段落切分 vs 语义块切分,该怎么选?
  • [Windows] 发票识别工具。支持xml、pdf、ofd文件
  • 流量安全——基于Sentinel实现限流,熔断,降级
  • Semaphore GUI 详细介绍
  • 中山网站优化营销做专业课视频课的网站
  • 元表纪基于一个Excel表实现一键发货、打印面单
  • 企业外贸网站建设建设一个直播网站多少钱
  • 网站建设需要基础吗电子商务网站建设与管理是什么
  • 【LeetCode - 每日1题】换水问题1
  • 资深面试之MySQL 问题及解答(一)
  • 自定义脚手架
  • 云空间布置网站seo顾问赚钱吗
  • 网络设备中的硬件转发和软件转发
  • 永州建设网站公司网站开发费的税率是多少
  • js时间格式转化器
  • 攻防世界-Web-Web_php_unserialize
  • Deep Learning|01 RBF Network
  • 指针步长:C/C++内存操控的核心法则
  • 服装网站建设分析wordpress模板如何用