Linux特殊权限set_uid、set_gid、stick_bit命令和软链接文件、硬连接文件

简介:

特殊权限set_uid:

用ls -l查看 passwd命令文件的路径可以看到这个文件和之前所看到的文件有些不同,有红色的标记,而且有个s权限:

wKioL1ngbr2BX5z9AAGf48SbhZI912.png

这个s就是set_uid的权限,这个权限可以让普通用户修改自己的密码,这个权限的原理是:当普通用户执行passwd命令的一瞬间给它赋予root的身份权限,相当于临时使用了root权限,所以才能够修改得了密码文件,这就是set_uid的权限的作用。

  注意:能够有set_uid权限的文件,这个文件一定得是二进制的可执行文件。



普通用户使用ls命令想要查看root目录是权限不够的,所以想要普通用户也能使用ls命令查看root目录或者查看需要root权限的文件、目录的时候,我们可以给ls命令授予set_uid权限:

wKiom1ngcXOAyYQNAAFCjN5zMMo698.png


给ls命令授予set_uid权限:

wKioL1ngbr7yZWkaAAGoSVQtdxE079.png


这时候用普通用户就可以查看root目录了:

wKiom1ngcXWjeXzSAAQnWQsYN-Q055.png


去掉set_uid权限:

wKioL1ngbr-iNrbtAAI2FNiFFLs723.png


另一种设置set_uid权限的方法:

wKiom1ngcXfSEXdjAAId_CxJq-Q879.png


想要将s变成小写加个x权限即可:

wKioL1ngbsCD-TKTAAG0-naw794282.png

目录也是可以设置set_uid权限的,但是也因为目录不是命令文件,没有实际的执行意义,所以设置set_uid权限也是没有意义的。


特殊权限set_gid:

set_gid和 set_uid挺像的,只不过这个set_gid权限是作用在所属组上面的,给ls命令设置一个set_gid权限:

wKioL1ngbsLy0fFrAAJ94UaJhx4166.png


所以set_gid权限的作用是临时给普通用户拥有此文件所属组的身份权限,目录也是可以设置这个权限的:

wKiom1ngcXiwDdGEAAG8X_-Lauk570.png


上面我们把Test1目录设置了set_gid权限,这时候把Test1目录的所属组改为user1后,在此目录下所创建的子目录或文件的所属组都会和父目录保持一致,也就是说它们的所属组都会是user1:

wKiom1ngcXnjiWwzAAFULbveqV4435.png

wKioL1ngbsOxFvApAAJ-CELQeCc741.png


特殊权限stick_bit:

    tmp目录有stick_bit权限,这个权限的表示字符是t:

wKiom1ngcXrDRZkoAAE56JX6QZs227.png


这个stick_bit权限是用于防止自己的文件被其他用户删除的,设置了权限后除了这文件的所有者和所属组之外的用户是不能删除的:

wKioL1ngbsTx56waAAEoXnyAIRE161.png


软链接文件:

  软链接文件类似于windows的快捷方式:

wKiom1ngcXuDXCD3AAIIhK7Qagc151.png

软链接文件相当于是存储了一个路径,所以这个软链接文件的大小就取决于路径的长度。


在lib64目录下软链接文件比较多:

wKioL1ngbsmSp0p4AApihqTo-2Q061.png

wKioL1ngbs-wDo1gAA0xN4z4r5U688.png

  软链接文件的作用主要是节省存储空间,因为当需要复制一个文件的时候只需要复制那个文件的软链接文件即可,如果复制文件本身的话占用空间会大得多。


制作软链接:

ln -s命令可以制作软链接:

wKiom1ngcYegf9FmAANZvR6mjNk056.png

wKiom1ngcYnxmw_TAARQD1zdhlU445.png


   目录也可以做一个软链接:

wKiom1ngcYzyNIYAAATtfodbL8Q865.png


制作相对路径的软链接:

相对路径的软链接有弊端,如果把这个目录拷贝到别的计算机或者这个目录的名称发生改变的话,这个相对路径的软链接就会失效,所以制作软链接尽量使用绝对路径。

  例如我将123.txt移动到Test1目录下:

