• Linux文件,目录权限管理



    前言:Linux下文件和目录都有相应的权限,权限规定了普通用户的行为。约束了普通用户,但是约束不了root,root不是普通用户。本文主要讲解文件,目录权限的意义,以及如何修改。先看看下面两图,方便后面学习。
    在这里插入图片描述
    在这里插入图片描述


    1.linux的用户

    1.1 俩大类用户

    Linux有两大类用户,就是root和普通用户。
    root:超级管理员,权限非常高。
    普通用户:具有一般权限,受权限的约束。

    1.2 拥有者,所属组,其他人

    一个文件或者目录,有三种人可能会进入。
    (1)拥有:这个文件的拥有者。
    (2)所属组:虽然不是文件的拥有者,但是和拥有者是一个组的,可以理解成关系户。
    (3)其他人:对于文件来说是陌生人,但是可能会访问文件。
    所以要对这三类人,进行权限管理,如果不管理的话,对文件可能会造成损伤。比如我有一个文档,我不希望别人在里面写东西,我就把其他人的写权限关闭,所属组我希望他可以写,那就打开他的写权限。

    2.文件,目录权限的理解

    2.1 文件权限

    为了讲清楚文件权限,我们可以打开一个文件看一下。
    在这里插入图片描述
    (1)可以看到我打开了一个文本文件 ny.txt,先认识拥有者,所属组的位置。
    在这里插入图片描述ol/[
    (2)文件的类型,看第一栏。
    在这里插入图片描述
    根据第一栏可以判断文件的类型:

    d:目录文件
    -:普通文件
    l:软链接(类似Windows的快捷方式)
    b:块设备文件(例如硬盘、光驱等)
    p:管道文件
    c:字符设备文件(例如屏幕等串口设备)

    (3)用户,用户组,其他人对应的权限。
    在这里插入图片描述
    第2,3,4栏为用户权限,第5,6,7栏为用户组权限,第8,9,10为其他人权限。

    r (read):可以读取文件的实际内容。
    w(write):可以编辑,修改文件的内容。(不能删除文件)
    x(execute):可以执行此文件。

    根据上面,用户:可读可写;用户组:可读;其他人:可读。
    rwx:三个位置不能改动,默认的顺序。
    r:用二进制表示为100,八进制: 4。
    w:用二进制表示为010,八进制:2。
    x:用二进制表示为001,八进制: 1。
    所以能用数字来表示权限,比如用户的权限是rwx,那么二进制就是111,八进制就是7;用户组是rw-,那么二进制为110,八进制为6;其他人权限为r--,那么二进制是100,八进制是4。所以整体用八进制表示就是764。
    根据这个方法,我们可以表示一下上面 ny.txt 的权限:644。
    在这里插入图片描述

    2.2 目录权限

    打开一个目录 ,方便我们去学习目录权限.
    在这里插入图片描述
    上面两个都是目录,可以看第一栏,是d,所以是目录文件.目录权限和文件权限有些类似.但是rwx的含义不同.

    r :表示具有读取目录结构数据的权限,也就是可以查看此目录的文件名.
    w:表示具有改动该目录结构列表的权限,这个权限就比较大了.
    (1)建立新的文件与目录
    (2)删除已经存在的文件与目录(与文件本身权限无关,只要在此目录下,并有w权限就可以删除)
    (3)对文件或目录进行重命名
    (4)移动该目录内的文件,目录位置
    x: 表示具有进入该目录的权限,简单说就是可以cd进去.

    我们可以验证一下.
    (1)验证r权限,可以查看目录下的文件名.我以root身份,也就是拥有者去查看的,发现没问题,可以查看,我现在将其他人的r权限去掉,再切换到普通用户继续用 ls 会发生什么呢?
    在这里插入图片描述
    p1的其他人的r,权限已经被我拿掉了。现在我切换到普通用户。
    在这里插入图片描述
    被拒绝了,这样就简单验证了r权限。
    在这里插入图片描述
    (2)验证w权限
    默认的目录权限,是不会给其他人w权限的,所以我适用root身份,给普通用户加上w权限。
    先看看没有w权限的普通用户,可不可以再目录下创建文件,或者删除文件。
    一,不能创建文件
    在这里插入图片描述
    二,不能删除文件或者目录
    在这里插入图片描述
    三,给普通用户w 权限,并创建一个普通文件。
    在这里插入图片描述
    在这里插入图片描述
    (3)验证x权限
    p1目录的x权限默认开着,所以上面我们才能随意进出文件,现在我们将x权限关闭看看普通用户进入会出现什么问题。
    在这里插入图片描述
    进入被拒绝了。
    在这里插入图片描述

    3.文件,目录权限的修改

    修改权限主要是root干的事,如果普通用户想要修改文件或目录的权限,需要用sudo暂时提升一下权限,所以修改权限还是用root,操作简单些。
    (1)chmod
    功能:设置文件的访问权限
    格式:chmod [参数] 权限 文件名
    常用选项:
    R -> 递归修改目录文件的权限
    说明:只有文件的拥有者和root才可以改变文件的权限
    一,用户表示符 +/- /= 权限字符

    用户符号:
    u:拥有者
    g:所属组
    o:其它用户
    a:所有用户

    +:向权限范围增加权限代号所表示的权限
    -:向权限范围取消权限代号所表示的权限
    =:向权限范围赋予权限代号所表示的权限

    在这里插入图片描述
    拿这个普通文件举例。
    例子:赋予所属组w权限
    在这里插入图片描述
    移除所属组w权限
    在这里插入图片描述
    全部增加x权限
    在这里插入图片描述
    二,八进制数字改变权限
    上文讲到过,rwx权限是可以用八进制表示的,所以在chmod中也可以利用此点来进行权限修改。
    比如我想将yy.txt的权限改为rw- r- - r- -,那么数字就是644.
    所以如下:
    在这里插入图片描述
    (2))chown
    功能:修改文件的拥有者
    格式:chown [参数] 用户名 文件名
    常用选项:-R递归修改文件的拥有者
    总结:chown用于修改文件的拥有者
    在这里插入图片描述
    例子:修改ny.txt的拥有者为ly
    在这里插入图片描述
    我们可以试一试递归修改拥有者。
    比如:p1目录及其以下文件。
    在这里插入图片描述
    执行此条命令
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    可以看到,p1下的子目录以及文件的拥有者都变成了ly。
    (3)chgrop
    功能:修改文件或目录的所属组
    格式:chgrp [参数] 用户组名 文件名
    常用选项:-R 递归修改文件或目录的所属组
    chgrop和chown用法一致,不赘述了。

    4. 默认权限

    默认权限就是文件,目录一上来,系统给配置的权限。

    新建文件夹默认权限=666(rw- rw - rw -)
    新建目录默认权限=777 (rwx rwx rwx)

    那么我们可以验证一下,是否默认权限是如此。
    新建立一个文件。
    在这里插入图片描述
    再新建立一个目录
    在这里插入图片描述
    我们惊讶的发现,不一样,这是为什么呢?
    (1)umask

    功能:查看或修改文件掩码

    文件掩码导致默认权限发生改变,如果我们想要修改默认权限,也可以利用文件掩码。
    利用umask查看文件掩码,看它是如何导致的默认权限改变。
    在这里插入图片描述
    一,第一个0,不管它,看作022即可。
    在这里插入图片描述
    文件的初始权限。
    在这里插入图片描述
    目录的初始权限。
    在这里插入图片描述

    二,结论
    结论:将文件掩码按位取反再和初始权限按位与得到的是默认权限。
    在这里插入图片描述
    对吧,就是这样操作的,644就是普通文件的默认权限,目录的默认权限计算留给大家了。
    (2)利用umask修改文件的默认权限
    根据上面的规则,我们可以自定义文件默认权限,但是只在本次工作有效,如果想要长期有效需要配置文件了。
    比如:我就想文件的默认权限为初始权限,那么如下设置。
    在这里插入图片描述
    在这里插入图片描述
    可以看到rr.txt的默认权限是666。

    5. 粘滞位

    粘滞位可以解决普通用户删除不属于他的文件的问题。上文讲了,如果普通用户有了目录的w权限就可以随便删除目录底下的文件,不管是谁的文件,他都可以删除。这就有大麻烦了,一个普通用户带着个w权限,在这里乱杀。不行,所以有了粘滞位的解决办法。
    那就是 chmod +t,给文件加上t权限后:
    只能由:
    一、超级管理员删除
    二、该目录的所有者删除
    三、该文件的所有者删除
    例子:
    我已经切换到普通用户,并且p1目录对其他人有w权限
    在这里插入图片描述
    我进入p1,并且干掉一个文件ww.txt。
    在这里插入图片描述
    非常的不安全,现在利用粘滞位,对p1加上t权限。
    在这里插入图片描述
    我们再切回普通用户,看看还能不能删除p1的文件。
    在这里插入图片描述
    很明显删除不了,并且我用的是-rf,删除不了。


    结尾语:权限讲到这里,希望大家有所收获。

  • 相关阅读:
    【Azure Key Vault】在Azure Databricks上获取Azure Key Vault中所存储的机密(secret)的两种方式
    深度学习基础知识 学习率调度器的用法解析
    LeetCode-198题:打家劫舍(原创)
    试图家庭内网搭个人服务器——答疑
    Mendix 开发实践指南|Mendix的核心概念
    前端入门--JavaScript篇
    《网络安全笔记》第七章:注册表基础
    [C++][vtk][转载]利用vtk绘制文本
    UML类图画法全程解析
    主流开发语言和开发环境介绍
  • 原文地址:https://blog.csdn.net/lyzzs222/article/details/126358775