天天看点

学习笔记第九节课

之前用过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 权限位作用在所属组上,同样是一个s。

做个实验:设置一个set_gid,背景变成了×××,所属组多了一个s 这个set_gid 和uid 功能很相似, 只是所有者变成了所属组。

学习笔记第九节课

set_gid还可以作用在目录上。

做个实验:修改一下234文件的所属组权限,变成了s

学习笔记第九节课

为了更好对比,更改一下234的所属组,chown :user11 234

学习笔记第九节课

再创建一个234下面的子文件 yingxinlinux,查看发现子文件的所属组也是user11

学习笔记第九节课

创建一个子目录 也是属于user11

把特殊权限取消,发现所属组的权限又是root了。

学习笔记第九节课

作用在目录上的时候,创建子目录或者子文件的时候 所创建的子目录或子文件的所属组会和目录一致。

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体系,创建分区的时候都已经划分好了。

学习笔记第九节课

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