如何根据文件权限查找文件
创始人
2024-03-01 21:37:57
0

在 Linux 中查找文件并不是什么大问题。市面上也有很多可靠的自由开源的可视化查找工具。但对我而言,查找文件,用命令行的方式会更快更简单。我们已经知道 如何根据访问和修改文件的时间寻找或整理文件。今天,在基于 Unix 的操作系统中,我们将见识如何通过权限查找文件。

本段教程中,我将创建三个文件名为 file1file2file3 分别赋予 777766655 文件权限,并分别置于名为 ostechnix 的文件夹中。

mkdir ostechnix && cd ostechnix/
install -b -m 777 /dev/null file1
install -b -m 766 /dev/null file2
install -b -m 655 /dev/null file3

现在,让我们通过权限来查找一下文件。

根据权限查找文件

根据权限查找文件最具代表性的语法:

find -perm mode

mode 可以是代表权限的八进制数字(777、666 …)也可以是权限符号(u=x,a=r+x)。

在深入之前,我们就以下三点详细说明 mode 参数。

  1. 如果我们不指定任何参数前缀,它将会寻找具体权限的文件。
  2. 如果我们使用 - 参数前缀, 寻找到的文件至少拥有 mode 所述的权限,而不是具体的权限(大于或等于此权限的文件都会被查找出来)。
  3. 如果我们使用 / 参数前缀,那么所有者、组或者其他人任意一个应当享有此文件的权限。

为了让你更好的理解,让我举些例子。

首先,我们将要看到基于数字权限查找文件。

基于数字(八进制)权限查找文件

让我们运行下列命令:

find -perm 777

这条命令将会查找到当前目录权限为确切为 777 权限的文件。

1

如你看见的屏幕输出,file1 是唯一一个拥有确切为 777 权限的文件。

现在,让我们使用 - 参数前缀,看看会发生什么。

find -perm -766

如你所见,命令行上显示两个文件。我们给 file2 设置了 766 权限,但是命令行显示两个文件,什么鬼?因为,我们设置了 - 参数前缀。它意味着这条命令将在所有文件中查找文件所有者的“读/写/执行”权限,文件用户组的“读/写”权限和其他用户的“读/写”权限。本例中,file1 和 file2 都符合要求。换句话说,文件并不一样要求时确切的 766 权限。它将会显示任何属于(高于)此权限的文件 。

然后,让我们使用 / 参数前置,看看会发生什么。

find -perm /222

上述命令将会查找某些人(要么是所有者、用户组,要么是其他人)拥有写权限的文件。这里有另外一个例子:

find -perm /220

这条命令会查找所有者或用户组中拥有写权限的文件。这意味着匹配所有者和用户组任一可写的文件,而其他人的权限随意。

如果你使用 - 前缀运行相同的命令,你只会看到所有者和用户组都拥有写权限的文件。

find -perm -220

下面的截图会告诉你这两个参数前缀的不同。

如我之前说过的一样,我们也可以使用符号表示文件权限。

请阅读:

基于符号的文件权限查找文件

在下面的例子中,我们使用例如 u(所有者)、g(用户组) 和 o(其他) 的符号表示法。我们也可以使用字母 a 代表上述三种类型。我们可以通过特指的 r (读)、 w (写)、 x (执行)分别代表它们的权限。

例如,寻找用户组中拥有 权限的文件,执行:

find -perm -g=w

上面的例子中,file1 和 file2 都拥有 权限。请注意,你可以等效使用 =+ 两种符号标识。例如,下列两行相同效果的代码。

find -perm -g=w
find -perm -g+w

查找文件所有者中拥有写权限的文件,执行:

find -perm -u=w

查找所有用户中拥有写权限的文件,执行:

find -perm -a=w

查找所有者和用户组中同时拥有写权限的文件,执行:

find -perm -g+w,u+w

上述命令等效与 find -perm -220

查找所有者或用户组中拥有写权限的文件,执行:

find -perm /u+w,g+w

或者,

find -perm /u=w,g=w

上述命令等效于 find -perm /220

更多详情,参照 man 手册。

man find

了解更多简化案例或其他 Linux 命令,查看man 手册

然后,这就是所有的内容。希望这个教程有用。更多干货,敬请关注。

干杯!


via: https://www.ostechnix.com/find-files-based-permissions/

作者:SK 译者:CYLeft 校对:校对者ID

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

让AI暴露问题,人类才能改...
经观评论 吴晨/文美国麻省理工学院物理学教授泰格马克在其著作《生...
2026-08-03 19:56:12
钉钉悟空通过 ISO/IE...
近日,悟空完成中国质量认证中心 ISO/IEC 42001:202...
2026-06-26 14:32:42
国产AI应用从“会说话”到...
本报记者 孙亚慧 近日,在江苏省宿迁市便民方舟2号楼一楼大厅,不...
2026-03-25 10:37:36
“龙虾”应养在独立智能终端...
OpenClaw火热出圈,数据与隐私安全引发争论。 IC供图 ...
2026-03-12 13:05:02
工信部发布关于防范Open...
工业和信息化部网络安全威胁和漏洞信息共享平台发布关于防范OpenC...
2026-03-12 13:01:23
开源龙虾太野?青藤 Wor...
企业真正缺的往往不是「再装一个智能体」,而是一套默认安全、可治理、...
2026-03-11 08:04:10

热门资讯

“Linux 中国” 开源社区... 这是一个艰难的决定 —— 这不是调侃,而是当你真正做出改变了你十几年生活轨迹的决定时,你就会明白这个...
硬核观察 #1263 德国铁路... #1 德国铁路公司招聘 Windows for Workgroups 3.11 管理员该职位要求了解...
人工智能教程(七):Sciki... 在本系列的 上一篇文章 中,我们用 TensorFlow 构建了第一个神经网络,然后还通过 Kera...
关闭 WSL 中正在运行的 L... 以下是使用 WSL 关闭在 Windows 内运行的 Linux 系统的不同方法。你使用 WSL 在...
MX Linux 23.2 “... 最新的 MX Linux 23.2 小版本更新带来了基本的改进和新增功能。MX Linux 推出了 ...
硬核观察 #1262 网络上最... #1 网络上最古老的软件存档库之一即将关闭美国新墨西哥州立大学(NMSU)最近宣布,即将于 2024...
如何在 RHEL 上通过绑定配... 在 Linux 中,你可以根据自己的需要创建高级网络设置,如 网络绑定 Network Bondin...
Linux Matrix 消息... Matrix 用户可以升级 Fractal 6 了!Fractal 是目前 最好的 Matrix 客...
如何通过 VLC 使用字幕 使用 VLC 媒体播放器播放和管理字幕的新手指南。我是一个超级动漫迷,如果你想观看最新的剧集,那么你...
硬核观察 #1261 X 计划... #1 X 计划在奥斯汀建立内容审核总部据报道,该部门将招聘 100 名全职员工,将主要关注 CSE ...