• 【Linux升级之路】1_Linux权限入门 | 用户转换 | 文件目录权限管理 | 粘滞位应用


    🌟hello,各位读者大大们你们好呀🌟

    🍭🍭系列专栏:【Linux升级之路】

    ✒️✒️本篇内容:简单介绍Linux用户概念及用户转换,Linux权限管理(文件和目录权限),引出粘滞位的概念、解析其用法,最后对一些易错知识点进行总结

    🚢🚢作者简介:计算机海洋的新进船长一枚,请多多指教( •̀֊•́ ) ̖́-

    📡📡书接上回:1_Linux常见指令 | 保姆式入门 | 深度刨析


    目录

    一、用户

    二、用户转换

    三、Linux权限管理

    01.文件访问者的分类(人) 

    02.文件类型和访问权限(事物属性) 

     a) 文件类型

     b)基本权限

    03.文件权限值的表示方法

     a)字符表示方法

     b)8进制数值表示方法

    04.文件访问权限的相关设置方法

    a)chmod - 设置文件的访问权限

    b)chown - 修改文件的拥有者

    c)chgrp - 修改文件或目录的所属组

    d)file命令 - 辨识文件类型

    05.目录的权限

    06.起始权限

    四、粘滞位

    五、关于权限的总结(重要)


    一、用户

    Linux下有两种用户:超级用户(root)、普通用户。

    • 超级用户:可以再linux系统下做任何事情,不受限制
    • 普通用户:在linux下做有限的事情。
    • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”


    二、用户转换

    root用户切换成普通用户 - 不需要密码

    su XXX(普通用户名)

    普通用户切换成root用户 - 需要输入密码

    1. su #重新登陆,初始态回到家目录
    2. su- #登陆root,仍在当前路径
    3. ctrl+d #返回普通用户

    我是普通用户,我想用root身份执行一条命令,但是不想切换用户

    sudo - 需要修改权限,这里暂时不讲

    为什么root设置的密码不要和普通用户的密码相同?

    避免用户转换是系统出现混淆,保障服务器安全


    三、Linux权限管理

    什么是权限?

    权限可以解读为:一些事情是否被允许谁做。

    关键就在于谁(人)和 做(文件),所以我们可以延伸出下面的理解:

    文件权限 = 人 + 文件属性

    01.文件访问者的分类(人) 

    • 文件和文件目录的所有者:u---User
    • 文件和文件目录的所有者所在的组的用户:g---Group
    • 其它用户:o---Others

    【注意】拥有者和所属组都是一个具体的人,other是除拥有者所属组以外的所有人

     

    02.文件类型和访问权限(事物属性) 

    我们可以用 ll(ls -l)指令查看当前目录下的文件属性

     

     a) 文件类型

    Linux通过ll(ls -l)指令显示众多文件属性的第一行第一个字母区分文件类型

    1. d:文件夹(目录文件)
    2. -:普通文件(源代码、库文件、可执行程序、文件压缩包等)
    3. l:软链接(类似Windows的快捷方式)
    4. b:块设备文件(例如硬盘、光驱等)
    5. p:管道文件
    6. c:字符设备文件(例如屏幕等串口设备)
    7. s:套接口文件

    【注意】Linux和window(文件后缀)差别很大,window通过文件名后缀区分文件类型,Linux的文件类型与后缀无关,但仍可以自定义文件名后缀用以提示区分。

    【注意】gcc等工具可能会对文件后缀有要求

     b)基本权限

    1. 读(r - read):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
    2. 写(w - write):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
    3. 执行(x - execute):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
    4. “ — ”表示不具有该项权限

    03.文件权限值的表示方法

     a)字符表示方法

    主要体现在文件属性第2-10位

    小练习:

    答案:文件类型-普通文件,拥有者-可读可写不可执行,所属组-可读不可写不可执行,other-可读不可写不可执行。

     b)8进制数值表示方法

    04.文件访问权限的相关设置方法

    a)chmod - 设置文件的访问权限

    功能:设置文件的访问权限

    格式:chmod [参数] 权限 文件名

    常用选项

    • R -> 递归修改目录文件的权限
    • 说明:只有文件的拥有者和root才可以改变文件的权限

    使用方法①:用户表示符(+/- = )权限字符

    用户符号:   

    • u:拥有者
    • g:拥有者同组用
    • o:其它用户
    • a:所有用户

    权限调整符号:

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

    示例:

    1. # chmod u+w /home/abc.txt #拥有者增加写权限
    2. # chmod o-x,u+w /home/abc.txt #other减少执行权限,拥有者增加写权限

    使用方法②:三位8进制数字

    【注意】此方法对应上面描述的8进制数值表示方法 

    示例:

    # chmod 664 /home/abc.txt    

    #拥有者、所属组可读可写,other只可读

    # chmod 640 /home/abc.txt

    #拥有者可读可写,所属组只可读,other无权限

    b)chown - 修改文件的拥有者

    功能:修改文件的拥有者

    格式:chown [参数] 用户名 文件名

    实例

    chown ldx test.txt    #将test.txt文件的拥有者改为ldx

    c)chgrp - 修改文件或目录的所属组

    功能:修改文件或目录的所属组

    格式:chgrp [参数] 用户组名 文件名

    常用选项:-R 递归修改文件或目录的所属组

    d)file命令 - 辨识文件类型

    功能说明:辨识文件类型

    语法:file [选项] 文件或目录... 

    实例:

    1. [root@VM-12-11-centos ~]# file note
    2. note: directory

    05.目录的权限

    • 可执行权限: 如果目录没有可执行权限(x), 则无法cd到目录中.
    • 可读权限: 如果目录没有可读权限(r), 则无法用ls等命令查看目录中的文件内容.
    • 可写权限: 如果目录没有可写权限(w), 则无法在目录中创建文件, 也无法在目录中删除文件

    06.起始权限

    Linux规定目录               

    • 目录                起始权限777
    • 普通文件         起始权限666

    为什么这么规定

    目录创建出来,一般都要可以进入

    文件创建出来,一般都要可以进入,大部分不用可执行

    为什么具体权限和八进制对应权限不同

    因为系统中存在一个权限掩码(umask),凡是在权限掩码(umask)规定范围内的起始权限,都要在二进制中去掉

    系统会默认设置好umask值 —— 这里0002


    四、粘滞位

    通过上面权限的学习,我们知道了用户只要有写的权限,就可以在一个目录中新建和删除文件。

    Linux可以创建公共目录,用于给同一台服务器的所有用户使用。在公共目录中,只对目录中的文件进行了读、写、可执行三个权限默认限制,并没有对公共目录的写权限进行默认限制。

    换句话来讲,一个普通用户也可以将公共目录删除,这也就出现了问题......

    这好像不太科学啊, 我张三创建的一个文件, 凭什么被你李四可以删掉? 我们通过Linux操作来验证一下:

    1. [root@localhost ~]# touch /home/root.c
    2. [root@localhost ~]# ls -l /home/ #查看家目录文件
    3. -rw-r--r--. 1 root root 0 919 15:58 abc.c
    4. drwxr-xr-x. 27 ldx ldx 4096 919 15:53 ldx
    5. -rw-r--r--. 1 root root 0 919 15:59 root.c
    6. [root@localhost ~]# su - ldx #从root用户登陆ldx普通用户
    7. [litao@localhost ~]$ rm /home/root.c #litao可以删除root创建的文件
    8. rm:是否删除有写保护的普通空文件 "/home/root.c"?y
    9. [ldx@localhost ~]$ exit #退出此登录用户,返回上一级登陆用户
    10. logout

    可见,一个普通用户也可以将公共目录删除,Linux为了解决这个问题,提出了粘滞位。

    当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

    1. 超级管理员删除
    2. 该目录的所有者删除
    3. 该文件的所有者删除

    【用法】chmod +t 目录名

    接下来,我们直接看一组粘滞位的应用

    1. [root@localhost ~]# chmod +t /home/ #给公共目录home加上粘滞位
    2. [root@localhost ~]# ls -ld /home/
    3. drwxrwxrwt. 3 root root 4096 919 16:00 /home/
    4. [root@localhost ~]# su - ldx
    5. [ldx@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
    6. rm:是否删除有写保护的普通空文件 "/home/abc.c"?y
    7. rm: 无法删除"/home/abc.c": 不允许的操作


    五、关于权限的总结(重要)

    • 目录的可执行权限是表示你可否在目录下执行命令。
    • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目录,即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
    • 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

    🌹🌹Linux的权限入门知识大概就讲到这里啦,博主后续会继续更新Linux操作系统的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!你们的支持是博主坚持创作的动力!💪💪

  • 相关阅读:
    流量新玩法:微信问一问了解一下
    全国产!全志T3+Logos FPGA核心板(4核ARM Cortex-A7)规格书
    Linux 遍历目录(cd 命令)
    杰理之开了多种解码格式插卡到播放等待的时间长【篇】
    python学习笔记——文件
    image process那个项目的图片上色问题 第二版再说吧 这个是一个可行的方案 cv.histogram 的颜色问题
    1.6 信息系统安全技术
    TairSearch:加速多列索引查询
    C# OpenCvSharp 颜色反转
    大连民族大学计算机考研资料汇总
  • 原文地址:https://blog.csdn.net/Captain_ldx/article/details/127188575