Linux权限实战速成:用户切换/文件控制/安全配置15分钟掌握,解锁核心操作与权限模型内核逻辑



🔥@雾忱星: 个人主页
👀专栏:《C++学习之旅》《Linux学习指南》
💪学习阶段:C/C++、Linux
⏳"人理解迭代,神理解递归。"


文章目录


引言

对于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身份都可以直接操作,不受约束;当是普通用户 时,想要改变拥有者/所属组(此时ug当前的普通用户)不能直接改变 ,需要经目标用户的同意(当然,在 Linux 中只能sudo 提权)。

四、下一版本内容前瞻

在这里现提出一个问题:

我们已经在 2.2小节知道了三种权限标识各自对于文件/目录的作用,但是对于一个普通用户(假设不属于一个目录中的文件的拥有则、所属组)可以删除一个目录里的一个与他毫无干系的文件 ,这很奇怪,为什么可以随便动别人的东西?!!

在下篇文章将会为您解答相关知识,敬请期待~~!


总结

html 复制代码
🍓 我是晨非辰Tong!若这篇技术干货帮你打通了学习中的卡点:
👀 【关注】跟我一起深耕技术领域,从基础到进阶,见证每一次成长
❤️ 【点赞】让优质内容被更多人看见,让知识传递更有力量
⭐ 【收藏】把核心知识点、实战技巧存好,需要时直接查、随时用
💬 【评论】分享你的经验或疑问(比如曾踩过的技术坑?),一起交流避坑
🗳️ 【投票】用你的选择助力社区内容方向,告诉大家哪个技术点最该重点拆解
技术之路难免有困惑,但同行的人会让前进更有方向~愿我们都能在自己专注的领域里,一步步靠近心中的技术目标!

结语:

本文围绕Linux用户类型与权限实操展开,从用户区分到权限解读,再到核心指令实操,聚焦实用操作。掌握本文内容,就能解决大部分Linux权限报错问题,轻松应对基础的用户管理与权限修改需求。

记得动手实操巩固指令用法,下一篇我们将拆解权限实操中的隐藏疑问,继续解锁Linux入门技能~

相关推荐
xiaozenbin2 小时前
宝塔8.5在nginx中部署动态php页面出现找不到页面处理
运维·nginx·php
草莓熊Lotso2 小时前
Linux 进程创建与终止全解析:fork 原理 + 退出机制实战
linux·运维·服务器·开发语言·汇编·c++·人工智能
枫叶丹42 小时前
【Qt开发】Qt系统(九)-> Qt TCP Socket
c语言·开发语言·网络·c++·qt·tcp/ip
Agentcometoo2 小时前
2026 AI 元年|智能体来了:Agent Native 正在取代 Copilot,定义下一代 AI 公司
人工智能
JERRY. LIU3 小时前
Mac 笔记本通用快捷键大全
linux·macos
weixin_669545203 小时前
持续2.7A峰值5A有刷直流马达正反转驱动芯片TC1305E
人工智能·嵌入式硬件·硬件工程·信息与通信
信创新态势4 小时前
财经媒体研判:内存疯涨多米诺效应推倒,服务器涨价箭在弦上
运维·服务器·媒体
007php0074 小时前
PHP与Java项目在服务器上的对接准备与过程
java·服务器·开发语言·分布式·面试·职场和发展·php
EverydayJoy^v^4 小时前
RH134简单知识点——第6章——管理SELinux安全性
linux·服务器·网络