特殊权限set_uid
以passwd(修改密码)为例,我们演示一下set_uid
我们先查看一下passwd的权限
ls -l /usr/bin/passwd<br/>分析一下,/etc/passwd的权限为 -rw-r--r-- 也就是说:该文件的所有者拥有读写的权限,而用户组成员和其它成员只有查看的权限。我们知道,在系统中我们要修改一个用户的密码,root用户和普通用户均可以用/usr/bin/passwd someuser这个命令来修改这个/etc/passwd这个文件,root用户本身拥有对/etc/passwd的写权限,无可厚非;那普通用户呢,这里就用到了setuid,setuid的作用是“让执行该命令的用户以该命令拥有者的权限去执行”,就是普通用户执行passwd时会拥有root的权限,这样就可以修改/etc/passwd这个文件了。它的标志为:s,会出现在x的地方<br/>
我们做个试验,我们给ls授权set_uid权限试一下
我们先再登录到一个普通用户下去
su - yang
然后ls一下/root/
·
我们用root用户给ls加一个s权限
chmod u+s /usr/bin/ls
·
然后我们换成普通用户yang,再ls一下/root/
·
现在普通用户yang可以ls /root/了,但文件权限没变,普通用户还是不可读写执行
·
我们再把ls的s权限给去掉,再试试
·
这就是set_uid的用法,及用途
·
·
·
·
·
特殊权限set_gid
set_gid和set_uid几乎相似,set_uid是修改文件拥有者的s权限,set_gid是修改目录和文件所属组的s权限
我们先给ls设置set_gid权限
set_gid g+s /usr/bin/ls
`
我们看下用普通用户能否拥有root组的权限
·
他是可以使用root组的权限的
我们给一个目录设置set_gid权限,修改目录所属组,在他下面创建文件和子目录,是否还会是同组
·
创建子目录和文件,并查看所属组
上面我们可以看到,没添加set_gid权限前,创建的文件还都是root组的,添加完set_gid权限后添加的文件就是目录的所属组了
·
·
·
·
·
特殊权限stick_bit
stick_bit的作用
我们知道/tmp是系统的临时文件目录,所有的用户在该目录下拥有所有的权限,也就是说在该目录下可以任意创建、修改、删除文件,那如果用户A在该目录下创建了一个文件,用户B将该文件删除了,这种情况我们是不能允许的。为了达到该目的,就出现了stick bit(粘滞位)的概念。它是针对目录来说的,如果该目录设置了stick bit(粘滞位),则该目录下的文件除了该文件的创建者和root用户可以删除和修改/tmp目录下的stuff,别的用户均不能动别人的,这就是粘滞位的作用
·
我们做个试验,我们用用户yang创建一个文件,然后切换到用户huang,看看能不能删除掉
·
然后后我们使用用户huang 看看是否能删除
显然是不能删除的,但是是可以修改的
·
如何设置stick_bit权限
chmod o+t 目录
·
·
·
上三节课用法总结
chmod u+s xxx # 设置setuid权限
chmod g+s xxx # 设置setgid权限
chmod o+t xxx # 设置stick bit权限,针对目录
·
·
·
·
·
软链接文件
软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。(简单说就是一个快捷方式)
我门先看一下已经存在的软链接的样子
·
前面浅蓝色就是软链接,后面绿色是原路径/文件
·
如何制作软链接
in -s xxx(原地址/文件) xxx(软链接地址/文件)
·
·
·
硬链接
硬链接(hard link, 也称链接)就是一个文件的一个或多个文件名。再说白点,所谓链接无非是把文件名和计算机文件系统使用的节点号链接起来。因此我们可以用多个文件名与同一个文件进行链接,这些文件名可以在同一目录或不同目录。但硬链接无法为目录设置,且无法跨分区设置
·
我们制作一个一硬链接
in xxx(源文件) xxx(目标文件) 做好后硬链接是无法查看谁是原文件的,因为它们的时间,大小都是一样的
·
硬链接好比一张皮,可删除任意一张皮,删除文件。删除文件只需将相应的目录项删除,该文件的链接数减1,如果删除目录项后该文件的链接数为零,这时系统才把真正的文件从磁盘上删除。
转载于:https://blog.51cto.com/13658403/2092753