Linux权限

article/2025/8/2 21:13:23

文章目录

  • 一、Linux用户权限
    • 1.1权限的概念
    • 1.2 用户分类##
    • 1.3切换用户
    • 1.4sudo提权
  • 二、Linux文件权限
    • 2.1文件属性
    • 2.2文件的类型
    • 2.3 基本权限##
    • 2.4权限划分
  • 三、Linux文件权限的修改方法
    • 3.1 chmod
      • 3.1.1操作符
      • 3.1.2数字模式
    • 3.2chown
    • 3.3chgrp
    • 3.4目录文件权限的具体剖析
      • 3.4.1目录的读权限
      • 3.4.2目录的写权限
      • 3.4.3目录的执行权限
  • 四、umask
    • 4.1umask值
    • 4.2修改umask值
  • 五、粘滞位
    • 5.1设置粘滞位
    • 5.2粘滞位的注意事项

一、Linux用户权限

1.1权限的概念

一件事情是否允许被你做,取决于你的身份是什么,比如你是学生你就不允许参与政府的管理,还取决于事务的属性是什么,比如一个面包,它不可能拿去当书读
1.权限认证的是身份
2.权限也和事务的"属性"有关

1.2 用户分类##

root:超级用户
超级用户的命令行提示符是’#’

[root@hcss-ecs-000a ~]#

普通用户:我们新建的用户,adduser
普通用户的命令行提示符是’$’

[wyx@hcss-ecs-000a ~]$ 

1.3切换用户

[wyx@hcss-ecs-000a lesson1]$ su - root
Password: 

su 指令
功能:用于切换当前用户身份,可从普通用户切换到其他普通用户,也可从普通用户或 root 用户切换到 root 用户。
格式
切换到其他用户(需要输入目标用户的密码):su [选项] [用户名]
直接切换到 root 用户(需要输入 root 密码):su 或 su -
选项说明:
- / -l(完全变身)
作用:彻底变成目标用户(就像TA亲自登录)
读取个人配置(如.bashrc)
进入它的专属家目录
使用它的所有环境设置
-c(临时打工)
作用:借用用户身份干件事,干完立刻恢复自己身份
适合单次任务(如重启服务)
命令要用引号包住
不改变当前工作目录和环境

1.4sudo提权

那么我们想要短暂的对一条命令提升权限怎么办

[wyx@hcss-ecs-000a lesson1]$ sudo whoami

sudo 指令
功能:允许经过授权的普通用户以 root 用户或其他指定用户的身份执行特定命令,而无需切换用户身份。一般用于临时获取高权限执行一些需要管理员权限才能执行的操作。
格式:sudo [选项] 命令

-u:指定以哪个用户的身份执行命令,默认是以 root 用户身份执行。例如 sudo -u testuser ls /home/testuser 表示以 testuser 用户身份执行 ls /home/testuser 命令。
-l:列出当前用户可以使用 sudo 执行的命令列表。
-s:以交互方式启动一个新的 shell,在新 shell 中可以执行多个命令,且拥有相应的权限。

二、Linux文件权限

2.1文件属性

当我们使用ls-l的时候可以查看文件的属性
接下来我们的解析都围绕下面代码的展开

[wyx@hcss-ecs-000a ~]$ ls -l
total 12
-rw-rw-r-- 1 wyx wyx  827 May 25 09:08 install.sh
drwxrwxr-x 2 wyx wyx 4096 May 25 18:51 lesson1
drwxrwxr-x 4 wyx wyx 4096 May 31 10:21 lesson2

2.2文件的类型

-:普通文件(文本,可执行程序,库)
d:目录文件
b:块设备文件(磁盘文件)
c:字符设备文件(键盘,显示器文件等)
p:管道文件
s:套接字文件

Linux系统中文件名后缀没有直接的意义。也不是不代表它不用

