쉘 스크립트를 사용하여 파일 권한을 테스트하는 방법은 무엇입니까?

쉘 스크립트를 사용하여 파일 권한을 테스트하는 방법은 무엇입니까?

이 스크립트를 루트로 실행하여 내 파일에 읽기 권한이 있는지 테스트하고 있습니다.

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

현재 사용자가 파일을 읽을 수 있는지 확인하는 대신 파일에 읽기 권한이 있는지 확인합니다.

관련 정보