2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件

简介:

2.18 特殊权限set_uid

2.19 特殊权限set_gid

2.20 特殊权限stick_bit

2.21 软链接文件

2.22 硬连接文件


2.18 特殊权限set_uid

passwd 有setuid 权限

s 是set_uid的权限

更改密码的文件

即使是000权限,root 也可以更改这个文件

passwd 有setuid 权限  当普通用户执行该命令的时候,就会临时拥有root用户的身份

给用户设置uid 前提是 这个文件是 二进制文件 ,而且是一个可执行文件

怎么给一个文件 设置setuid 权限

打开另一个终端 登录aming 用户

去第一个终端 设置set uid 权限

去掉s 权限 加上大S 权限

小s 和大S 取决于 用户本身有没有执行x权限

2.19 set_gid 权限

先把之前的 setuid权限 去掉    

给组加上s  setgid 权限

总结

set_gid 权限的作用     不仅可以作用在文件 ,也可以作用在目录上

当作用在文件 和 set uid 作用是类似的,可以让执行这个文件的普通的用户 临时拥有所属组的身份

当作用在目录上的时候,当你创建子目录 或者 子文件,创建的 子目录 和子文件的所属组 和 该目录的所属组保持一致

2.20 stick_bit

stick_bit 作用是就是防止别人删除自己的文件 (root用户除外)

这个t 是防删除位

在另一个终端下创建一个文件aming

对aming 文件修改

再切到1终端

是可以更改文件内容的

但是不允许删除aming用户的 创建的文件

这个权限叫防删除位

只有有权限的人 root 用户可以删除,其他用户不可能删除

stickbit 防止别人删除自己的文件  root除外

再在用户user1 下面 创建一个目录 user1 改权限为777

777权限意味着 任何用户都可以去写读 执行

再切换到aming用户下在user1 目录下    可以  创建目录 文件

删除的文件 所在的目录 有没有写权限,而不是看删除的五年级本身的权限

user1 目录下面有1.txt 文件

要想删除 1.txt, 不是看1.txt 的权限

看的是1.txt 所在目录的权限

所在目录 是user1 user1 的权限是777  777是任何人都可以写

2.21 软链接文件

软链接

软链接 类似于Windows 的快捷方式

这个/bin 真正是在usr/bin 下面

这里/bin/ls  =   /usr/bin/ls

在这个文件下 软链接文件比较多

软链接可以节省空间

也可以跨分区

把/tmp/yum.log 做个软链接 放到  /root/111/目录下

ln -s    左边原文件,真正存在的文件 空间比较大   后面的才是 软链接文件  

软链接也可以针对目录

同一个目录下   做一个相对路径 软链接   仅仅是在当前目录下 ,

会有一些弊端,原文件不存在 被移走了,或者文件、目录改名字  ,就会导致 做的这个软链接出现问题

所以,做软链接,尽量使用绝对路径

df -h  查看磁盘分区

举例:当有一个服务 在/boot下的一个aming 服务不停的在 /boot 下产生文件 aming.log  这个

aming.log 文件在一直的增大,导致/boot 快用完了

现在为了不让/boot磁盘空间被占满 ,可以采取一个办法,给/boot/aming.log 做一个软链接文件

1,首先把/boot/aming.log  拷贝到 根目录下的aming.log下

cp /boot/aming.log /aming.log 下

2 再删掉/boot/aming.log  (占空间大,删掉)

rm /boot/aming.log

3给 aming.log 软链接 到 目录/boot/aming.log下

ln -s /aming.log /boot/aming.log

这样这个服务在写日志的时候,因为靠路径去找/boot/aming.log,实际上写到/aming.log下

2.22 硬连接文件

硬链接

硬链接不支持对目录做硬链接

只支持对文件做

对1.txt 做一个硬链接  1_heard.txt

对1.txt 做一个软连接  1_sorft.txt

有俩个文件使用了同一个inode号

硬链接 特性:创建立一个文件 和 另一个文件node号一样 ,这个俩个文件  相互为硬链接

不管谁是原 谁是目标,都一样

软链接 不可以删除 ,把原删了

受影响了

但是硬链接没事,

其实就是多一个文件指向这个inode 号

硬链接 不可以对目录做硬链接

跨设备也不行

总结,硬链接

可以对文件做硬链接 ,不可以对目录做

不可以跨分区,硬链接可以删除 ,因为还有其他的文件 使用这个inode号

好比是一张皮,一个文件的皮,这个皮有多张,每张皮 都指向同一个inode ,可以删掉 、扔掉没关系,但是不可以全部都删掉,必须留一张皮,



本文转自   ch71smas   51CTO博客,原文链接:http://blog.51cto.com/ch71smas/1955262

相关文章
|
安全 网络协议 Shell
社会工程学工具包(SET)的PDF文件钓鱼攻击
社会工程学工具包(SET)的PDF文件钓鱼攻击
209 0
|
存储 NoSQL Java
数据类型-set 实现权限校验| 学习笔记
快速学习数据类型-set 实现权限校验
数据类型-set 实现权限校验| 学习笔记
Jmeter组件-Random CSV Data Set Config参数化CSV随机读取文件
Jmeter组件-Random CSV Data Set Config参数化CSV随机读取文件
Jmeter组件-Random CSV Data Set Config参数化CSV随机读取文件
|
12天前
|
算法
你对Collection中Set、List、Map理解?
你对Collection中Set、List、Map理解?
48 18
你对Collection中Set、List、Map理解?
|
6天前
|
存储 缓存 安全
只会“有序无序”?面试官嫌弃的List、Set、Map回答!
小米,一位热衷于技术分享的程序员,通过与朋友小林的对话,详细解析了Java面试中常见的List、Set、Map三者之间的区别,不仅涵盖了它们的基本特性,还深入探讨了各自的实现原理及应用场景,帮助面试者更好地准备相关问题。
42 20
|
22天前
|
存储 C++ 容器
【C++】map、set基本用法
本文介绍了C++ STL中的`map`和`set`两种关联容器。`map`用于存储键值对,每个键唯一;而`set`存储唯一元素,不包含值。两者均基于红黑树实现,支持高效的查找、插入和删除操作。文中详细列举了它们的构造方法、迭代器、容量检查、元素修改等常用接口,并简要对比了`map`与`set`的主要差异。此外,还介绍了允许重复元素的`multiset`和`multimap`。
29 3
【C++】map、set基本用法
|
22天前
|
存储 算法 C++
【C++】unordered_map(set)
C++中的`unordered`容器(如`std::unordered_set`、`std::unordered_map`)基于哈希表实现,提供高效的查找、插入和删除操作。哈希表通过哈希函数将元素映射到特定的“桶”中,每个桶可存储一个或多个元素,以处理哈希冲突。主要组成部分包括哈希表、哈希函数、冲突处理机制、负载因子和再散列,以及迭代器。哈希函数用于计算元素的哈希值,冲突通过开链法解决,负载因子控制哈希表的扩展。迭代器支持遍历容器中的元素。`unordered_map`和`unordered_set`的插入、查找和删除操作在理想情况下时间复杂度为O(1),但在冲突较多时可能退化为O(n)。
20 5
|
2月前
|
存储 JavaScript 前端开发
Set、Map、WeakSet 和 WeakMap 的区别
在 JavaScript 中,Set 和 Map 用于存储唯一值和键值对,支持多种操作方法,如添加、删除和检查元素。WeakSet 和 WeakMap 则存储弱引用的对象,有助于防止内存泄漏,适合特定场景使用。