如何使用find命令按权限查找文件详解


原文地址:如何使用find命令按权限查找文件详解

本文分享了使用带有-perm选项的find命令通过权限来查找Linux系统上的资源。

Linux文件系统可能很复杂。添加已挂载的远程文件系统,可移动媒体以及您创建的任何服务器特定目录,您或您的用户可能会发现很难确切记住给定文件的存储位置。这就是find命令的所在。它使您可以根据各种条件搜索文件或目录。我将在find下面进行基本的回顾,但是本文的重点有所不同:按权限查找资源。

为什么需要按权限查找?

  • 安全审核
  • 解决用户访问投诉
  • 解决应用程序访问问题

按名称查找的快速示例

关于启用Sysadmin,还有其他文章find有效地介绍了该命令。但是,我将在此处快速总结该命令。

句法:

find (where to search) (what to search for)

例:

# find /etc -name rsyslog
# find /home/user01 -type d

但是,本文重点介绍使用-perm选项,该选项基于权限设置进行搜索。

绝对模式与符号模式

记得使用chmod命令设置权限。该chmod命令可以识别绝对模式和符号模式。

find命令还可以识别任何一种模式,因此您可以使用最自然的方式。对我来说,这是绝对模式。您需要回顾一些有关绝对模式和符号模式的内容,以有效使用该find -perms命令。

绝对模式

绝对模式使用八进制值表示权限。这些值按顺序列出,作为要分配给用户,组和所有其他用户的权限。

例如:

chmod 764 file1

设置用户7(RWX),组6(RW),其他用户为4(R) file1

符号模式

符号模式使用符号表示访问级别,并使用数学运算符赋予(+)或删除(-)权限。

例如:

符号模式

符号模式使用符号表示访问级别,并使用数学运算符赋予(+)或删除(-)权限。

例如:

# chmod o+rw file1

其他人读取写入file1的权限。

通过使用绝对模式查找资源权限

最基本的权限搜索不使用其他参数。该语句显示为“使用这些权限查找资源”。

例如:

find /etc -perm 777

上面的示例只查找具有指定权限的资源——不多也不少。如果你需要更多的灵活性呢?还有两个非常有用的附加参数。第一个是-字符(破折号),第二个是/字符(斜杠)。我们都来看看。

Find和-符号

使用该-选项的意思是“至少设置了此权限级别,以及更高的权限”。

find . -perm -644

此示例显示当前目录中至少具有644个权限的所有资源。

Find和/符号

使用该/选项的意思是"列出任何设置为某个权限的资源“

通过使用符号模式查找资源权限

符号模式使用ugo符号(用户,组,其他),rwx符号(读,写,执行)和数学运算符(例如+-)来定义权限。

通过使用符号模式查找资源权限

符号模式使用ugo符号(用户,组,其他),rwx符号(读,写,执行)和数学运算符(例如+-)来定义权限。

find -

-选项在符号模式下的操作与在绝对模式下的操作相同。它显示“至少具有此访问级别”的资源。

例:

find -perm -u+w,g+w

find /

/还的功能在象征性的模式相同。它显示具有“列出的所有权限”的资源。

例:

find -perm /u+w,g+w

Linux标准权限非常普遍,现在您知道如何搜索配置了给定访问级别的资源。但是,Linux还利用了特殊权限。该find命令也可以显示这些权限。

查找配置了特殊权限的资源

Linux特殊权限设置了对资源的额外访问控制。有三种特殊权限:设置用户ID (SUID)、设置组ID (SGID)和粘贴位。每个细节都超出了本文的范围,但让我快速总结一下:

特许 描述
SUID 用户以所有者的身份执行文件,即使该用户不是所有者也是如此
SGID 目录的内容自动继承父文件夹的组关联(对于项目团队共享的目录非常有用)
Sticky Bit 该文件会自动加载到内存中,并且不能被所有者以外的任何人删除或更改

特殊权限使用第四位(最左侧)进行配置:

  • SUID = 4
  • SGID = 2
  • Sticky Bit = 1

查找配置了SUID的文件

要查找定义了SUID访问级别的文件,请使用-perm选项,但要输入第四位数字。SUID的八进制值为4

例如,要搜索配置了SUID的资源:

find /usr/bin -perm 4755

查找配置了SGID的文件

您可以使用相同的语法显示具有SGID八进制值2定义的SGID权限的资源。

例如,要搜索配置了SGID的资源:

find /usr/bin -perm 2755

查找配置了sticky bit的文件

最后,您可以使用八进制值1来显示配置了“粘滞位”的资源。

这是一个便利贴示例:

find /etc -perm /1444

注意-/参数在特殊权限下的工作方式与在标准权限下的工作方式相同。

 

评论

登录后评论

服务器优惠活动

Top