diff options
author | ToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp> | 2020-03-30 09:24:26 +0900 |
---|---|---|
committer | ToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp> | 2020-03-30 09:24:26 +0900 |
commit | 5b80bfd7bffd4c20d80b7c70a7130529e9a755dd (patch) | |
tree | b4bb18dcd1487dbf1ea8127e5671b7bb2eded033 /meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/set_capability.sh | |
parent | 706ad73eb02caf8532deaf5d38995bd258725cb8 (diff) |
agl-basesystem
Diffstat (limited to 'meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/set_capability.sh')
-rwxr-xr-x | meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/set_capability.sh | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/set_capability.sh b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/set_capability.sh new file mode 100755 index 00000000..aa9b78de --- /dev/null +++ b/meta-agl/meta-agl-basesystem/recipes-core/agl-systemd/files/tool_9E_SI/set_capability.sh @@ -0,0 +1,82 @@ +#!/bin/bash +# +# @copyright Copyright (c) 2019 TOYOTA MOTOR CORPORATION. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +ROMFILESTOP=/ +CAP_LST=${ROMFILESTOP}/usr/target/cap.lst +echo `cat ${CAP_LST}` +#----------------------------------------------------------------------- +# Capability + +df / --exclude-type=nfs > /dev/null +IS_EMMC_BOOT=$? + +#*********************from init_nfs_cap.sh************************** + +echo "init_nfs-cap.sh: Start" + +VERBOSE=y +SKIPWARN=n +#----------------------------------------------------------------------- +# Set Capability for NFS or Set DummyLink for ROM +#CAP_LST="/usr/debug/share/target/cap.lst" +CAP_LST="/usr/target/cap.lst" + +if [ $IS_EMMC_BOOT -ne 0 ]; then +if [ -f "${CAP_LST}" ];then + echo "*** set capability for NFS environment ***" + CAPPATH=/tmp/ + cd / + for PREAD in `cat ${CAP_LST}` + do + IFS_ORG=${IFS} ; IFS='|' ; PARAM=(${PREAD}) ; IFS=${IFS_ORG} + CAP_NAME=${PARAM[0]} ; FMODE=${PARAM[1]} ; FUID_GID=${PARAM[2]} + FCAP=${PARAM[3]} ; FKEEPORGPATH=${PARAM[4]} + if [ ! -f "${CAP_NAME}" -a ! -f "${CAP_NAME}.org" ];then + if [ "${SKIPWARN}" = "n" ];then + echo "set capability: ${CAP_NAME}: No such file or directory" 1>&2 + fi + continue + fi + TCAP_NAME="/tmp/${CAP_NAME##*/}" + # Set Capability for NFS + if [ ! -L "${CAP_NAME}" ]; then + cp -a ${CAP_NAME} ${TCAP_NAME} + if [ "${FKEEPORGPATH}" = "y" ];then + mv ${CAP_NAME} ${CAP_NAME}.org + ln -fs ${TCAP_NAME} ${CAP_NAME} + fi + else + cp -a ${CAP_NAME}.org ${TCAP_NAME} + fi + if [ -n "${FUID_GID}" ];then + chown ${FUID_GID} ${TCAP_NAME} + fi + if [ -n "${FMODE}" ];then + chmod ${FMODE} ${TCAP_NAME} + fi + if [ -n "${FCAP}" ];then + setcap ${FCAP} ${TCAP_NAME} + if [ "${VERBOSE}" = "y" ];then + getcap ${TCAP_NAME} + fi + fi + done + cd - > /dev/null +else + unset CAPPATH +fi +fi |