Linux中的权限问题
admin
2024-05-16 22:12:20
0

Linux中的权限问题

1.权限的概念
限制人的,访问的对象天然可能没有这种"属性"权限:一件事情是否允许被"做" 权限 = 人 + 文件属性

2.Linux上面的用户分类(root,普通)
a.root(超级管理员) – 几乎可以干任何事情
b.普通用户

3.Linux的文件属性
属性:读,写,执行
Linux中的文件类型:
不是通过文件的后缀区分文件类型,而是用文件的属性中第一列的第一个字符来区分文件类型
切记是文件属性的第一个字符(例文件属性:-rw-rw-r–)
drwxrwxr-x
-rw-rw-r–
-rw-rw-r–
所以通过第一个字符我们就可以得到此时这个文件的类型
例如:

  • :表示普通文件,文本文件,可执行文件,归档文件等
    d :目录
    b :块设备,block,磁盘
    c :字符设备,键盘或者显示器
    p :管道文件
    s :网络socket文件
    区别于:
    我们如何看待原来文件的后缀:a.想用就用,给我们自己看 b.将后缀看做成文件名的一部分
    注意:*但是这个只是在Linux系统中,但是要注意我的有的接口(可能是需要使用这个文件后缀的,没有就不行)例:gcc
    例:一个文件的所有属性
    -rw-rw-r-- 1 whb whb 14260 Nov 22 19:36 cmd.txt
    | | | |
    文件类型 文件字节大小 创建or修改时间 文件名

4.Linux文件权限(用户层面)
指令:(su)
功能:切换普通用户和超级用户(返回 Ctrl+d)

(sudo)
功能:对单条指令进行提权
指令:sudo command 例:sudo cat test.txt
这样就可以从原来的访问不了,变成可以访问了
注意:*如果我是对文件的创建进行提权,并且我此时是一个普通用户,那么此时当这个文件创建好了之后这个文件的拥有者和所属组就不再是普通用户了,而是root(就好比我是拿着人家root的权限去创建的,所以可以提权,但是创建的本人还是root)

角色划分:
a.文件拥有者
例:
-rw-rw-r-- 1 whb whb 14260 Nov 22 19:36 cmd.txt
| |
文件拥有者 文件所属组
b.文件所属组
目的:使我的文件可以给我想给的人看(就是把我的文件开一个权限,假如没有这个文件所属组的话,那么此时文件开了权限,那么文件other就可以看到了(也就是所有人都可以看到了),所以我们需要有一个文件所属组,这样就可以把我的文件给我想给的人看了)

c.文件的other

在Linux中认识以下东西:
root && 普通用户 vs 拥有者 && 所属组 && other
| |
人 角色
总的一句话:任何人可以是任何角色

文件属性的后面9个字符的理解:
(例文件属性:-rw-rw-r–)
drwxrwxr-x
-rw-rw-r–
-rw-rw-r–
去掉第一个,三个三个为一组
例: - rw- rw- r–
| | | |
文件类型 文件拥有者 文件所属组 文件的other

并且此时的 r:代表可读权限
w:代表可写权限
x:代表可执行权限

所以我们描述一个文件的权限(文件权限 = 人 + 文件属性)应该这样描述:
该文件的拥有者具有可读可写的权限,不具有可执行的权限,文件所属组具有可读可写的权限,不具有可执行的权限,文件的other具有可读的权限,不具有写和执行的权限

搞定了上述的问题,我们搞定一下如何更改权限的问题
更改权限:
(chmod)
指令:chmod u+r file.txt 给文件拥有者加一个可读的权限 chmod u+rx file.txt 同理可以同时加两个权限
chmod g+w file.txt 给文件所属组加一个可写的权限 chmod g+wr file.txt
chmod o+x file.txt 给文件other加一个可执行的权限 chmod o+xw file.txt
指令:chmod u-r file.txt 给文件拥有者去掉一个可读的权限 chmod u-rx file.txt 同理可以同时去掉两个权限
chmod g-w file.txt 给文件所属组去掉一个可写的权限 chmod g-wr file.txt
chmod o-x file.txt 给文件other去掉一个可执行的权限 chmod o-xw file.txt

同时给所有人加减权限
指令:chmod a+r file.txt
chmod a+rw file.txt
chmod a+rwx file.txt
指令:chmod a-r file.txt
chmod a-rw file.txt
chmod a-rwx file.txt 同时给所有人加减各种权限

更改角色:
(chown/chgrp)
指令:chown root file.txt
表示:将我当前的文件的拥有者从whb改为root(但是会有权限不足的问题)
所以我们可以进行提权(sudo)
指令:sudo chown root file.txt
这样我就把文件的拥有者给改成root了

