shell脚本内写入权限

shell脚本内写入权限

如何检查用户是否对该目录具有写权限,目录名称作为命令行参数传递。

答案1

@SHW 的答案不是一个好主意,在某些情况下它会返回不正确的结果。

请仅使用test命令(或其[别名):

if [ -w "$dirname" ]; then
    echo "$dirname is writable"
fi

因为test带有-w测试的命令不会检查历史记录UNIX permission bits,而是调用access(2)来验证可写性。

使用的优点access(2)access还包括ACL仅检查传统 UNIX 权限位时所缺少的影响。

答案2

简单的脚本来找出写权限

ls -ld directory | cut -c -10 > temp_perm
owner_perm=`cut -c 3 temp_perm`
group_perm=`cut -c 6 temp_perm`
other_perm=`cut -c 9 temp_perm`
[ "$owner_perm" -eq "w" ] && echo "Owner have write permission"
[ "$group_perm" -eq "w" ] && echo "Group have write permission"
[ "$other_perm" -eq "w" ] && echo "Other have write permission"

相关内容