#!/bin/bash
if [ $# -ne 1 ]; then
echo "请提供一个文件路径作为参数"
exit 1
fi
file_path=$1
if [ -f $file_path ]; then
file_size=$(stat -c%s "$file_path")
echo "文件大小为: $file_size 字节"
elif [ -d $file_path ]; then
file_count=$(ls -1 "$file_path" | wc -l)
echo "目录下文件的数量为: $file_count"
else
echo "文件不存在"
fi
排查权限不足故障
- 检查文件或目录权限:使用
ls -l
命令查看文件或目录的权限设置,确保运行脚本的用户对该文件或目录具有相应的读取权限。例如,如果文件权限是 rw-r--r--
,只有文件所有者和所属组的用户有读取权限。
- 检查用户所属组:确认运行脚本的用户属于具有读取文件或目录权限的组。可以使用
groups
命令查看用户所属的组。如果用户不属于正确的组,可能需要将其添加到相应组中。
- 检查SELinux或AppArmor:如果系统启用了SELinux或AppArmor等安全模块,这些模块可能会限制脚本对文件的访问。可以暂时禁用这些安全模块(仅用于测试排查,生产环境需谨慎操作),或者配置其规则以允许脚本访问相关文件或目录。例如,在SELinux环境下,可以使用
semanage
命令调整文件上下文等相关设置。
- 检查挂载选项:如果文件或目录位于远程挂载的文件系统上,挂载选项可能会影响访问权限。检查挂载选项是否允许读取操作,可能需要重新挂载并指定正确的选项。例如,对于NFS挂载,可以检查
/etc/fstab
文件中的挂载配置。