

🔥@雾忱星: 个人主页
👀专栏:《C++学习之旅》、《Linux学习指南》
💪学习阶段:C/C++、Linux
⏳"人理解迭代,神理解递归。"
文章目录
- 引言
- 一、先分清:Linux的两种核心用户类型
-
- [1.1 两种用户类型详解](#1.1 两种用户类型详解)
- [1.2 重点:两种用户间的切换](#1.2 重点:两种用户间的切换)
- [二、再搞懂:Linux 权限模型的三层结构](#二、再搞懂:Linux 权限模型的三层结构)
-
- [2.1 文件的三种访问角色](#2.1 文件的三种访问角色)
- [2.2 Linux 三种权限标识详解](#2.2 Linux 三种权限标识详解)
- [三、重点实操:Linux 的权限修改](#三、重点实操:Linux 的权限修改)
-
- [3.1 必懂:权限的两种表达方式](#3.1 必懂:权限的两种表达方式)
- [3.2 指令修改权限](#3.2 指令修改权限)
-
- 3.2.1【chmod】:修改文件/目录权限
- 3.2.2【chown】:修改文件/目录的拥有者
- [3.2.3 chgrp:修改文件/目录的所属组](#3.2.3 chgrp:修改文件/目录的所属组)
- 四、下一版本内容前瞻
- 总结
引言
对于Linux小白而言,入门最易踩坑的就是"权限报错"------明明输对了指令,却提示无法执行、权限不足。
其实核心原因很简单:没分清用户类型、没搞懂权限分配逻辑。本文专为小白梳理,从用户类型区分到权限实操,一步步拆解,帮你避开权限雷区,轻松上手Linux基础操作。
一、先分清:Linux的两种核心用户类型
Linux用户分为两种 ,权限差异极大,小白入门先分清,避免后续操作报错------所有权限分配、修改,都和账号类型直接相关。
1.1 两种用户类型详解
- root 用户(超级用户): Linux 系统的"管理员",拥有系统最高权限,能执行任何命令(创建/删除用户、修改任何文件权限、删除系统核心文件等),相当于 Windows 的
"Administrator"。命令提示符为#。 - 普通用户: 系统的"普通使用者",权限有限,只能操作自己创建的文件/目录,无法修改系统配置、无法修改其他用户的文件,也无法执行高危命令(比如删除系统文件)。命令提示符:$。
【root 创建普通用户】:指令adduser
bash
#当前是root用户
[root@VM-0-6-centos ~]# pwd
/root
#==============
#指令创建普通用户
#==============
[root@VM-0-6-centos ~]# adduser tac
[root@VM-0-6-centos ~]# passwd tac
Changing password for user tac.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
注意: 在修改普通用户的密码是,在屏幕上是不回显的,一定要自己记住!!
1.2 重点:两种用户间的切换
普通用户权限不足时 (比如想修改其他用户的文件、创建新用户,后面说),需要切换到root用户,两种切换方法,建议优先掌握第一种。
【切换指令:】
- su: 切换用户身份,不改变环境
- su -: 切换用户+环境
- sudo: 临时为普通用户提权,不切换用户
补充: 使用
sudo,要保证目标用户在 "白名单" 中,需要管理员授权,也能够查看谁出了问题。
语法: su 用户名
bash
#==========================================
#情景一:root切换普通用户--su 用户名(不需要密码)
#环境不变,仍是root目录下
#==========================================
[root@VM-0-6-centos ~]# whoami
root
[root@VM-0-6-centos ~]# su tac
[tac@VM-0-6-centos root]$ whoami
tac
[tac@VM-0-6-centos root]$ pwd
/root
#===================================================
#情景二:一开始以普通用户登录,切换root-- su root(需要密码)
#环境不改变,仍为普通用户的家目录
#===================================================
[tac@VM-0-6-centos root]$ whoami
tac
[tac@VM-0-6-centos root]$ su root
Password:
[root@VM-0-6-centos ~]# whoami
root
[root@VM-0-6-centos ~]# pwd
/home/tac
语法 :su - 用户名
bash
#==========================================
#情景一:root切换普通用户--su - 用户名(不需要密码)
#环境改变,是普通用户家目录下
#==========================================
[root@VM-0-6-centos ~]# whoami
root
[root@VM-0-6-centos ~]# su - tac
[tac@VM-0-6-centos root]$ whoami
tac
[tac@VM-0-6-centos root]$ pwd
/home/tac
#===================================================
#情景二:一开始以普通用户登录,切换root-- su root(需要密码)
#环境改变,为root家目录
#===================================================
[tac@VM-0-6-centos root]$ whoami
tac
[tac@VM-0-6-centos root]$ su - root
Password:
[root@VM-0-6-centos ~]# whoami
root
[root@VM-0-6-centos ~]# pwd
/root
【查看用户类型】:指令whoami
bash
[root@VM-0-6-centos ~]# whoami
root
[tac@VM-0-6-centos root]$ whoami
tac

二、再搞懂:Linux 权限模型的三层结构
Linux 是多用户、多任务操作系统,权限分配的核心是"访问者"------每个文件/目录都有对应的"所有者、所属组、其他用户",权限就是给这三类主体分别分配的。
2.1 文件的三种访问角色
-
所有者(u-User): 文件/目录的创建者,拥有最高优先级的权限(比如自己创建的文件,默认能读写)。
-
所属组(g-group): 所有者所在的用户组,组内其他用户共享该组的权限(比如团队共享文件,可给组分配读写权限)。
-
其他用户(o-Other): 既不是所有者,也不属于所属组的用户,权限最低(比如系统中其他无关用户)。
【查看文件信息】:
bash
[root@VM-0-6-centos ~]# ll
total 20
drwxr-xr-x 4 root root 4096 Jan 20 13:54 B
drwxr-xr-x 3 root root 4096 Jan 20 13:28 lesson
-rw-r--r-- 1 root root 165 Jan 20 13:52 lesson.tgz
-rw-r--r-- 1 root root 372 Jan 20 15:17 temp.txt
-rw-r--r-- 1 root root 2900 Jan 19 21:38 test.txt
#---权限--- User Group 不显示other
2.2 Linux 三种权限标识详解
Linux权限分为三种:读(r)、写(w)、执行(x),权限会分别分配给"所有者、所属组、其他用户"。
| 权限标识 | 权限含义 | 文件场景 | 目录场景 |
|---|---|---|---|
| r(read) | 读权限 | 能查看文件内容(cat、more) | 能查看目录下的文件(ls) |
| w(write) | 写权限 | 能修改、删除文件内容(vim编辑器) | 能创建、删除目录(touch) |
| x(execute) | 写权限 | 能执行文件(shell脚本、可执行程序) | 能进入目录(cd) |
补充:
x可执行,具有可执行权限 != 可以执行,可以执行 = 具有可执行权限 + 本身为一个二进制可执行文件
在 Linux 中,规定将权限标识三个分为一组分配给访问者:

【整理理解】:权限 = 角色 + 目标事物的属性
- 角色: 人
- 属性: 文件权限
rwx,文件的属性
【文件类型】:在权限标识的最前面
| d:文件夹 | -:普通文件 | p:管道文件 | c:字符设备文件 |
|---|---|---|---|
| l:软链接 | b:块设备文件 | s:套接口文件 |
三、重点实操:Linux 的权限修改
在学习修改权限之前,必须先吃透权限的两种核心表达方式------字符法和数字法,这是后续使用指令修改权限的基础。每种表达方式都对应权限的实际作用,学会解读就能快速判断"谁能对文件/目录做什么操作",再用指令修改就会得心应手。
3.1 必懂:权限的两种表达方式
Linux 权限的核心就是"给拥有者、所属组、其他用户分配三种权限",两种表达方式只是描述权限的不同形式,最终都对应相同的权限作用。
【方式一】:字符型
在前面已经展示过:
bash
drwxr-xr-x 3 root root 4096 Jan 20 13:28 lesson
-rw-r--r-- 1 root root 165 Jan 20 13:52 lesson.tgz
字符法的常用组合(结合权限作用记忆)
rw-r--r-- |
文件默认 | 所有者读写,其他人只读(保护文件) |
|---|---|---|
-rw------- |
目录默认 | 所有者全权限,其他人只读+执行(共享,不允许修改) |
-rwxrwxrwx |
危险组合 | 所有用户全权限 |
bash
# :所有者读写,其他人只读(保护文件不被误改)
drwxr-xr-x # 目录默认:所有者全权限,其他人只读+执行(方便共享查看,不允许修改)
rw------- # 私人文件:只有所有者能读写,其他人无权限(安全,比如密码配置文件)
rwxrwxrwx # 危险组合:所有用户都有全权限(任何人可修改、删除,不建议使用)
【方式二】:数字法
核心特点: 用数字对应权限 (r=4,w=2,x=1,也就是对应二进制数),三组权限分别计算总和,适合一次性修改所有用户权限(体现"批量分配")。
计算规则: 每组用户的权限,将对应数字相加,得到该组用户的权限数字。
【常用数字组合】:
| 数字法 | 字符型 | 应用对象 | 权限含义 |
|---|---|---|---|
| 644 | rw-r--r-- |
文件默认 | 所有者读写(6),其他人只读(4),保护文件安全 |
| 755 | drwxr-xr-x |
目录默认 | 所有者全权限(7),其他人读+执行(5),方便共享 |
| 700 | rwx------ |
私人目录 | 只有所有者有全权限(7),其他人无权限(0),极度安全 |
| 777 | rwxrwxrwx |
危险组合 | 所有用户全权限(7),任何人可修改删除,禁止用于重要文件/目录 |
Linux 常用的三个权限修改指令:chmod(修改权限)、chown(修改所有者)、chgrp(修改所属组)。
3.2 指令修改权限
3.2.1【chmod】:修改文件/目录权限
- 字符法:
原理: 用字符指定"主体+权限操作",格式:chmod [选项] [主体] ±=[权限] [文件/目录]
| 主体:u(拥有者)、g(所属组)、o(其他用户)、a(所有用户) | 操作:+(添加权限)、-(删除权限)、=(覆盖权限) |
|---|
bash
#============
#查看原有权限
#============
[root@VM-0-6-centos ~]# ll
total 16
drwxr-xr-x 3 root root 4096 Jan 20 13:28 lesson
#========================
#chmod分别改变三种访问者的权限
#========================
[root@VM-0-6-centos ~]# chmod u-rwx lesson/
[root@VM-0-6-centos ~]# chmod g+w lesson/
[root@VM-0-6-centos ~]# chmod o-rx lesson/
[root@VM-0-6-centos ~]# ll
total 16
d---rwx--- 3 root root 4096 Jan 20 13:28 lesson
#
#chmod一次性改变所有用户权限
[root@VM-0-6-centos ~]# chmod a+rwx lesson/
[root@VM-0-6-centos ~]# ll
total 16
drwxrwxrwx 3 root root 4096 Jan 20 13:28 lesson
[root@VM-0-6-centos ~]# chmod a-rwx lesson/
[root@VM-0-6-centos ~]# ll
total 16
d--------- 3 root root 4096 Jan 20 13:28 lesson
- 数字法:
原理:r = 4、w = 2、x = 1,三组权限分别计算总和,格式:chmod [选项] [数字组合] [文件/目录]
bash
#查看原有权限:000
[root@VM-0-6-centos ~]# ll
total 16
d--------- 3 root root 4096 Jan 20 13:28 lesson
#为所有用户加上读写权限
[root@VM-0-6-centos ~]# chmod 666 lesson/
[root@VM-0-6-centos ~]# ll
total 16
drw-rw-rw- 3 root root 4096 Jan 20 13:28 lesson
#重新设置:u改为只读、g改为只写、o改为只执行
[root@VM-0-6-centos ~]# chmod 421 lesson/
[root@VM-0-6-centos ~]# ll
total 16
dr---w---x 3 root root 4096 Jan 20 13:28 lesson
#===============
#-R:递归改变权限
#===============
[root@VM-0-6-centos ~]# pwd
/root
[root@VM-0-6-centos ~]# chmod -R 000 B
[root@VM-0-6-centos ~]# ll -R B
B:
total 4
d--------- 3 tac root 4096 Jan 15 10:06 b1
B/b1:
total 4
d--------- 2 tac root 4096 Jan 15 10:06 b2
B/b1/b2:
total 0
3.2.2【chown】:修改文件/目录的拥有者
用法: 只有root用户能修改所有者,格式: chown [选项] [新所有者] [文件/目录]
bash
#======================
#修改单个文件/目录的拥有者
#======================
[root@VM-0-6-centos ~]# chown tac lesson/
[root@VM-0-6-centos ~]# ll
total 16
dr---w---x 3 tac root 4096 Jan 20 13:28 lesson
[root@VM-0-6-centos ~]# chown root lesson/
[root@VM-0-6-centos ~]# ll
total 16
dr---w---x 3 root root 4096 Jan 20 13:28 lesson
#==================================
#-R:递归修改目录及子文件/文件夹的拥有者
#==================================
[root@VM-0-6-centos ~]# pwd
/root
#递归查看目录拥有者
[root@VM-0-6-centos ~]# ll -R B
B:
total 4
drwxr-xr-x 3 root root 4096 Jan 15 10:06 b1
B/b1:
total 4
drwxr-xr-x 2 root root 4096 Jan 15 10:06 b2
B/b1/b2:
total 0
#递归改变
[root@VM-0-6-centos ~]# chown -R tac B
[root@VM-0-6-centos ~]# ll -R B
B:
total 4
drwxr-xr-x 3 tac root 4096 Jan 15 10:06 b1
B/b1:
total 4
drwxr-xr-x 2 tac root 4096 Jan 15 10:06 b2
B/b1/b2:
total 0
3.2.3 chgrp:修改文件/目录的所属组
格式: chgrp 新所属组 文件/目录;和chown类似,目录需加-R递归修改。
bash
#单独修改所属组
[root@VM-0-6-centos ~]# ll
total 16
dr---w---x 3 root root 4096 Jan 20 13:28 lesson
[root@VM-0-6-centos ~]# chgrp tac lesson/
[root@VM-0-6-centos ~]# ll
total 16
dr---w---x 3 root tac 4096 Jan 20 13:28 lesson
[root@VM-0-6-centos ~]# chgrp root lesson/
[root@VM-0-6-centos ~]# ll
total 16
dr---w---x 3 root root 4096 Jan 20 13:28 lesson
#递归修改所属组
[root@VM-0-6-centos ~]# ll -R B
B:
total 4
d--------- 3 tac root 4096 Jan 15 10:06 b1
B/b1:
total 4
d--------- 2 tac root 4096 Jan 15 10:06 b2
B/b1/b2:
total 0
[root@VM-0-6-centos ~]# chgrp -R tac B
[root@VM-0-6-centos ~]# ll -R B
B:
total 4
d--------- 3 tac tac 4096 Jan 15 10:06 b1
B/b1:
total 4
d--------- 2 tac tac 4096 Jan 15 10:06 b2
B/b1/b2:
total 0
补充:关于三个指令的注意事项
- 当使用
chmod时,不管你的用户身份是什么,可以直接操作,因为相当于该你自己的东西。 - 当使用
chown/chgrp时,如果是root身份都可以直接操作,不受约束;当是普通用户 时,想要改变拥有者/所属组(此时u、g当前的普通用户)不能直接改变 ,需要经目标用户的同意(当然,在 Linux 中只能sudo提权)。
四、下一版本内容前瞻
在这里现提出一个问题:
我们已经在 2.2小节知道了三种权限标识各自对于文件/目录的作用,但是对于一个普通用户(假设不属于一个目录中的文件的拥有则、所属组)可以删除一个目录里的一个与他毫无干系的文件 ,这很奇怪,为什么可以随便动别人的东西?!!
在下篇文章将会为您解答相关知识,敬请期待~~!
总结
html
🍓 我是晨非辰Tong!若这篇技术干货帮你打通了学习中的卡点:
👀 【关注】跟我一起深耕技术领域,从基础到进阶,见证每一次成长
❤️ 【点赞】让优质内容被更多人看见,让知识传递更有力量
⭐ 【收藏】把核心知识点、实战技巧存好,需要时直接查、随时用
💬 【评论】分享你的经验或疑问(比如曾踩过的技术坑?),一起交流避坑
🗳️ 【投票】用你的选择助力社区内容方向,告诉大家哪个技术点最该重点拆解
技术之路难免有困惑,但同行的人会让前进更有方向~愿我们都能在自己专注的领域里,一步步靠近心中的技术目标!
结语:
本文围绕Linux用户类型与权限实操展开,从用户区分到权限解读,再到核心指令实操,聚焦实用操作。掌握本文内容,就能解决大部分Linux权限报错问题,轻松应对基础的用户管理与权限修改需求。
记得动手实操巩固指令用法,下一篇我们将拆解权限实操中的隐藏疑问,继续解锁Linux入门技能~