5.权限中的指令
(file)
功能:查看文件类型
指令:file file.txt

6.Linux中目录的权限(r/w/x)
6.1 进入一个目录所必须的权限是(x)可执行权限,rw都是不必须的(但是如果没有r和w权限,那么此时我们就不可以对这个目录进行读和写)
没有r:就无法查看当前的这个目录下的文件名和文件属性
没有w:就无法对这个目录进行文件的创建(例:touch file.txt)
没有x:连目录都进不去
————————————————————————————————————————————
7.默认权限
默认权限:我们看到的(例:普通的文件(不包括可执行),默认权限是从664开始,目录的默认权限是775开始)
起始权限:系统设定的,普通文件的起始权限是从666开始的(rw没有x),目录文件的起始权限是:777(rwx)
并且此时系统为了更好的控制文件权限,系统会有默认的权限掩码的概念!掩码(umask)
掩码的概念:1011 1010 -> 0000 1111 -> 0000 1010 我只想要拿到1010,这样我就通过我的掩码只拿到了1010
(umask) |
功能:查看掩码 掩码

最终权限:最终权限 = 起始权限 & (~umask)

8.粘滞位
背景:在使用Linux的时候,未来可能会有一些共享目录,用来保存普通用户产生的临时数据
但是当文件被所有人共享的时候,一样会受到权限的约束,但是却拦不住别人删除这个共享的文件
这个就产生了一个问题(所以我们就要引入一个新的概念来解决这个问题)
新概念:粘滞位
总的来说粘滞位的概念就是:为了让大家共享文件,且不让其他人随便删除别人的文件
功能:使一个目录只能添加目录,共享目录
指令:chmod a+t catalog(目录)
通过这个指令,可以得到目录权限从 drwxrwxrwx -> drwxrwxrwt
最后的x变成t -> 就是表示从普通目录变成了一个粘滞位的目录
综上:此时我的drwxrwxrwt目录,此时就只可以添加文件,不可以删除文件了(这就是共享文件的特点(带粘滞位),不允许删除)

此时在讨论一个问题:为什么我们权限是w时拦不住别人删除文件,到了t的时候就可以拦住别人删除我们的文件
原因:在一个目录中增加和删除文件/目录是由我的w(写)权限决定的,你把other的w改成了t
other此时没有了w权限,自然而然就删除不了你的文件(但是为了可以增加文件,所以我们不可以直接把w权限去掉,我们一定要把w改成t,这样才可以符合我的两个要求)

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
JAVA多线程知识整理 Java多线程基础 线程的创建和启动 继承Thread类来创建并启动 自定义Thread类的子类&#...
【洛谷 P1090】[NOIP... [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G ...
国民技术LPUART介绍 低功耗通用异步接收器(LPUART) 简介 低功耗通用异步收发器...
城乡供水一体化平台-助力乡村振... 城乡供水一体化管理系统建设方案 城乡供水一体化管理系统是运用云计算、大数据等信息化手段࿰...
程序的循环结构和random库...   第三个参数就是步长     引入文件时记得指明字符格式,否则读入不了 ...
中国版ChatGPT在哪些方面... 目录 一、中国巨大的市场需求 二、中国企业加速创新 三、中国的人工智能发展 四、企业愿景的推进 五、...
报名开启 | 共赴一场 Flu... 2023 年 1 月 25 日,Flutter Forward 大会在肯尼亚首都内罗毕...
汇编00-MASM 和 Vis... Qt源码解析 索引 汇编逆向--- MASM 和 Visual Studio入门 前提知识ÿ...
【简陋Web应用3】实现人脸比... 文章目录🍉 前情提要🌷 效果演示🥝 实现过程1. u...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
windows安装JDK步骤 一、 下载JDK安装包 下载地址:https://www.oracle.com/jav...
分治法实现合并排序(归并排序)... 🎊【数据结构与算法】专题正在持续更新中,各种数据结构的创建原理与运用✨...
在linux上安装配置node... 目录前言1,关于nodejs2,配置环境变量3,总结 前言...
Linux学习之端口、网络协议... 端口:设备与外界通讯交流的出口 网络协议:   网络协议是指计算机通信网...
Linux内核进程管理并发同步... 并发同步并发 是指在某一时间段内能够处理多个任务的能力,而 并行 是指同一时间能够处理...
opencv学习-HOG LO... 目录1. HOG(Histogram of Oriented Gradients,方向梯度直方图)1...
EEG微状态的功能意义 导读大脑的瞬时全局功能状态反映在其电场结构上。聚类分析方法一致地提取了四种头表面脑电场结构ÿ...
【Unity 手写PBR】Bu... 写在前面 前期积累: GAMES101作业7提高-实现微表面模型你需要了解的知识 【技...