Shell 如何检查子目录的读写执行权限?
假设我有一个文件夹football,在football文件夹中,它包含4个文件夹切尔西、曼联、利物浦和马刺。football文件夹中的每个子文件夹都有不同的读、写和执行权限。。。。现在,我如何获得读取、写入和执行的值?如果文件夹是可读的,打印可以读取等等…是否可以与775777类似的东西进行检查Shell 如何检查子目录的读写执行权限?,shell,permissions,ksh,Shell,Permissions,Ksh,假设我有一个文件夹football,在football文件夹中,它包含4个文件夹切尔西、曼联、利物浦和马刺。football文件夹中的每个子文件夹都有不同的读、写和执行权限。。。。现在,我如何获得读取、写入和执行的值?如果文件夹是可读的,打印可以读取等等…是否可以与775777类似的东西进行检查 #!/bin/ksh for d in [subfolder] do if [subfolder can read == $permission_read ] printf
#!/bin/ksh
for d in [subfolder]
do
if [subfolder can read == $permission_read ]
printf "Can read"
else if.........................
else
.........................
fi
done
子文件夹应该通过切尔西、曼联、利物浦和热刺来检查每个权限。…使用shell命令,我们可以看到子目录的rwx权限
ls -l -R a > file.txt
cat file.txt
假设存在目录结构a/b/c/d。要了解rwx权限,只需执行以下命令:
ls -l -R a
它将打印目录a中所有子目录的详细信息
您可以流式输出输出并将其保存在某个文件中,同样,您也可以通过解析来了解子目录的rwx详细信息
ls -l -R a > file.txt
cat file.txt
检查附加的屏幕截图以供参考
请尝试以下解决方案
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)