Linux文件基本属性【权限】

Linux文件基本属性

一、为什么Linux要划分文件权限?

Windows仅区分管理员、普通用户两类用户,日常几乎不会碰到权限报错。但Linux多用于服务器,单台服务器会同时交付开发、运维、测试等数十名人员共用。

通俗类比:服务器=合租公寓,文件=个人储物柜

  1. 文件所属用户(owner):储物柜主人,拥有文件全部控制权
  2. 文件所属用户组(group):合租室友群体,仅能有限访问文件
  3. 其他用户(other):公寓外来陌生人,默认无任何访问权限

Linux会针对以上三类用户,分别配置读、写、执行三项独立权限,规避多人共用服务器时误删、篡改他人文件的风险。

二、查看文件属性(ls -l)

执行ls -l查看文件详细属性,示例结果:-rwxr--r-- 1 root test 2048 Jun 10 10:00 test.txt

拆分前10位权限字符,零基础直接记忆:

  1. 第1位:文件类型:-普通文件、d目录文件夹、l软链接,其余类型无需掌握
  2. 2-4位(u属主):文件主人权限,r读、w写、x执行
  3. 5-7位(g属组):同组用户权限,权限规则和属主完全一致
  4. 8-10位(o其他):外部陌生用户权限,权限规则和属主完全一致

每个文件的属性由左边第一部分的 10 个字符来确定(如下图)。

小白核心误区

普通文件x权限:代表程序可以运行

目录文件夹x权限:代表可以进入、切换到该目录,90%新手权限拒绝报错都是缺失目录x权限

三、两大修改命令(小白精简用法,无冷门参数)

1、chown:修改文件所属用户、所属用户组

使用场景:root创建的文件,普通用户无法访问,需要转移文件归属

  1. 仅修改属主:chown 用户名 文件名
    示例:chown zhangsan test.txt,文件主人改为zhangsan,所属用户组不变
  2. 同时修改属主+属组:chown 用户名:组名 文件名
    示例:chown zhangsan:dev test.txt,主人zhangsan,dev组全员可访问
  3. 目录递归修改:chown -R 用户名:组名 目录路径
    注意:-R参数只用于目录,绝对不要用于单个文件,禁止对/etc系统目录递归修改

2、chmod:修改文件读写执行权限

两种使用方式,新手优先字母模式,企业工作优先数字模式

方式1:字母模式(无需计算,新手首选)

身份缩写:u属主、g属组、o其他、a全部用户

操作符号:+增加权限、-删除权限、=覆盖原有权限

实操1:所有用户增加读权限 chmod a+r test.txt

实操2:取消同组用户写入权限 chmod g-w test.txt

方式2:数字模式(企业通用)

权限数值对应:r=4、w=2、x=1,权限数值直接相加

  • 7(4+2+1):读写执行全权限
  • 6(4+2):读写权限(普通文件默认权限)
  • 5(4+1):读+进入权限(安全目录默认权限)
    通用实操:chmod 644 test.txt,属主读写,属组、其他人只读,线上业务文件标配权限

四、小白高频权限报错避坑

  1. 提示Permission denied:大概率不是文件所有者,或是缺少文件r读权限/目录x进入权限
  2. -R递归参数严禁乱用:改动系统/etc目录会直接导致服务器系统崩溃
  3. root账号特殊规则:root是超级管理员,无视全部文件权限限制,可随意修改所有文件

终极记忆口诀

一看二改归属三改权限,ls查属性、chown改主人、chmod改读写

需要我把这份纯文字压缩成一页速记短句,方便你直接背诵吗?


先纠正:正确命令是 chown (改所有者)、chmod(改权限),下面分用法、示例整理。

一、chown 修改文件/目录 所有者、所属组

语法

bash 复制代码
chown [选项] 用户名[:组名] 文件名/目录

常用示例

  1. 修改所有者
bash 复制代码
chown user1 test.txt

test.txt 归属用户 user1

  1. 同时改所有者 + 所属组
bash 复制代码
chown user1:group1 test.txt
  1. 只修改所属组
bash 复制代码
chown :group1 test.txt
  1. 递归修改(目录下所有文件/子目录)
    -R 参数
bash 复制代码
chown -R user1:group1 /home/testdir

二、chmod 修改权限(最常用)

两种用法:数字权限 / 符号权限

1. 数字权限(推荐,简单通用)

权限对应数值:

  • 读 r = 4
  • 写 w = 2
  • 执行 x = 1

三段权限:所有者 所属组 其他用户

常用权限组合
bash 复制代码
# 所有者读写执行,组和其他只读
chmod 744 test.txt

# 所有者读写,组和其他只读(文件最常用)
chmod 644 test.txt

# 目录常用:所有人可读进入
chmod 755 testdir

# 仅所有者可读写执行
chmod 700 testdir
递归改目录权限
bash 复制代码
chmod -R 755 /home/testdir

2. 符号权限(u/g/o/a + ±=)

  • u:所有者 g:组 o:其他人 a:所有人
  • + 加权限 - 减权限 = 设定权限

示例:

bash 复制代码
# 给所有者加执行权限
chmod u+x test.sh

# 取消其他用户写权限
chmod o-w test.txt

# 所有人添加读权限
chmod a+r test.txt

三、快速记忆&实战常用命令合集

bash 复制代码
# 1. 文件标准权限
chmod 644 文件名

# 2. 目录/脚本标准权限
chmod 755 目录/脚本.sh

# 3. 递归统一目录所有者+权限(建站/部署高频)
chown -R www:www /var/www/html
chmod -R 755 /var/www/html

# 4. 私密文件/目录(仅自己访问)
chmod 700 私密目录
chown root:root 私密文件

四、补充小技巧

  • 查看当前权限/所有者:ls -l
  • 普通用户只能改自己文件 权限,改系统文件/其他用户文件需要 sudo
bash 复制代码
sudo chmod 755 /root/test
sudo chown root:root /root/test
相关推荐
SWAGGY..2 小时前
Linux系统编程:(十三)环境变量
java·linux·算法
howard20052 小时前
3.9 初探Shell命令
linux·shell命令
zh路西法2 小时前
基于yaml-cpp的C++参数服务器设计2:多级参数配置
linux·服务器·c++
睡一觉就好了。4 小时前
make基础
linux
睡一觉就好了。4 小时前
gcc/g++
linux
Championship.23.244 小时前
Linux 3.0 串口机制深度解析:传统8250驱动与基础RS-232/485支持
linux·运维·服务器
顾喵5 小时前
VME总线详解:原理、架构、时序、协议、迭代、调试与实战应用
linux·网络协议
AI行业学习5 小时前
CC‑Switch v3.16.1 免费下载(Windows+macOS+Linux)、使用方法【2026.6.11】
linux·开发语言·windows·python·macos·前端框架·html
睡一觉就好了。5 小时前
vim基础操作
linux·编辑器·vim