#!/bin/bash ################################################################################ # HPCC SYSTEMS software Copyright (C) 2012 HPCC Systems®. # # 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. ################################################################################ ###### HPCC_CONFIG=${HPCC_CONFIG:-${CONFIG_DIR}/${ENV_CONF_FILE}} SECTION=${1:-DEFAULT} USER_NAME=`sed -n "/\[${SECTION}\]/,/\[/p" ${HPCC_CONFIG} | grep "^user *= *" | sed -e 's/^user *= *//'` PREFIX_PATH=`sed -n "/\[${SECTION}\]/,/\[/p" ${HPCC_CONFIG} | grep "^path *= *" | sed -e 's/^path *= *//'` source $PREFIX_PATH/sbin/alter_confs.sh if grep "\\#includedir /etc/sudoers.d" /etc/sudoers > /dev/null 2>&1; then [[ ! -d /etc/sudoers.d ]] && mkdir -m 0750 /etc/sudoers.d cat > /etc/sudoers.d/${USER_NAME} <<- EOF Cmnd_Alias HPCC_DAFILESRV = /etc/init.d/dafilesrv Cmnd_Alias HPCC_HPCCINIT = /etc/init.d/hpcc-init Cmnd_Alias HPCC_SYSD_HPCCSYSTEMS_PLATFORM_START = /bin/systemctl start hpccsystems-platform.target Cmnd_Alias HPCC_SYSD_HPCCSYSTEMS_PLATFORM_STOP = /bin/systemctl stop hpccsystems-platform.target Cmnd_Alias HPCC_SYSD_HPCCSYSTEMS_PLATFORM_STATUS = /bin/systemctl list-dependencies hpccsystems-platform.target Cmnd_Alias HPCC_SYSD_THOR_START = /bin/systemctl start thor* Cmnd_Alias HPCC_SYSD_THOR_STOP = /bin/systemctl stop thor* Cmnd_Alias HPCC_SYSD_THORSLAVE_START = /bin/systemctl start thorslave* Cmnd_Alias HPCC_SYSD_THORSLAVE_STOP = /bin/systemctl stop thorslave* Cmnd_Alias HPCC_SYSD_ESP_START = /bin/systemctl start esp* Cmnd_Alias HPCC_SYSD_ESP_STOP = /bin/systemctl stop esp* Cmnd_Alias HPCC_SYSD_DAFILESRV_START = /bin/systemctl start dafilesrv* Cmnd_Alias HPCC_SYSD_DAFILESRV_STOP = /bin/systemctl stop dafilesrv* Cmnd_Alias HPCC_SYSD_DALI_START = /bin/systemctl start dali* Cmnd_Alias HPCC_SYSD_DALI_STOP = /bin/systemctl stop dali* Cmnd_Alias HPCC_SYSD_ROXIE_START = /bin/systemctl start roxie* Cmnd_Alias HPCC_SYSD_ROXIE_STOP = /bin/systemctl stop roxie* Cmnd_Alias HPCC_SYSD_DFUSERVER_START = /bin/systemctl start dfuserver* Cmnd_Alias HPCC_SYSD_DFUSERVER_STOP = /bin/systemctl stop dfuserver* Cmnd_Alias HPCC_SYSD_ECLAGENT_START = /bin/systemctl start eclagent* Cmnd_Alias HPCC_SYSD_ECLAGENT_STOP = /bin/systemctl stop eclagent* Cmnd_Alias HPCC_SYSD_ECLCCSERVER_START = /bin/systemctl start eclccserver* Cmnd_Alias HPCC_SYSD_ECLCCSERVER_STOP = /bin/systemctl stop eclccserver* Cmnd_Alias HPCC_SYSD_ECLSCHEDULER_START = /bin/systemctl start eclscheduler* Cmnd_Alias HPCC_SYSD_ECLSCHEDULER_STOP = /bin/systemctl stop eclscheduler* Cmnd_Alias HPCC_SYSD_SASHA_START = /bin/systemctl start sasha* Cmnd_Alias HPCC_SYSD_SASHA_STOP = /bin/systemctl stop sasha* Cmnd_Alias HPCC_SYSD_BACKUPNODE_START = /bin/systemctl start backupnode* Cmnd_Alias HPCC_SYSD_BACKUPNODE_STOP = /bin/systemctl stop backupnode* ${USER_NAME} ALL = NOPASSWD: HPCC_DAFILESRV, HPCC_HPCCINIT, HPCC_SYSD_HPCCSYSTEMS_PLATFORM_START, HPCC_SYSD_HPCCSYSTEMS_PLATFORM_STOP, HPCC_SYSD_HPCCSYSTEMS_PLATFORM_STATUS, HPCC_SYSD_THORSLAVE_START, HPCC_SYSD_THORSLAVE_STOP, HPCC_SYSD_THOR_START, HPCC_SYSD_THOR_STOP, HPCC_SYSD_ESP_START, HPCC_SYSD_ESP_STOP, HPCC_SYSD_DAFILESRV_START, HPCC_SYSD_DAFILESRV_STOP, HPCC_SYSD_DALI_START, HPCC_SYSD_DALI_STOP, HPCC_SYSD_ROXIE_START, HPCC_SYSD_ROXIE_STOP, HPCC_SYSD_DFUSERVER_START, HPCC_SYSD_DFUSERVER_STOP, HPCC_SYSD_ECLAGENT_START, HPCC_SYSD_ECLAGENT_STOP, HPCC_SYSD_ECLCCSERVER_START, HPCC_SYSD_ECLCCSERVER_STOP, HPCC_SYSD_ECLSCHEDULER_START, HPCC_SYSD_ECLSCHEDULER_STOP, HPCC_SYSD_SASHA_START, HPCC_SYSD_SASHA_STOP, HPCC_SYSD_BACKUPNODE_START, HPCC_SYSD_BACKUPNODE_STOP Defaults:${USER_NAME} !requiretty EOF chmod 0440 /etc/sudoers.d/${USER_NAME} else alter_file /etc/sudoers "^Cmnd_Alias HPCC_|^${USER_NAME} ALL =|^Defaults\:${USER_NAME} !requiretty" <<-%EOF Cmnd_Alias HPCC_DAFILESRV = /etc/init.d/dafilesrv Cmnd_Alias HPCC_HPCCINIT = /etc/init.d/hpcc-init Cmnd_Alias HPCC_SYSD_HPCCSYSTEMS_PLATFORM_START = /bin/systemctl start hpccsystems-platform.target Cmnd_Alias HPCC_SYSD_HPCCSYSTEMS_PLATFORM_STOP = /bin/systemctl stop hpccsystems-platform.target Cmnd_Alias HPCC_SYSD_HPCCSYSTEMS_PLATFORM_STATUS = /bin/systemctl list-dependencies hpccsystems-platform.target Cmnd_Alias HPCC_SYSD_THOR_START = /bin/systemctl start thor* Cmnd_Alias HPCC_SYSD_THOR_STOP = /bin/systemctl stop thor* Cmnd_Alias HPCC_SYSD_THORSLAVE_START = /bin/systemctl start thorslave* Cmnd_Alias HPCC_SYSD_THORSLAVE_STOP = /bin/systemctl stop thorslave* Cmnd_Alias HPCC_SYSD_ESP_START = /bin/systemctl start esp* Cmnd_Alias HPCC_SYSD_ESP_STOP = /bin/systemctl stop esp* Cmnd_Alias HPCC_SYSD_DAFILESRV_START = /bin/systemctl start dafilesrv* Cmnd_Alias HPCC_SYSD_DAFILESRV_STOP = /bin/systemctl stop dafilesrv* Cmnd_Alias HPCC_SYSD_DALI_START = /bin/systemctl start dali* Cmnd_Alias HPCC_SYSD_DALI_STOP = /bin/systemctl stop dali* Cmnd_Alias HPCC_SYSD_ROXIE_START = /bin/systemctl start roxie* Cmnd_Alias HPCC_SYSD_ROXIE_STOP = /bin/systemctl stop roxie* Cmnd_Alias HPCC_SYSD_DFUSERVER_START = /bin/systemctl start dfuserver* Cmnd_Alias HPCC_SYSD_DFUSERVER_STOP = /bin/systemctl stop dfuserver* Cmnd_Alias HPCC_SYSD_ECLAGENT_START = /bin/systemctl start eclagent* Cmnd_Alias HPCC_SYSD_ECLAGENT_STOP = /bin/systemctl stop eclagent* Cmnd_Alias HPCC_SYSD_ECLCCSERVER_START = /bin/systemctl start eclccserver* Cmnd_Alias HPCC_SYSD_ECLCCSERVER_STOP = /bin/systemctl stop eclccserver* Cmnd_Alias HPCC_SYSD_ECLSCHEDULER_START = /bin/systemctl start eclscheduler* Cmnd_Alias HPCC_SYSD_ECLSCHEDULER_STOP = /bin/systemctl stop eclscheduler* Cmnd_Alias HPCC_SYSD_SASHA_START = /bin/systemctl start sasha* Cmnd_Alias HPCC_SYSD_SASHA_STOP = /bin/systemctl stop sasha* Cmnd_Alias HPCC_SYSD_BACKUPNODE_START = /bin/systemctl start backupnode* Cmnd_Alias HPCC_SYSD_BACKUPNODE_STOP = /bin/systemctl stop backupnode* ${USER_NAME} ALL = NOPASSWD: HPCC_DAFILESRV, HPCC_HPCCINIT, HPCC_SYSD_HPCCSYSTEMS_PLATFORM_START, HPCC_SYSD_HPCCSYSTEMS_PLATFORM_STOP, HPCC_SYSD_HPCCSYSTEMS_PLATFORM_STATUS, HPCC_SYSD_THORSLAVE_START, HPCC_SYSD_THORSLAVE_STOP, HPCC_SYSD_THOR_START, HPCC_SYSD_THOR_STOP, HPCC_SYSD_ESP_START, HPCC_SYSD_ESP_STOP, HPCC_SYSD_DAFILESRV_START, HPCC_SYSD_DAFILESRV_STOP, HPCC_SYSD_DALI_START, HPCC_SYSD_DALI_STOP, HPCC_SYSD_ROXIE_START, HPCC_SYSD_ROXIE_STOP, HPCC_SYSD_DFUSERVER_START, HPCC_SYSD_DFUSERVER_STOP, HPCC_SYSD_ECLAGENT_START, HPCC_SYSD_ECLAGENT_STOP, HPCC_SYSD_ECLCCSERVER_START, HPCC_SYSD_ECLCCSERVER_STOP, HPCC_SYSD_ECLSCHEDULER_START, HPCC_SYSD_ECLSCHEDULER_STOP, HPCC_SYSD_SASHA_START, HPCC_SYSD_SASHA_STOP, HPCC_SYSD_BACKUPNODE_START, HPCC_SYSD_BACKUPNODE_STOP Defaults:${USER_NAME} !requiretty %EOF fi alter_file /etc/security/limits.conf "^${USER_NAME}" << %EOF ${USER_NAME} soft nofile 8192 ${USER_NAME} hard nofile 32768 ${USER_NAME} soft core unlimited ${USER_NAME} hard core unlimited ${USER_NAME} soft nproc 4096 ${USER_NAME} hard nproc 8192 ${USER_NAME} soft rtprio 0 ${USER_NAME} hard rtprio 4 ${USER_NAME} soft memlock unlimited ${USER_NAME} hard memlock unlimited %EOF