学习笔记第九节课

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记第九节课相关的知识,希望对你有一定的参考价值。

特殊权限set_uid


  • 之前用过passwd 查看它的位置 然后查看它的权限,发现它是一个红色的文件,九位权限位里 出现了一个新的权限字符s 。
  • s=set_uid 这个权限的作用就是临时赋予普通用户root用户的权限。
  • linux系统很安全,要改密码就要改一个密码的文件。
  • 密码的文件是etc/shadow 查看它,发现权限全是0.
  • root是超级用户,拥有最高权限,即使全是0 也可以改动,可以授权一个修改的权限。普通用户不行,什么权限就是什么权限。
  • 技术分享图片
  • 为了让普通用户可以改密码,就发明了一个特殊权限set_uid.
  • 除了让所有者之外的用户,去执行带set_uid 的文件一瞬间,可以临时拥有root用户的权限。(这就是set_uid的作用。)
  • 给一个文件设置set_uid 前提是一个二进制文件,而且是一个可执行文件。(ls passwd 都是二进制文件)
  • 这样的权限并不多,在系统中只在/usr/bin/passwd有这个权限。

  • 做个实验:给一个文件授权一个set_uid的权限。
  • 首先切换到一个普通用户,然后ls root 会发现权限不够。
  • 现在个ls设置一个set_uid的权限。
  • 技术分享图片
  • 再次执行发现可以查看了。
  • 技术分享图片
  • 权限还是没有变的,是因为给了ls临时的特殊权限。
  • 技术分享图片
  • 改回来授予的权限, 减去权限即可。
  • 技术分享图片
  • 也可以这样写 chmod u=rws /usr/bin/ls,但是查看后发现权限位是一个S (也有s权限,但是没有x权限,所以变成S,)想变成s 就加一个x
  • 技术分享图片
  • 实际上就算是S 也不受影响。 root用户也能执行。
  • 目录也可以加set_uid 但是没什么用,没意义。

特殊权限set_gid


  • set_gid 权限位作用在所属组上,同样是一个s。
  • 做个实验:设置一个set_gid,背景变成了×××,所属组多了一个s 这个set_gid 和uid 功能很相似, 只是所有者变成了所属组。
  • 技术分享图片
  • set_gid还可以作用在目录上。
  • 做个实验:修改一下234文件的所属组权限,变成了s
  • 技术分享图片
  • 为了更好对比,更改一下234的所属组,chown :user11 234
  • 技术分享图片
  • 再创建一个234下面的子文件 yingxinlinux,查看发现子文件的所属组也是user11
  • 技术分享图片
  • 创建一个子目录 也是属于user11
  • 把特殊权限取消,发现所属组的权限又是root了。
  • 技术分享图片
  • 作用在目录上的时候,创建子目录或者子文件的时候 所创建的子目录或子文件的所属组会和目录一致。

特殊权限stick_bit

  • t=stick_bit tmp是有这个权限的。这个叫 防删除位。这个t也包含x 文件权限位是777 表示所有用户可读可写。
  • 技术分享图片
  • 但是不可以删除,谁的文件谁做主。
  • 做个实验:在tmp下创建一个yingxin2 它的所有者 所属组都是yingxin
  • 技术分享图片
  • 然后vi yingxin2 随便写一些东西。
  • 改一下权限,改为777
  • 技术分享图片
  • 切换一下, 然后换到tmp目录下, 使用vi去编写发现可以,但是去删除却不行,这就是防删除位。
  • 技术分享图片
  • 只有有权限的人可以删,只有root可以删,其他没办法删除。
  • 作用:防止别人删除自己的文件,root除外。

  • 知识点
  • 实验:在tmp下创建一个user11的目录 把权限改为777 (就是把用户user11创建的目录user11的权限改为777)
  • 技术分享图片
  • 然后切换到user11下,去创建文件和目录 都可以创建。
  • 技术分享图片
  • 这个创建的文件和目录可以删除么? 文件显示普通用户只有只读的,没有写的权限的。
  • 但是普通用户没有写的权限,为什么可以删除,是因为你所删除的文件和目录 所在的目录是有权限的。(比如你删除1.txt,看的不是1.txt的权限,而是看它所在的目录,也就是user11的权限)
  • 技术分享图片
  • 但是如果加上了 防删除位 就不能删除了、

软链接文件

  • 软链接类似windows的快捷方式。
  • bin 就是属于软链接。它实际是在usr/bin/下的,使用bin/ls和使用usr/bin/ls是一样的
  • 技术分享图片
  • 技术分享图片
  • 软链接就是在文件本身存了另外一个文件或者目录的路径,路径越长,文件就越大。
  • 在lib64下面的软链接最多。
  • 软链接的作用是节省储存空间。(比如cp一份一模一样的文件,再cp一份就多占了好多空间,但是做个软链接就几kb)
  • ln-s 可以做软链接。ln -s +要做软连接的文件 +要成为的软链接。
  • 做个实验: 把tmp/yum.log /root/111/yum.log
  • 技术分享图片
  • 软链接也可以链接目录。
  • 技术分享图片
  • 也有特殊的情况,实验:在tmp下创建一个软链接。
  • 技术分享图片
  • 这个做的是相对路径,这个仅仅是在当前目录下,这样做有弊端。 假如你在相对路径里创建了一个软链接,然后把原文件拷贝到了其他机器上,或者目录改了名字,软链接就会失效。 做软链接尽量做绝对路径。
  • 做个实验:把111/yingyinlinux.log 挪到123/下, 去查看,发现是一个红色的提示, 说明这个文件不存在,(这就是用了相对路径)
  • 技术分享图片
  • 因为123下没有yum.log,文件不存在 创建一个就可以,就正常了。
  • 技术分享图片

  • 老师工作中的小栗子
  • 假设工作中有一个情况,每天都要写一个日志,但是时间久了 磁盘快写满了。(写满了会出现很糟糕的情况,)可以cp一份 把文件cp到大的分区里(比如/目录下),然后把文件删除,紧接着做一个软链接,把文件软链接到cp的文件去。 这样就解决了文件占磁盘的问题。
  • 软链接可以是文件 ,目录 也可以跨分区。

硬链接文件

  • 硬链接不支持对目录做,只支持对文件做。指令是ln
  • 做个实验,
  • 技术分享图片
  • 硬链接相互为硬链接,软链接删除了源 就不能用了,硬链接删不删源没关系, 硬链接相当于多了一个文件,相当于多了一张皮。真正的文件在inode号里。而且硬链接不会占双份空间,因为inode号只有一个。做多少个硬链接都无所谓。

  • 硬链接不能做目录,
  • 做个实验:
  • 技术分享图片
  • 文件可以做硬链接,但是不能跨分区。
  • 做个实验:把boot目录下的文件做硬链接到tmp下,显示无法创建。因为这两个分区存在相同inode文件的。 分区之间都有inode体系,创建分区的时候都已经划分好了。
  • 技术分享图片

硬链接可以做文件,不能做目录 不能跨分区。 硬链接相当于一张皮,可以创建多个,等于多个皮,但是不能全部删除完。

以上是关于学习笔记第九节课的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记第十九节课

Linux学习第九节课-shell脚本编程

学习笔记第二十九节课

Linux学习第九节课(2019.9.22)

python学习笔记第九节(迭代器,生成器,三元表达式)

数据链路层-第九节:以太网交换机自学习和转发帧的流程