wKioL1ngbtjR5Cn8AAShAoYvqlI942.png


如果是使用的绝对路径就不会有这种问题:

wKioL1ngbtnBCrlBAAOc1ohpzNU585.png

所以尽量使用绝对路径。


软链接还可以解决磁盘存储空间不够的问题,例如tmp目录的快存储满了,但是这个目录下有一个日志文件需要一直被写入数据,这个时候就可以将这个日志文件先移动到一个磁盘空间大的目录下,然后将这个日志文件做一个软链接,接着将这个软链接文件放在tmp目录下,这样的话写入的数据是写入到原文件的,而不会写入到软链接文件,所以遇到这问题的时候可以用这种方式解决。


 硬链接文件:

     ln命令可以制作硬链接,硬链接有点类似于复制了原文件但又不完全是,因为这个复制不会占用磁盘空间,因为原文件和硬链接文件的inode号是一样的,使用的是同一个inode号。

所以原文件和硬链接文件实际上是同一个文件,当原文件的内容改动时,硬链接的文件也会跟着改动,同样的硬链接的文件内容改动时,原文件的内容也会跟着改动。硬链接只支持对文件进行制作,不能对目录进行制作:

wKiom1ngca2xlJJoAAFYlLBFY-U152.png

wKiom1ngca-yFFF1AAXMON1sDes968.png

wKioL1ngbvnRUs_qAAIh5nEtDAU442.png


硬链接的特性:两个文件相互为硬链接,并且信息一模一样,使用的inode号也是同一个,硬链接的原文件即便被删除了也不会影响到硬链接文件,因为原文件的inode还在被硬链接文件指向着。

这个inode号就像一个被多个包装盒包装着的气体,这些包装盒就是原文件和硬链接文件,不管你有多少个包装盒,只要最后一个包装盒没有被撕掉,那么这个气体就不会消失,如果最后一个包装盒都被撕掉了这个气体自然就会流走了。所以不管删除的是原文件还是硬链接文件,只要还剩最后一个文件指向着那个inode号,那么这个文件就还存在,如果最后一个指向那个inode号的文件都被删除了,那么这个文件就是被彻底删除了。

硬链接文件不会占用磁盘空间,因为它和原文件指向的是同一个inode,而且硬链接不允许跨目录分区,因为每个目录分区都有自己的inode体系:

wKioL1ngbvrTuyz5AAEeGuqr2UY641.png






本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1972113,如需转载请自行联系原作者

相关文章
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
1181 1
二、Linux文本处理与文件操作核心命令
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
908 137
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
1890 58
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
1821 2
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
1097 16
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
1215 0
Linux内存问题排查命令详解
|
Linux 网络安全 开发工具
技术栈:这50条最常用的 Linux 命令你一定要会!
建议多在终端中实践,遇到不懂的命令就用 man 或 --help 了解详情!
2382 0
|
JSON 自然语言处理 Linux
linux命令—tree
tree是一款强大的Linux命令行工具,用于以树状结构递归展示目录和文件,直观呈现层级关系。支持多种功能,如过滤、排序、权限显示及格式化输出等。安装方法因系统而异常用场景包括:基础用法(显示当前或指定目录结构)、核心参数应用(如层级控制-L、隐藏文件显示-a、完整路径输出-f)以及进阶操作(如磁盘空间分析--du、结合grep过滤内容、生成JSON格式列表-J等)。此外,还可生成网站目录结构图并导出为HTML文件。注意事项:使用Tab键补全路径避免错误;超大目录建议限制遍历层数;脚本中推荐禁用统计信息以优化性能。更多详情可查阅手册mantree。
1474 143
linux命令—tree
|
监控 Linux 网络安全
Linux命令大全:从入门到精通
日常使用的linux命令整理
2051 13
|
Linux 网络安全 数据安全/隐私保护
使用Linux系统的mount命令挂载远程服务器的文件夹。
如此一来,你就完成了一次从你的Linux发车站到远程服务器文件夹的有趣旅行。在这个技术之旅中,你既探索了新地方,也学到了如何桥接不同系统之间的距离。
2343 21