루트로 실행해야 하는 스크립트가 있습니다. 또한 소스 읽기를 사용하는 구성 파일도 있습니다.
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