1#!/bin/sh 2# 3# Copyright (c) 2018-2021, Christer Edwards <christer.edwards@gmail.com> 4# All rights reserved. 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions are met: 8# 9# * Redistributions of source code must retain the above copyright notice, this 10# list of conditions and the following disclaimer. 11# 12# * Redistributions in binary form must reproduce the above copyright notice, 13# this list of conditions and the following disclaimer in the documentation 14# and/or other materials provided with the distribution. 15# 16# * Neither the name of the copyright holder nor the names of its 17# contributors may be used to endorse or promote products derived from 18# this software without specific prior written permission. 19# 20# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 31. /usr/local/share/bastille/common.sh 32. /usr/local/etc/bastille/bastille.conf 33 34usage() { 35 error_exit "Usage: bastille cp [OPTION] TARGET HOST_PATH CONTAINER_PATH" 36} 37 38CPSOURCE="${1}" 39CPDEST="${2}" 40 41# Handle special-case commands first. 42case "$1" in 43help|-h|--help) 44 usage 45 ;; 46-q|--quiet) 47 OPTION="${1}" 48 CPSOURCE="${2}" 49 CPDEST="${3}" 50 ;; 51esac 52 53if [ $# -ne 2 ]; then 54 usage 55fi 56 57case "${OPTION}" in 58 -q|--quiet) 59 OPTION="-a" 60 ;; 61 *) 62 OPTION="-av" 63 ;; 64esac 65 66for _jail in ${JAILS}; do 67 info "[${_jail}]:" 68 bastille_jail_path="${bastille_jailsdir}/${_jail}/root" 69 cp "${OPTION}" "${CPSOURCE}" "${bastille_jail_path}/${CPDEST}" 70 RETURN="$?" 71 if [ "${TARGET}" = "ALL" ]; then 72 # Display the return status for reference 73 echo -e "Returned: ${RETURN}\n" 74 else 75 echo 76 return "${RETURN}" 77 fi 78done 79