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

Linux 文件权限详解:chmod、chown、umask 到底怎么用?

Linux 文件权限详解:chmod、chown、umask 到底怎么用?

1. 前言

Linux 是多用户操作系统。一个文件能不能被读取、修改、执行,不只取决于文件本身,还取决于当前用户是谁、文件属于谁、文件属于哪个用户组,以及权限位如何设置。

本文围绕 Linux 权限模型展开,重点讲清楚三个命令:

chmod# 修改权限chown# 修改文件所属用户/用户组umask# 控制新建文件的默认权限

2. 如何查看文件权限

使用:

ls-l

示例:

-rwxr-xr--1root root1024May1810:00 run.sh

重点看第一段:

-rwxr-xr--

它可以拆成四部分:

- rwx r-x r-- | | | | | | | └── 其他用户权限 | | └──────── 所属用户组权限 | └────────────── 文件所属用户权限 └─────────────────── 文件类型

第一位表示文件类型:

符号含义
-普通文件
d目录
l软链接

后面 9 位是权限位,每 3 位一组。


3. rwx 分别表示什么

对于普通文件:

权限含义
r可以读取文件内容
w可以修改文件内容
x可以执行文件

对于目录:

权限含义
r可以查看目录下的文件名
w可以创建、删除、重命名目录内文件
x可以进入目录,访问目录内文件

目录的x权限非常重要。
如果目录没有x权限,即使有r权限,也可能无法进入。


4. chmod:修改权限

权限可以用数字表示:

权限数字
r4
w2
x1

三者相加得到一组权限:

数字权限
7rwx
6rw-
5r-x
4r–

常见权限:

chmod755run.sh# rwxr-xr-x,脚本/目录常用chmod644file.txt# rw-r--r--,普通文件常用chmod600id_rsa# rw-------,私钥常用chmod700scripts# rwx------,私有目录常用

也可以使用符号方式:

chmod+x run.sh# 给所有人增加执行权限chmodu+x run.sh# 只给所属用户增加执行权限chmodg-w file.txt# 去掉用户组写权限chmodo-r secret.txt# 去掉其他用户读权限

递归修改目录:

chmod-R755project

但不要随便递归chmod 777,这会让所有用户都能读、写、执行,风险很高。


5. chown:修改所属用户和用户组

查看文件所属用户和用户组:

ls-lfile.txt

示例:

-rw-r--r--1root root100file.txt

两个root分别表示:

所属用户:root 所属用户组:root

修改所属用户:

sudochownuser1 file.txt

同时修改用户和用户组:

sudochownuser1:user1 file.txt

递归修改目录:

sudochown-Rnginx:nginx /var/www/html

常见场景:

sudochown-Rmysql:mysql /var/lib/mysqlsudochown-Rwww-data:www-data /var/www/htmlsudochownuser:user ~/.ssh/id_rsa

6. umask:控制默认权限

umask决定新建文件和目录的默认权限。

查看当前 umask:

umask

常见结果:

0022

文件默认最大权限是666,目录默认最大权限是777

如果 umask 是022

新建文件权限:666 - 022 = 644 新建目录权限:777 - 022 = 755

所以常见默认结果是:

-rw-r--r-- file.txt drwxr-xr-xdir

临时修改 umask:

umask027

这会让新建文件和目录权限更严格。


7. 为什么不建议 chmod 777

chmod 777表示:

所有用户都能读、写、执行

它虽然能快速解决“Permission denied”,但安全风险很大:

  • Web 目录可能被写入后门文件;
  • 配置文件可能被普通用户修改;
  • 脚本可能被替换;
  • SSH 私钥权限过宽会被拒绝使用。

正确思路不是直接 777,而是先判断:

谁需要访问? 需要读、写还是执行? 文件所属用户和用户组是否正确?

8. 常见问题排查

8.1 脚本无法执行

./run.sh

报错:

Permission denied

检查权限:

ls-lrun.sh

添加执行权限:

chmod+x run.sh

8.2 无法写入目录

查看目录权限:

ls-ld/path/to/dir

目录写入通常需要:

w + x

只有写权限不够,还需要执行权限才能进入和操作目录。


8.3 程序没有权限读配置文件

检查文件所属用户:

ls-lconfig.yaml

如果服务以nginx用户运行,但文件只允许root读取,就会失败。
可以调整为:

sudochownroot:nginx config.yamlsudochmod640config.yaml

9. 小结

Linux 权限模型可以总结为:

chmod:改权限 chown:改归属 umask:控制默认权限

常用命令回顾:

ls-lls-lddirchmod755run.shchmod+x run.shchownuser:user file.txtchown-Rnginx:nginx /var/www/htmlumaskumask027

理解rwx、用户、用户组、umask 之后,大多数 Linux 权限问题都可以自己定位。

http://www.jsqmd.com/news/891208/

相关文章:

  • 2024最新IDM激活脚本完全指南:一键永久免费使用下载神器
  • 如何用UI-TARS桌面AI助手彻底告别重复电脑操作:终极免费自动化解决方案
  • 人工智能【第42篇】AutoML入门:自动化机器学习全流程
  • 异构感知终端全域统管方案
  • 1-16.调试图片是什么?怎么生成?
  • 降精度计算在射电天文成像中的应用:FPGA硬件加速实践
  • Win11Debloat:一键清理Windows系统垃圾,让你的电脑运行如飞
  • 省15%-30%!家用别墅电梯价格真实案例解析 - 资讯速览
  • 04 Self-Attention 详解:Q、K、V 到底在做什么?
  • ENVI 5.6 + COSI-Corr 地表形变分析环境搭建保姆级教程(含ENVI.cfg配置详解)
  • 如何用Real-ESRGAN实现专业级图像修复:3种简单方法让模糊照片变清晰
  • 借助taotoken解决ubuntu开发环境中大模型api密钥轮换与管理的麻烦
  • Git stash pop 深度解析:分支切换时的工作区状态精准还原
  • 国电华美车载式高压无局放,把试验室“开”到现场
  • Linux 日志系统入门:/var/log 和 journalctl 怎么排查问题?
  • OkHttp 与 RestTemplate 技术选型对比
  • 2026国内艺术涂料/艺术漆十大优选:瓷砖改色漆厂家+防脱落仿石漆厂家+外墙仿石漆/仿石涂料厂家推荐 - 栗子测评
  • 汕头闲置奢侈品变现指南:需求升温,套路暗藏?5家诚信店铺帮你安全变现 - 小仙贝贝
  • 一次通关结构体、位断、联合体和枚举这四大痛点
  • Taotoken API Key管理与访问控制功能的使用感受
  • TypeScript类型体操构建AI修心智能体生成引擎——从2300+豆包智能体到七境宇宙的类型安全实践
  • 珠海夏令营推荐:军博营地海滨研学 - 19120507004
  • 实现自己的IOC容器——Winter (一)Bean加载
  • 3步解锁ThinkPad黑苹果:让T480笔记本完美运行macOS
  • AIfES:嵌入式AI框架解析与实战,实现MCU端完整训练
  • 英雄联盟智能助手:你的排位赛数据决策专家
  • 2026年国产在线ORP仪品牌TOP10权威排行榜:技术参数、市场表现与实战选型全解析 - 水质仪表品牌排行榜
  • Steam挂刀行情站:24小时自动化交易监控系统的完整技术实现指南
  • Linux 后台任务详解:、nohup、jobs、systemd 的区别
  • 《多智能体系统实战:我用10个智能体搭建了一个自动赚钱的AI公司》