스크립트를 실행하기 전에 루트만 스크립트를 편집할 수 있는지 확인하세요.

스크립트를 실행하기 전에 루트만 스크립트를 편집할 수 있는지 확인하세요.

루트로 실행해야 하는 스크립트가 있습니다. 또한 소스 읽기를 사용하는 구성 파일도 있습니다.

source conf.sh

conf.sh일반 사용자가 편집할 수 없어 루트 액세스 권한을 얻을 수 없는지 확인하고 싶습니다 .

파일의 소유자가 누구인지, 그룹과 다른 사람이 어떤 권한을 가지고 있는지 확인할 수 있습니다.

if [[ "$(stat -c "%a" conf.sh | egrep ".2.|.3.|.6.|.7.|..2|..3|..6|..7")" != "" ]] || [[ "$(stat -c "%u" conf.sh)" != "0" ]]; then
    #don't execute the file"
fi

여기서 뭔가 빠졌나요? 모범 사례가 있습니까?

답변1

산술 평가를 사용하여 이 작업을 수행합니다.

if [[ $(stat -c '%u' conf.sh) -ne 0 -o \
      $(( $(stat -c '%a' conf.sh) & 0044)) -ne 0 ]]; then
    # file's owner is not root or file is writable by group or world
fi

관련 정보