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
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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
    

    这里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--
    同样也对应我们创建出来的文件所看到的权限
    
    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进来时,同样也能删除我们的文件夹
    这样就无法满足所需功能
    
    粘滞位

    在文件夹的写权限上,可以设置为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
          	 ↑
    

    粘滞位只能为other设置。

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

    1. 超级管理员删除
    2. 该目录的所有者删除
    3. 该文件的所有者删除
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值