Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 如何检查子目录的读写执行权限?_Shell_Permissions_Ksh - Fatal编程技术网

Shell 如何检查子目录的读写执行权限?

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

假设我有一个文件夹football,在football文件夹中,它包含4个文件夹切尔西、曼联、利物浦和马刺。football文件夹中的每个子文件夹都有不同的读、写和执行权限。。。。现在,我如何获得读取、写入和执行的值?如果文件夹是可读的,打印可以读取等等…是否可以与775777类似的东西进行检查

 #!/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)