可以请您尝试以下解决方法。
cat script.ksh
GET_PERM() {
cate="$1"
element_to_check="$2"
directory="$directory"
case "$element_to_check" in
"7") echo "Directory named $directory has READ/WRITE/EXECUTE permissions for $cate.";;
"6") echo "Directory named $directory has READ/WRITE permissions for $cate.";;
"5") echo "Directory named $directory has READ/EXECUTE permissions for $cate.";;
"4") echo "Directory named $directory has READ permissions for $cate.";;
"3") echo "Directory named $directory has WRITE/EXECUTE permissions for $cate.";;
"2") echo "Directory named $directory has WRITE permissions for $cate.";;
"1") echo "Directory named $directory has EXECUTE permissions for $cate.";;
"0") echo "Directory named $directory has NULL permissions for $cate.";;
*) echo "Please check Directory named $directory has "$element_to_check" permission.";;
esac
}
while read directory
do
echo "$directory"
perm=($(stat -c "%a" "$directory" | awk 'length($0)>3{gsub(/./,"& ");print substr($0,3);next} {gsub(/./,"& ");print}'))
echo "${perm[*]}"
for i in "${perm[@]}"
do
((count = count + 1))
if [[ $count -eq 1 ]]
then
GET_PERM "USER/OWNER" "$i" "$directory"
elif [[ $count -eq 2 ]]
then
GET_PERM "GROUPS" "$i" "$directory"
else
GET_PERM "OTHERS" "$i" "$directory"
fi
done
unset perm
unset count
done < <(find -type d 2>/dev/null)
脚本的作用是:
- 它在
find
循环的最后有while
条命令,它将按照您给定的路径运行(到目前为止,没有给定路径,因此它在当前目录上运行,有人可以提到完整路径您要检查的位置。)
- 它处理读取,写入和执行基本权限的基本权限,尽管我知道可能有很多权限,但是我将在这里处理OP的问题。
上述脚本的测试运行:当我针对具有3个名为test1
,test2
,test3
的目录的测试目录运行上述脚本时,会提供以下输出。
.
7 7 5
Directory named . has READ/WRITE/EXECUTE permissions for USER/OWNER.
Directory named . has READ/WRITE/EXECUTE permissions for GROUPS.
Directory named . has READ/EXECUTE permissions for OTHERS.
./test3
7 5 5
Directory named ./test3 has READ/WRITE/EXECUTE permissions for USER/OWNER.
Directory named ./test3 has READ/EXECUTE permissions for GROUPS.
Directory named ./test3 has READ/EXECUTE permissions for OTHERS.
./test1
7 7 5
Directory named ./test1 has READ/WRITE/EXECUTE permissions for USER/OWNER.
Directory named ./test1 has READ/WRITE/EXECUTE permissions for GROUPS.
Directory named ./test1 has READ/EXECUTE permissions for OTHERS.
./test2
7 4 4
Directory named ./test2 has READ/WRITE/EXECUTE permissions for USER/OWNER.
Directory named ./test2 has READ permissions for GROUPS.
Directory named ./test2 has READ permissions for OTHERS.
,
使用shell命令,我们可以看到子目录的rwx权限。
假设目录结构为a / b / c / d。要知道rwx权限,只需执行以下命令:
ls -l -R a
它将打印目录a中所有子目录的详细信息。
您可以输出流并将其保存在某个文件中,也可以对其进行解析以了解子目录的rwx详细信息。
ls -l -R a > file.txt
cat file.txt
检查所附的屏幕截图以供参考。
本文链接:https://www.f2er.com/2734833.html