网站首页 > 技术教程 正文
在 Linux 的世界里,权限就是秩序的基础。一个系统的安全性、文件访问策略、用户协作边界,无一不依赖于文件和目录权限的精细控制。而 chmod(Change Mode)命令,正是你手中调整权限的利剑。
这篇文章将从最基础的权限概念讲起,深入剖析 chmod 的使用方式,包括数字表示法、符号表示法、权限继承、批量修改、常见问题,以及实际运维案例,力求让你对权限操作了然于心、运用自如。
一、Linux 权限基础:三种角色 + 三类权限
每个文件和目录在 Linux 中都绑定有以下三种用户角色:
- owner:文件所有者,通常是创建文件的用户。
- group:所属用户组。
- others:系统中其他用户。
每种角色又对应三类基本权限:
权限 | 符号 | 含义 |
读取 | r | 查看文件内容,列出目录内容 |
写入 | w | 修改文件内容,创建/删除目录内文件 |
执行 | x | 执行文件(如脚本),进入目录 |
可以通过 ls -l 查看:
$ ls -l example.sh
-rwxr-xr-- 1 user group 1234 May 29 10:00 example.sh
第一列解释如下:
- rwx r-x r-- │ │ │ └── 其他人权限(others):读取│ │ └───── 用户组权限(group):读取 + 执行│ └──────── 文件所有者权限(owner):读取 + 写入 + 执行└────────── 文件类型(- 为普通文件,d 为目录)
二、数字 VS 符号:chmod 的两种用法
1. 数字表示法(最常用)
每个权限对应一个值:
- r = 4
- w = 2
- x = 1
组合后求和:
权限组合 | 数字表示 |
rwx | 7 |
rw- | 6 |
r-x | 5 |
r-- | 4 |
--- | 0 |
使用示例:
chmod 755 script.sh
解释:
- 7 → 所有者 rwx
- 5 → 用户组 r-x
- 5 → 其他人 r-x
目录建议权限:
- 普通文件:644(rw-r--r--)
- 可执行文件:755(rwxr-xr-x)
- 目录:755 或 700(rwxr-xr-x / rwx------)
2. 符号表示法(更灵活)
语法格式:
chmod [角色][操作][权限] 文件名
- 角色:u(用户)、g(组)、o(其他人)、a(全部)
- 操作:+(添加)、-(删除)、=(赋值)
- 权限:r、w、x
示例:
chmod u+x hello.sh # 给所有者添加执行权限
chmod go-w data.txt # 去掉组和其他人的写权限
chmod a=r file.log # 所有角色仅有读权限
三、应用场景实战
1. 只允许所有者访问的私密文件夹
mkdir secrets
chmod 700 secrets
此时其他用户无法 cd 进入该目录。
2. 给脚本文件添加执行权限
chmod +x deploy.sh
相当于 chmod ugo+x deploy.sh,适用于快速授权。
3. 去掉敏感配置的组写权限
chmod g-w /etc/ssh/sshd_config
避免配置文件被意外修改。
4. 批量修改多个文件权限
chmod 644 *.conf
chmod +x *.sh
配合 find 更强大:
find . -type f -name "*.sh" -exec chmod +x {} \;
四、特殊权限:s、t 和 SGID
除了基本权限外,还有三种特殊模式:
权限位 | 名称 | 作用与应用 |
s(Setuid) | 让执行程序以文件所有者身份运行 | 应用于如 passwd 命令 |
s(Setgid) | 目录中创建的文件继承该组 | 团队协作常用 |
t(Sticky Bit) | 只允许文件拥有者删除 | 应用于 /tmp |
示例:
chmod u+s /usr/bin/somebinary # 设置 setuid
chmod g+s /data/shared # 设置 setgid
chmod +t /tmp # 设置 sticky bit
配合 ls -l 可以看到特殊位:
drwxrwsr-x 2 dev team 4096 May 29 12:00 /data/shared
五、深入理解目录权限组合的行为
权限 | 作用说明 |
r | 能否列出目录中的文件(如 ls) |
w | 能否在该目录中创建/删除/重命名文件 |
x | 能否 cd 进入该目录、访问其中内容 |
示例说明:
- r-x:能进入目录并列出内容,但无法创建文件。
- --x:只能进入目录,但不知道目录内有什么(除非你知道具体文件名)。
快速对照表
chmod 值 | 含义 | 应用场景 |
777 | 所有人可读写执行 | 开发测试环境(不推荐生产使用) |
755 | 所有者全权限,其它只读执行 | 公共脚本或服务程序 |
700 | 所有者独享 | 私人脚本、文件夹 |
644 | 所有者可读写,其它只读 | 配置文件、文档 |
600 | 所有者只读写,其它无权限 | 私密密钥文件(如 .ssh/id_rsa) |
权限陷阱与排错技巧
1. 有执行权限但运行时报“权限被拒绝”?
可能的原因:
- 缺少“x”权限的目录。
- 文件系统挂载为 noexec。
- 文件属于 root,当前用户无权运行。
2. 目录权限设置正确但文件无法创建?
检查是否有 w 权限和 x 权限:
chmod u+wx /path/to/dir
3. 使用 chmod 无效?
文件可能是符号链接,建议使用 -h 参数:
chmod -h 644 symlink
权限即责任,掌握 chmod 是每个 Linux 用户的必修课
在 Linux 中,每一次权限的修改都意味着一次对资源访问策略的定义。chmod 不仅是文件安全的基础工具,更是运维、开发、安全团队日常工作的关键部分。
掌握 chmod,你就拥有了管理整个系统权限秩序的钥匙。
猜你喜欢
- 2025-06-04 Linux mkdir命令:创建目录(文件夹)
- 2025-06-04 Windows 10上安装使用Linux文件系统完整指南
- 2025-06-04 Linux ln命令:建立链接(硬链接和软链接)文件
- 2025-06-04 Linux基本命令(Linux基本命令实训目的100字)
- 2025-06-04 1s 创建100G文件,最快的方法是?(windows创建1g文件命令)
- 2025-06-04 Linux创建目录&文件夹(mkdir命令)
- 2025-06-04 Linux 中如何创建文件符号链接(linux符号链接文件格式)
你 发表评论:
欢迎- 最近发表
-
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
- linux移植(Linux移植freemodbus)
- 独家解读:Win10预览版9879为何无法识别硬盘
- 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)
- Docker镜像瘦身(docker 减小镜像大小)
- 在linux上安装ollama(linux安装locale)
- 渗透测试系统Kali推出Docker镜像(kali linux渗透测试技术详解pdf)
- Linux环境中部署Harbor私有镜像仓库
- linux之间传文件命令之Rsync傻瓜式教程
- 解决ollama在linux中安装或升级时,通过国内镜像缩短安装时长
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)