[wyx@hcss-ecs-000a lesson1]$ mv test.c test.txt
[wyx@hcss-ecs-000a lesson1]$ g++ test.txt
test.txt: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status

g++是一款编译器,它就需要编译的时候带上后缀,不代表其他Linux系统上运行的其他软件不需要后缀

[wyx@hcss-ecs-000a lesson1]$ ./a.out
hello world
[wyx@hcss-ecs-000a lesson1]$ mv a.out a.tuy
[wyx@hcss-ecs-000a lesson1]$ ./a.tuy
hello world

但是Linux系统在编译程序的时候是不用关心后缀的

2.3 基本权限##

r:可读
w:可写
x:可执行
-:对应的权限位置,没有权限

2.4权限划分

Linux又将权限划分成三种角色

u:代表文件所有者(user)
g:代表文件所属组(group)
o:代表其他用户(others)
a:代表所有用户(all

root和普通用户都可以扮演这三种角色
那我们通过一个实例来阐述一下这个观念
在这里插入图片描述
比如我们有一个比赛,有两支队伍小明为组长和小王为组长的队伍
对于小明队来说,小王队属于其他人,不能查看自己项目的内容
但是今天小明队新加入一个队员,她想看一下队伍的项目具体内容进行到哪一步了,那么小明作为拥有者,就要对她开放权限,因为她是小明这个组长的成员也就是所属组
通过这个我们就能对文件的属性展开剖析了
在这里插入图片描述
为什么没有其他人呢
因为其他人的数量可能过多,我们可以拿这个身份匹配它是不是拥有者和所属组,不是这两个就是其他人
所以rw-就是一个角色拥有读写权限但是没有可执行权限
但是root不受权限的约束

三、Linux文件权限的修改方法

3.1 chmod

功能:用于改变文件或目录的访问权限。
格式:chmod [参数] 权限模式 文件名

3.1.1操作符

+:添加权限

[wyx@hcss-ecs-000a lesson1]$ ll
total 0
--w-rw-r-- 1 wyx wyx 0 May 25 18:51 text.txt
[wyx@hcss-ecs-000a lesson1]$ chmod u+r text.txt
[wyx@hcss-ecs-000a lesson1]$ ll
total 0
-rw-rw-r-- 1 wyx wyx 0 May 25 18:51 text.txt

-:移除权限

[wyx@hcss-ecs-000a lesson1]$ chmod g-rw text.txt
[wyx@hcss-ecs-000a lesson1]$ ll
total 0
-rw----r-- 1 wyx wyx 0 May 25 18:51 text.txt

=:设置权限

[wyx@hcss-ecs-000a lesson1]$ chmod o=rwx text.txt
[wyx@hcss-ecs-000a lesson1]$ ll
total 0
-rw----rwx 1 wyx wyx 0 May 25 18:51 text.txt

合并操作

[wyx@hcss-ecs-000a lesson1]$ chmod u+x,g+rwx,o-rwx text.txt
[wyx@hcss-ecs-000a lesson1]$ ll
total 0
-rwxrwx--- 1 wyx wyx 0 May 25 18:51 text.txt

或者是

[wyx@hcss-ecs-000a lesson1]$ chmod a+rwx text.txt
[wyx@hcss-ecs-000a lesson1]$ ll
total 0
-rwxrwxrwx 1 wyx wyx 0 May 25 18:51 text.txt

3.1.2数字模式

rwx可以用二进制来表示
0表示没有这个权限
1表示有这个权限
像rw-用110就可以来表示
那么rw-rw-rw-用二进制转换十进制就表示666

[wyx@hcss-ecs-000a lesson1]$ chmod 666 text.txt
[wyx@hcss-ecs-000a lesson1]$ ll
total 0
-rw-rw-rw- 1 wyx wyx 0 May 25 18:51 text.txt

3.2chown

功能:chown 用于更改文件或目录的所有者和所属组
格式:chown [参数] [所有者][:所属组] 文件名

[root@hcss-ecs-000a lesson1]# chown root text.txt
[root@hcss-ecs-000a lesson1]# logout
[wyx@hcss-ecs-000a lesson1]$ cat text.txt
[wyx@hcss-ecs-000a lesson1]$ ls
text.txt
[wyx@hcss-ecs-000a lesson1]$ chmod 700 text.txt
chmod: changing permissions of ‘text.txt’: Operation not permitted
[wyx@hcss-ecs-000a lesson1]$ ll
total 0
-rw-rw-rw- 1 root wyx 0 May 25 18:51 text.txt

你更改这个文件的所属组前提是要征得别人的同意,我这里使用的是root所以不用
我不属于这个文件的拥有者了,我自然不能更改它的权限,但是我还是它的所属组,还是可以拥有读写执行权限的,前提是拥有者给你开放
我们还可以一次性修改文件的拥有者和所属组
[root@hcss-ecs-000a lesson1]# chown wyx:wyx text.txt
[root@hcss-ecs-000a lesson1]# ll
total 0
-rw-rw---- 1 wyx wyx 0 May 25 18:51 text.txt

3.3chgrp

功能:更改文件或目录的所属组,使不同组的用户可以根据新的组权限对文件或目录进行操作
格式:chgrp [参数] 组名 文件/目录

[root@hcss-ecs-000a lesson1]# chgrp root text.txt
[root@hcss-ecs-000a lesson1]# logout
[wyx@hcss-ecs-000a lesson1]$ cat text.txt
cat: text.txt: Permission denied

**注意:**三种身份认证的时候,你只能认证一种身份,就是你同时是拥有者和所属组,它只会看你拥有者的权限

3.4目录文件权限的具体剖析

3.4.1目录的读权限

[wyx@hcss-ecs-000a ~]$ chmod u-r lesson1
[wyx@hcss-ecs-000a ~]$ cd lesson1
[wyx@hcss-ecs-000a lesson1]$ ll
ls: cannot open directory .: Permission denied

我们可以发现读权限并不影响我们进入这个文件,影响的是我们查看目录文件下面文件列表的操作

3.4.2目录的写权限

[wyx@hcss-ecs-000a ~]$ chmod u-w lesson1
[wyx@hcss-ecs-000a ~]$ cd lesson1 
[wyx@hcss-ecs-000a lesson1]$ ll
ls: cannot open directory .: Permission denied
[wyx@hcss-ecs-000a lesson1]$ touch test.txt
touch: cannot touch ‘test.txt’: Permission denied
[wyx@hcss-ecs-000a lesson1]$ mv text.txt test.txt
mv: cannot move ‘text.txt’ to ‘test.txt’: Permission denied
[wyx@hcss-ecs-000a lesson1]$ rm text.txt
rm: cannot remove ‘text.txt’: Permission denied

所以目录的写权限决定了我们是否能在当前目录下进行创建,更改,删除

3.4.3目录的执行权限

根据上面两个我们就能推断出目录的执行权限决定了我们是否进入这个目录

[wyx@hcss-ecs-000a ~]$ chmod 666 lesson1
[wyx@hcss-ecs-000a ~]$ cd lesson1
-bash: cd: lesson1: Permission denied
[wyx@hcss-ecs-000a ~]$ ll
total 12
-rw-rw-r-- 1 wyx wyx  827 May 25 09:08 install.sh
drw-rw-rw- 3 wyx wyx 4096 May 31 22:12 lesson1

四、umask

umask表示创建文件时的默认权限

[wyx@hcss-ecs-000a lesson1]$ touch test1.txt
[wyx@hcss-ecs-000a lesson1]$ touch test2.txt
[wyx@hcss-ecs-000a lesson1]$ mkdir test3
[wyx@hcss-ecs-000a lesson1]$ ll
total 0
-rw-rw-r-- 1 wyx wyx 0 May 31 22:11 test1.txt
-rw-rw-r-- 1 wyx wyx 0 May 31 22:11 test2.txtdrwxrwxr-x 2 wyx wyx 4096 May 31 22:12 test3

我们可以发现我们创建普通文件的时候起始权限:664
创建目录文件的时候起始权限:775
这里我们给大家一个预备知识
1.默认给普通文件的起始权限其实是:666
2.默认给目录文件的起始权限其实是:777
那为什么又会变呢,是因为umask权限掩码
凡是在umask中出现的权限,不会在最终的文件权限中出现

4.1umask值

[wyx@hcss-ecs-000a lesson1]$ umask
0002

在这里插入图片描述
就是下面这个1对应的权限不会在最终的文件权限中出现
最终权限=起始权限&(~umask)

4.2修改umask值

我们还可以更改umask值

[wyx@hcss-ecs-000a lesson1]$ umask 0001
[wyx@hcss-ecs-000a lesson1]$ umask
0001

那我们就可以用umask来修改创建文件时的起始权限

五、粘滞位

目录设置,一般是共享目录,大家可以在目录进行各自文件的增删改查,只允许文件拥有者或者root能删这个文件,其他人一概不允许
功能:限制目录内文件删除权限(仅文件所有者/root可删)
格式:chmod +t 目录名 或 chmod 1xxx 目录名(xxx为原权限数字)
1.普通用户自己的家目录权限是700,我在我的家目录创建的文件,别人都看不到
2.有时候,我们多个用户想进行文件数据的共享(我们所建立的共享文件,不能在任何一个的家目录下)

[root@hcss-ecs-000a /]# mkdir test
[root@hcss-ecs-000a /]# chmod 777 test
[root@hcss-ecs-000a /]# ls -al test
total 8
drwxrwxrwx   2 root root 4096 Jun  1 10:24 .
[wyx@hcss-ecs-000a ~]$ cd /
[wyx@hcss-ecs-000a /]$ cd test
[wyx@hcss-ecs-000a test]$ touch test.txt
[wzh@hcss-ecs-000a test]$ rm test.txt
rm: remove write-protected regular empty file ‘test.txt’? y
[wzh@hcss-ecs-000a test]$ ll
total 0

大家可以看到,我们创立的这个共享文件,一个人在这个目录里面创立文件,另一个人居然可以删掉它,我们试想着是否可以关闭这个目录的写权限,让它做到无法更改和删除呢

  [root@hcss-ecs-000a /]# ls -al test
total 8
drwxr-xrwx   2 root root 4096 Jun  1 10:24 .
[wyx@hcss-ecs-000a test]$ rm test.txt
rm: cannot remove ‘test.txt’: Permission denied
[wzh@hcss-ecs-000a test]$ touch text.txt
touch: cannot touch ‘text.txt’: Permission denied

但是我们会发现连创建文件都不被允许了,这与我们的共享文件是背道而驰的

5.1设置粘滞位

[root@hcss-ecs-000a /]# chmod o+wt test
[root@hcss-ecs-000a /]# ls -al test
total 8
drwxrwxrwt   2 root root 4096 Jun  1 10:31 .
[wyx@hcss-ecs-000a test]$ touch text.txt
[wyx@hcss-ecs-000a test]$ echo "hello world">text.txt
[wyx@hcss-ecs-000a test]$ cat text.txt
hello world
[wzh@hcss-ecs-000a test]$ rm text.txt
rm: remove write-protected regular file ‘text.txt’? y
rm: cannot remove ‘text.txt’: Operation not permitted

这样我们就能够创立出共享文件中不能被其他人删除的文件了

5.2粘滞位的注意事项

仅用于目录,对文件无作用。
普通用户无权限设置,需root或有sudo权限用户操作。
设粘滞位后,用户仍需有目录的写和执行权限才能创建、修改文件。
虽限制删除,但root可删除任意文件。
粘滞位可能影响自动化脚本的文件删除操作,使用时需注意。

http://www.hkcw.cn/article/mypHytTxBg.shtml

相关文章

70.新增用户内容复制功能

对于AI回答的内容可以复制和重新生成功能,对于用户则没有复制等功能,所以想了一下觉得还是很有必要添加该功能 首先,修改用户消息的模板部分,添加复制按钮: 然后,更新CSS样式以确保按钮正确显示。 因为之前…

暴雨和强对流双预警齐发 多地迎极端天气挑战

中央气象台今日6时继续发布暴雨蓝色预警和强对流天气蓝色预警。福建、广东、广西等六地将有大到暴雨,我国多地将有8级以上雷暴大风或冰雹天气。端午假期最后一天,出行前需关注天气变化。预计6月2日8时至3日8时,福建东部和南部沿海、广东中南部、广西南部、云南西北部和东部、…

Go语言中的rune和byte类型详解

1. rune类型 1.1. 基本概念 1. rune是Go语言的内建类型,它是int32的别名,即32位有符号整数; 2. 用于表示一个Unicode码点,全拼Unicode code point; 3. 可以表示任何UTF-8编码的字符; 1.2. 特点 1. 每…

基于mediapipe深度学习的虚拟画板系统python源码

目录 1.前言 2.算法运行效果图预览 3.算法运行软件版本 4.部分核心程序 5.算法仿真参数 6.算法理论概述 7.参考文献 8.算法完整程序工程 1.前言 虚拟画板系统基于计算机视觉与深度学习技术,通过摄像头捕获用户手部动作,利用 MediaPipe框架实现手…

AUTOSAR图解==>AUTOSAR_SWS_DIODriver

AUTOSAR DIO驱动器详解 基于AUTOSAR 4.4.0规范的DIO驱动架构、配置与应用 目录 1. 引言2. DIO驱动架构 2.1 DIO在AUTOSAR架构中的位置2.2 DIO驱动的功能概述 3. DIO驱动的数据类型和API 3.1 基本数据类型3.2 API接口3.3 错误检测 4. DIO驱动的操作流程 4.1 通道操作4.2 端口操…

Python数据类型详解:从字符串到布尔值,一网打尽

Python是现代编程语言中非常流行的一种,它的语法简洁、易懂,非常适合初学者。而在Python编程中,“数据类型”是最基础也是最重要的概念。理解这个概念,将为你之后的编程打下坚实的基础。 1. 什么是数据类型? 在Pytho…

lc hot 100之:双指针题目对比

写到两个给我感觉很类似的双指针题目,但是代码不同,我想把两个题放在一起,对比着看看。 第一题: 首先,提到“重复”,比较好想到哈希表。访问过就在哈希表里记录,然后只要找哈希表中有没有这个数…

6.01打卡

浙大疏锦行 DAY 40 训练和测试的规范写法 知识点回顾: 1. 彩色和灰度图片测试和训练的规范写法:封装在函数中 2. 展平操作:除第一个维度batchsize外全部展平 3. dropout操作:训练阶段随机丢弃神经元,测试阶段eval模…

SIM——引入双阶段搜索机制在用户行为序列的同时关注动态兴趣

文章目录 1. 背景2. 方法2.1 GSU2.1.1 Hard Search2.1.2 Soft Search 2.2 ESU 这里来回顾一篇经典的文章 SIM(Search-based Interest Model),也是自己学习一下,虽然挺久了,但是业界都在使用这个,说明含金量…

LeRobot ACT——LeRobot对ALOHA ACT策略的封装:含源码解析与真机部署(效果比肩ACT原论文)

前言 本文一开始是此文的第一部分,后随着我司各大具身团队对各个动作策略的实践、深入,觉得可以挖掘且分享的细节越来越多,比如LeRobot ACT,其效果也不错 ALOHA ACT的复现与应用:双臂下的智能分拣场景 故把其中的「Le…

【Linux网络编程】网络层IP协议

目录 IP协议的协议头格式 网段划分 特殊的IP地址 IP地址的数量限制 私有IP地址和公网IP地址 路由 IP协议的协议头格式 4位版本号 :指定IP协议的版本,对于IPv4,版本号就是4。 4位首部长度:表名IP协议报头的长度,单…

微调大模型:什么时候该做,什么时候不该做?

目录 一、什么是“微调”?你真的需要它吗? 二、什么时候不该微调? 🚫 不该微调的 5 个典型场景: 1. 通用问答、闲聊、常识类内容 2. 企业内部问答 / 文档助手 3. 想要通过微调“学会格式” 4. 没有大量高质量标…

[AD] CrownJewel-1 Logon 4799+vss-ShadowCopy+NTDS.dit/SYSTEM+$MFT

QA QA攻擊者可以濫用 vssadmin 實用程式來建立卷影快照,然後提取 NTDS.dit 等敏感檔案來繞過安全機制。確定卷影複製服務進入運作狀態的時間。2024-05-14 03:42:16建立卷影快照時,磁碟區複製服務會使用機器帳戶驗證權限並列舉使用者群組。找到卷影複製過…

系统思考:整体观和心智模式

如果你是小区管委会的主委,面对住户抱怨“电梯太慢,每次都要花很久等电梯”,是不是第一反应就是——换马达、更新软件,甚至换整台电梯?这其实是典型的“线性思维”陷阱——把问题看成孤立的零件故障。 从系统思考的角…

常见相机的ISP算法

常见的ISP算法 3A算法 去雾算法 图像增强算法 图像宽动态算法 图像的电子缩放算法,无极电子缩放 图像降噪算法 相机常见问题 1.相机启动速度问题,启动速度较慢 2.相机扛不住高低温问题 3.相机散热问题问题 4.相机高低温芯片保护掉电 5.相机的成像效果或者…

黑马Java面试笔记之框架篇(Spring、SpringMvc、Springboot)

一. 单例bean Spring框架中的单例bean是线程安全的吗? Spring框架中的bean是单例的,可以在注解Scope()进行设置 singleton:bean在每一个Spring IOC容器中只有一个实例。prototype:一个bean的定义可以有多个实例 总结 二. AOP AOP称…

【Go】2、Go语言实战

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 前置知识 本篇将涉及到一些在命令行的输入输出操作,之前我们已经学习了fmt包用于输出内容,下面将介绍bufio包用于读入数据。 bufio包简介 bufio 是 Go 标准库…

基于Python与本地Ollama的智能语音唤醒助手实现

项目简介 本项目是一个基于 Python 的智能语音助手,集成了语音录制、语音识别、AI对话和语音合成功能。用户可以通过语音与本地部署的 Ollama 大模型进行自然对话。 技术架构 核心功能模块 语音录制 - 使用 sounddevice 录制用户语音语音识别 - 使用 faster-whi…

Vue框架2(vue搭建方式2:利用脚手架,ElementUI)

一.引入vue第二种搭建方式 在以前的前端项目中,一个项目需要多个html文件实现页面之前的切换,如果页面中需要依赖js或者css文件,那么我们就需要在多个html文件中都需要导入vue.js文件,太过繁琐. 现在前端开发都采用单页面结果,一个项目中只有一个html文件 其他不同的内容都写…

维斯塔潘谈和拉塞尔碰撞 意外相撞引发讨论

在F1西班牙大奖赛正赛中,维斯塔潘因与拉塞尔相撞被罚时10秒,最终排名第十。赛后采访中,记者问及那次碰撞。维斯塔潘表示两人开车时确实撞到了一起。当记者指出他本可以避免这种情况时,维斯塔潘承认了这一点。至于为什么会发生这样的情况,他表示自己也不清楚。责任编辑:zx…