find使用及相关知识
find / -type f -name root.txt 2>/dev/null
f是文件类型
name后接文件名
find -perm -4000的含义
-perm是权限匹配
4000 2000 1000分别表示SUID SGID SBIT
1.普通文件,文件的权限一般三位,777最高文件权限
-perm -0777搜索的就是最高权限的文件rwxrwxrwx
-perm +0777搜索的只要包含rwxrwxrwx任意一个的文件
2.特殊文件,包含权限位置四位,7000为最高,即–s–s–t,同样的方法
-perm -7000搜索的就是最高权限的文件–s–s–t
-perm +7000搜索的只要包含–s–s–t任意一个的文件,–s — —(4000)、— –s —(2000)、— — –t(1000)等
2>/dev/null的含义
在shell语言中 2>dev/null表示忽略掉错误提示信息。
其中 2>表示重定向操作错误提示信息,只有这两个字符并不能删除错误输出。
如果之前的find找到了有效的值,则会正常输出到shell界面,而错误的值则会被忽略掉。
SUID、SGID、SBIT的相关知识
SUID==>Set User ID
SGID==>Set Group ID
SBIT==>Sticky Bit
在unix中有effective id,即有效id,则有euid和egid。内核主要是根据euid和egid来确定进程对资源的访问权限的。
如果一个进程没有设置SUID位,那么一个用户在执行这个进程的时候,将euid和egid判定为用户本身的id,即此时euid=uid,egid=gid。如果这个进程被赋予了SUID位,那么一个用户在执行这个进程的时候euid和egid就不是自己的uid和gid,而是等于已经被设置好的uid和gid,就相当于有别人的权限来执行这个进程。
SUID的作用就是这样:让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源。passwd就是一个很鲜明的例子。
SUID的优先级比SGID高,当一个可执行程序设置了SUID,则SGID会自动变成相应的egid。
UNIX下可以用ls -l 命令来看到文件的权限。用ls命令所得到的表示法的格式是类似这样的:-rwxr-xr-x 。下面解析一下格式所表示的意思。这种表示方法一共有十位:
9 8 7 6 5 4 3 2 1 0
- r w x r - x r - x
第9位表示文件类型,可以为p、d、l、s、c、b和-:
p 表示命名管道文件
d 表示目录文件
l 表示符号连接文件
- 表示普通文件
s 表示socket文件
c 表示字符设备文件
b 表示块设备文件
第8-6位、5-3位、2-0位分别表示文件所有者的权限,同组用户的权限,其他用户的权限,其形式为rwx:
r 表示可读,可以读出文件的内容
w 表示可写,可以修改文件的内容
x 表示可执行,可运行这个程序
没有权限的位置用-表示
本文来自博客园,作者:野荷,转载请注明原文链接:https://www.cnblogs.com/jhinjax/p/17078953.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现