gpt4 book ai didi

用于测试给定用户是否可以读取目录和其中所有文件的 Bash 脚本?

转载 作者:行者123 更新时间:2023-11-29 09:03:42 24 4
gpt4 key购买 nike

我需要在 bash 脚本中测试给定用户是否可以读取给定目录以及其中的所有文件和子目录。该脚本以 root 身份运行。

假设给定的用户名是 $user 并且要测试的目录是 $dir 我在脚本中添加了以下行

su -m $user -c "test -r $dir && test -x $dir"if [ $? -ne ]; then   echo "$dir is not readable or executable"fi

您会建议纠正还是改进它?

最佳答案

你可以简单地说:

su -m $user -c "find $dir >/dev/null 2>&1 || echo $dir is not readable or executable"

如果 $dir 中的任何文件/目录不可读,这将生成不可读或不可执行消息。

find $dir 如果无法读取任何文件,将返回非零错误代码。


编辑:查找所有不可读目录/文件的更完整(或更可靠)的方法是:

find . \( -type d -perm /u+r -o -type d -perm /u+x -o -type f -perm /u+r \)

关于用于测试给定用户是否可以读取目录和其中所有文件的 Bash 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19569320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com