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

Linux文件权限管理:chmod修改权限 与 chown修改所有者

1、chmod 命令

chmod(Change Mode)用于修改文件或目录的权限,控制“谁能做什么”。

1.1、涉及的概念

3+1种用户角色

角色符号描述
所有者u文件的创建者或指定用户
所属组g文件关联的用户组
其他用户o系统中除所有者和所属组外的用户
所有用户a上述三者的合集(u+g+o

3种权限

权限符号对文件的作用对目录的作用
r查看文件内容列出目录下的文件和子目录
w修改文件内容创建、删除、重命名目录内的文件
执行x运行可执行文件进入目录(如 cd dir

1.2、基本语法

支持两种配置模式:符号模式(直观易读,灵活增减权限)和八进制模式(高效快捷,快速设置权限 )。

1.2.1、符号模式

chmod  [选项] 权限模式 文件名/目录名

选项:
-R 选项,递归修改目录下所有文件和子目录。

权限模式:

  • + 增加权限:如给所有者添加写权限 u+w
  • - 移除权限:如给其他用户移除执行权限 o-x
  • = 精确设置权限:如将所属组权限设为读+执行 g=rx

示例:

  • 给文件 data.txt 的所有者添加写权限: chmod u+w data.txt
  • 给目录 project 的所有用户添加执行权限:chmod a+x project
  • 将文件 script.sh 的所属组权限设为读+写,其他用户仅读:chmod g=rw,o=r script.sh

1.2.2、八进制模式

chmod [选项] 八进制权限 文件名/目录名

权限模式:
每个用户的权限组合可转换为三位八进制数。
r=4、写w=2、执行x=1,累加起来就是这个用户角色的权限。

  • 所有者权限:读+写+执行 = 4+2+1 → 7
  • 所属组权限:读+执行 = 4+1 → 5
  • 其他用户权限:读 = 4 → 4
  • 组合后的权限754(对应 u=rwx, g=rx, o=r)。

示例:

  • 设置目录 public 的权限为 755(所有者可读写执行,其他用户可读执行):chmod 755 public
  • 递归修改目录 app 及其所有子文件/目录的权限为 644(文件可读可写,目录可读):chmod -R 644 app

1.3、注意

  • 目录的执行权限:若目录无执行权限(x),用户无法进入目录(如 cd dir 会报错),但仍可通过绝对路径访问目录内的文件(需文件本身有读权限)。

  • 文件的执行权限:只有给文件添加 x 权限后,才能通过 ./file 运行脚本或二进制文件。

  • 文件权限建议
    普通文件建议设置为 644(所有者可读写,其他用户可读)
    可执行文件设置为 755

  • 目录权限建议
    公共目录建议设置为 755(所有者可读写执行,其他用户可读执行)
    私人目录设置为 700(仅所有者可操作)。

  • 避免使用 777
    该权限允许所有用户读写执行,存在极大安全风险,仅在临时测试时使用。


2、chown 命令

chown(Change Owner)用于更改文件或目录的所有者和所属组,控制“谁拥有文件”。

2.1、基本语法

chown [选项] 新所有者:新所属组 文件名/目录名

-R 选项,递归修改目录下所有文件和子目录

  • 仅修改所有者chown new_user file.txt
  • 同时修改所有者和所属组chown new_user:new_group dir/
  • 仅修改所属组chown :new_group file

3、查看当前所有者和权限

通过 ls -l 命令查看文件、目录的详细信息。

示例
查看code目录的详细信息。
在这里插入图片描述

  • drwxr-xr-x

    • d,代表这是个目录
    • rwx,所有者的权限是“读、写、执行”
    • r-x:所属组的权限是“读、执行”
    • r-x:其他用户的权限是“读、执行”
  • ly:ly

    • 冒号前ly:用户名
    • 冒号后ly:所属组
http://www.xdnf.cn/news/279181.html

相关文章:

  • Android第三次面试总结之网络篇补充
  • 力扣-链表-2 两数相加
  • 情绪ABC——AI与思维模型【93】
  • # 基于SIFT的图像相似性检测与拼接:Python实现与解析
  • 精品,CentOS7.9 Yum安装Nginx,并配置JSON日志格式
  • Matlab/Simulink - BLDC直流无刷电机仿真基础教程(七) - 波形解析专题P2
  • Java 中使用 Callable 创建线程的方法
  • FastApi快速实践
  • React class 的组件库与函数组件适配集成
  • C++函数总结
  • 【Java学习笔记】方法重载
  • 以太坊智能合约开发框架:Hardhat v2 核心功能从入门到基础教程
  • 深入浅出数据库管理系统
  • 工程师 - 汽车分类
  • 【AI面试准备】掌握常规的性能、自动化等测试技术,并在工作中熟练应用
  • Jenkis安装、配置及账号权限分配保姆级教程
  • 高性能 WEB 服务器 Nginx:多虚拟主机实现!
  • llfc项目TCP服务器笔记
  • Linux常用命令30——groupadd创建新的用户组
  • 状态值函数与状态-动作值函数
  • MVP架构梳理
  • Dubbo(95)如何在社交网络中应用Dubbo?
  • 注意力机制
  • 2025年PMP 学习一
  • 文章记单词 | 第60篇(六级)
  • mysql中int(1) 和 int(10) 有什么区别?
  • STM32GPIO输入实战-按键key模板及移植
  • I.MX6U的GPIO配置和LED点灯实验。
  • leetcode:最小覆盖字符串
  • 【操作系统】吸烟者问题