我正在通过以 root 身份运行此脚本来测试我的文件是否具有读取权限:
#!/usr/bin/env bash
FILE="/etc/shadow"
if ! [ -r $FILE ]; then
echo "Hello"
fi
exit 0
理想情况下,脚本必须打印,Hello
因为没有读取权限。但是,这并没有发生。
ls -ltrh /etc/shadow
---------- 1 root root 7.1K Jun 7 06:59 /etc/shadow
脚本中需要修改什么?
答案1
检查目录、文件或链接的权限信息
stat -L -c "%a %G %U" FILE or DIRECTORY
答案2
#!/usr/bin/env bash
FILE="/etc/shadow"
if ! [[ $(stat -c "%A" $FILE) =~ "r" ]]; then
echo "Hello"
fi
exit 0
这将检查文件是否具有读取权限,而不是 checkinf 如果当前用户可以读取该文件。