我正在透過以 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 如果目前使用者可以讀取該檔案。