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 表示可执行,可运行这个程序

  没有权限的位置用-表示

posted @ 2023-01-31 14:48  野荷  阅读(36)  评论(0编辑  收藏  举报