有没有针对用户的 LS?

有没有针对用户的 LS?

我想查看系统上的用户有权访问哪些文件和文件夹。我是系统管理员。如何获取有关用户可以访问哪些文件和文件夹的更多信息?

首选命令行解决方案,我通过远程 ssh 连接到主机。

答案1

假设用户名是,rick然后尝试这两个命令:

$ sudo ls -al /var/cache/ldconfig/aux-cache

-rw------- 1 root root 82579 Oct  1 16:51 /var/cache/ldconfig/aux-cache

$ sudo -u rick ls -al /var/cache/ldconfig/aux-cache

ls: cannot access '/var/cache/ldconfig/aux-cache': Permission denied

ls在第一个示例中,sudo默认用户可以使用此功能。但是当(rootsudo年代替代驅動) 表示用户rick权限被拒绝。

答案2

您可以使用 find 命令和 -perm 选项根据文件的权限进行搜索,但是如果您打算检查所有者和组级别的访问权限,则还需要使用 -user 和 -group 参数。

您可以在查找手册页中找到这些选项的完整描述,以确定哪个选项最适合您的用例:

man find

但是举个例子,假设您在用户组中有一个名为 bob 的用户,则以下命令将查找 bo 作为所有者、组成员或其他身份具有读取权限的所有文件:

find -perm /444 -user bob -group users

如果用户 bob、组用户或默认的每个人中任何一个对该文件至少具有读取权限,则权限之前的 / 允许匹配,也就是说,它将匹配 bob 拥有的 600 个文件,因为他的用户帐户对该文件具有读取权限,即使其他用户没有。

还有其他前缀允许您对要搜索的权限进行微调,但同样,如果您不知道您的具体需求并且手册页已经记录了这些内容,那么这将是一个冗长的解释。

此外,我觉得这里有必要提一下,由于多个组成员身份等原因,权限确实会变得比这更复杂一些。像这样的工具是快速概览用户可能有权访问的文件的好方法,但如果安全是您的最终目标,不要假设输出是全面的,我建议在这种情况下测试是确保的最佳方法。

答案3

使用以下命令查找用户拥有的文件:

寻找目錄位置-用户<用户名>

...其中<username>替换为您用来过滤搜索结果的用户的名称。您可以按如下方式进一步过滤搜索:

寻找目錄位置-用户<用户名>-姓名<文件名>
  • directory-location:在此目录位置定位文件或目录。
  • -user <username>:查找属于该用户的文件或目录。
  • -name <file-name>:文件名或图样。

来源:Linux / Unix 查找特定用户/组拥有的所有文件

相关内容