我们要检查下的所有文件和文件夹/hadoop/hdfs具有权限 - hdfs:hadoop
是否可以使用 find 命令进行此测试?
如果找到没有此权限的捕获文件/文件夹,则 find 将打印这些文件/文件夹
答案1
您可以列出/hadoop/hdfs
该目录下的所有条目不是属于用户hdfs
和hadoop
组
find /hadoop/hdfs ! '(' -user hdfs -group hadoop ')' -ls
最后-ls
将以类似于 的输出的格式列出找到的路径名ls -l
。
答案2
是的,这可以find
与参数-user
和 一起使用-group
。例如,find /path/to/your/directory/* -user uname -group gname
列出指定目录中具有指定用户和组所有权的所有文件(文件夹也只是文件)。您可能还想使用该参数-type
将结果限制为仅某些文件类型,man find
如果需要,请参阅 参考资料 已知类型的列表。
但是,如果您只是想确保所有文件和文件夹都具有正确的所有权,一个更简单的解决方案可能是覆盖所有现有权限(无论它们是什么),而不chown
首先检查旧权限,但这取决于您的使用情况如果这是可以忍受的情况。例如,您可以cd
进入您选择的目录,并使用 遍历该目录和所有子目录chwon -R uname:gname
。如果您拥有权限,则每个文件(即:所有文件和文件夹)随后都将拥有指定的用户和组所有权。