• Linux 基础-3


    问题:我们操控电脑的时候是直接与操作系统交互的吗?

    ——答案是否定的,用户并不是直接访问操作系统的。

    ​ 我们去商店买东西,我们先把钱给收银员,收银员在把“确认收到”的信息传给我们,才完成购买的流程。操作系统就好比收银台,如果我们要把钱直接放在收银台,就还得进行相应的操作,流程将变得非常繁琐,故我们一般并不是直接与操作系统交互的。

    不直接交互的原因:1.需要专业知识;2.人是容易犯错的,但操作系统难容错。

    故系统设计者不会让用户直接操作 操作系统的。

    shell运行原理

    shell外壳程序为用户与操作系统之间的交流媒介,用户操作的是外壳shell

    外壳程序的意义

    • 作为用户与操作系统中间的软件层
    • 能对操作系统起一定程度的保护作用

    Linux下的shell 为bash。

    权限

    root :最高权限 ,只有一个

    普通用户 :受权限约束,可以有多个

    身份切换

    su -

    ​ 执行之后输入root用户的密码。

    whoami

    ​ 查看当前用户

    Ctrl + D

    ​ 可以退出root

    su 用户名

    ​ 在root权限下,可以直接访问某个用户。在非root权限下,需要输入对应用户的密码才能登录该用户。

    文件及权限

    ​ Linux下,不以文件后缀来区分文件类型。下图中前缀的一长串字符**,以前面的第一个字符来区分文件**。同样的文件,取不同的后缀仍可以执行。(区别于windows,win下有严格的后缀识别作为区分)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-puDqNrjX-1660118086474)(https://s2.loli.net/2022/07/20/Z2kUlupNeiGOW5c.png)]

    常用文件前缀

    • d 目录
    • - 普通文件
    • p 管道文件
    • b 块设备
    • c 字符设备
    • l 链接文件
    用户类别
    1.user拥有者

    字面意思,当前文件的拥有者。

    2.group所属组

    默认所属组即为拥有者。

    3.other其他

    9列,3块 分别对应 owner , grp , other

    rwx

    表述一个文件的权限 :读写执行权限

    image-20220720153845606

    每一位可以用0/1 表示,有3位,故可以用一个八进制表示。有3组,就可以用3个八进制表示

    image-20220720160216688

    上文的一串字符,去掉第一个字符,后面每三个一组,分别代表了拥有者,所属组,other

    *如果用户为拥有者,就不再看是否为所属组。

    当有文件需要只给部分用户看,该如何操作:
    1. 改属性

      chmod 用户表示符+/-=权限字符

      u 拥有者

      g 所属组

      o other

      a all 包含上面所有

      当前file1.c权限全空

      image-20220720155533571

      给其添加 用户读写执行,读写,其他只读

      chmod u+rwx file1.c
      chmod g+rw file1.c
      chmod o+r file1.c
      
      • 1
      • 2
      • 3

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TARjmON0-1660118086478)(https://s2.loli.net/2022/07/20/qKcoWuyZwiAP62E.png)]

    2. 改人

      需要提升权限至信任列表(需root)。

      • chown [用户名] 文件

        把某个文件的拥有者改为其他用户。(需要root权限)

        sudo 以root权限,执行一次后面紧接的代码

        把某个其他用户的文件的拥有者改为自己,用 sudo chown... 后加该用户的密码。

      • chgrp

        更改所属组

    常见权限问题(面试问题)

    1. 目录权限

      进入一个目录需要什么权限?——需要 -x权限

      查看当前目录的文件—— -r权限

      创建文件夹/文件—— -w权限

    2. umask

      目录默认起始权限:777

      普通文件默认起始权限:666

      但是下图中,创建后的文件夹权限并不是777(全部为1),文件并不是666(不可执行)

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YbOcyuZK-1660118086479)(C:/Users/tx/AppData/Roaming/Typora/typora-user-images/image-20220809163931585.png)]

      所以 起始权限 ≠ 最终权限 ,因为起始权限到最终权限间,还有权限掩码umask的存在。

      凡是在umask中出现的权限,都不会在最终权限中出现。在终端输入umask查看掩码:

      [yicu233@VM-8-16-centos 1Access]$ umask
      0002
      
      • 1
      • 2

      这里umask的第一位暂时不需用到,我们只看后三位:002。

      对起始权限的掩码运算:

      7 7 7    
      0 0 2				    
      -----
      7 7 X
      根据umask中出现的权限不在最终权限中出现,掩码带有1的,起始码的1将会变0。
      相当于 &~ 运算
      722进制运算:7  1 1 1
      			   2  0 1 0
      			      -----
      			   5  1 0 1
      所以最终权限:
      7 7 7    
      0 0 2				    
      -----
      7 7 5
      
      775 -> 111 111 101 -> 文件夹d rwx rwx r-x
      正好对应我们创建出来的文件夹所看到的权限
      
      同理文件的最终权限:
      6 6 6 |  6  1 1 0 &~运算
      0 0 2 |  2  0 1 0	    
      -----	    -----
      6 6 4 |  4  1 0 0
      
      664 -> 110 110 100 -> 文件- rw- rw- r--
      同样也对应我们创建出来的文件所看到的权限
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      umask的设置

      语法:umask 数字 ,即可改变mask的值。

      *不可写的文件的可以被删,因为该文件是否被删取决于其路径的文件夹是否能被写。

    3. 粘滞键

      现在需要一个功能:

      1. 当多用户共享一个目录,需要在该目录下,进行读写创建删除文件
      2. 但只能删除自己的,不能删除别人的
      (root)[other不可写]dir -  
      				(属于a)[]AAA -
      				(属于b)[]BBB - 
      这样的设置,会发现,如果
      我们以b的身份进入root所属的dir,被分为了other身份
      而other不可写,所以我们无法删除自己的文件夹AAA 及 b的文件夹BBB
      如果将other设为可写,我们就能删除自己的文件夹AAA,但同时B以other进来时,同样也能删除我们的文件夹
      这样就无法满足所需功能
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      粘滞位

      在文件夹的写权限上,可以设置为t 。这个权限就能满足上述需求,在公共目录下,删除只能删自己的目录。

      drwxrwxr-x 2 yicu233 yicu233 4096 Aug 10 15:37 dir
               ↑
      [yicu233@VM-8-16-centos 1Access]$ chmod o+t dir
          
      drwxrwxr-t 2 yicu233 yicu233 4096 Aug 10 15:37 dir
            	 ↑
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

      粘滞位只能为other设置。

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

      1. 超级管理员删除
      2. 该目录的所有者删除
      3. 该文件的所有者删除
  • 相关阅读:
    第四章 文件管理 十二、虚拟文件系统
    AC修炼计划(AtCoder Beginner Contest 329)
    PixMIM论文笔记
    k8s~istio的安装与核心组件
    React报错之map() is not a function
    【Unity】TimeLine系列教程——编排剧情!
    [CTF] 2018-百越杯-Misc-血小板天下第一可爱
    XML 解析技术:DOM4j
    PG函数中有OUT则忽略 RETURNS SETOF record AS $$
    python 调用dll示例
  • 原文地址:https://blog.csdn.net/qq_44041312/article/details/126268313