ルートとして実行する必要があるスクリプトがあります。また、ソース読み取りを使用する構成ファイルもあります。
source conf.sh
conf.sh
一般ユーザーが編集できず、rootアクセス権を取得できないことを確認したいと思います。
ファイルの所有者が誰であるか、グループや他のユーザーがどの権限を持っているかを確認できます。
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