#!/bin/bash # # Configure environment # Copyright (C) 2017 AleaJactaEst # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . usage() { cat << EOF usage:$0 [options] prepare mysql (create directory, update configuration) options: -h, --help : Show this help -d, --debug : Show debug message EOF } ##################### # MAIN ##################### source /opt/servercontainer_function.sh msg_info "$(basename $0) => START" while test $# -gt 0 do case "$1" in -h|--help) usage exit 1 ;; -d|--debug) set_debug 1 shift ;; *) msg_error "options '$1' not recognize" usage exit 1 ;; esac done #################################### # Load Environment #################################### msg_debug "Load environment" if [[ ! -f /opt/khanat_config.sh ]] then msg_error "Missing /opt/khanat_config.sh" exit 2 fi source /opt/khanat_config.sh #################################### # configure shard.sh #################################### msg_info "configure shard.sh" cat << EOF > /opt/shard.sh # bashrc: executed by bash(1) for non-login shells. # You may uncomment the following lines if you want 'ls' to be colorized: export SHELL=/bin/bash export LS_OPTIONS='--color=auto' eval "\`dircolors\`" alias ls='ls \$LS_OPTIONS' alias ll='ls \$LS_OPTIONS -l' alias l='ls \$LS_OPTIONS -lA' # Some more alias to avoid making mistakes: # alias rm='rm -i' # alias cp='cp -i' # alias mv='mv -i' # Autocompletion if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi export KHANAT_HOME=/home/gameserver export KHANAT_PATH=/home/gameserver/khanat export PATH=\$PATH:/usr/local/bin:/usr/local/sbin export PATCH_CLIENT_SYSTEM=\$KHANAT_HOME/khanat/patch_service export DIRCLIENT="$DIRCLIENT" export PACKAGECLIENT="$PACKAGECLIENT" export PREPARE_CLIENT_DIR="khanat/prepare_client/\$DIRCLIENT" export CLIENT_DIR="khanat/client_service" export HOME_PREPARE_CLIENT="\$KHANAT_HOME/\$PREPARE_CLIENT_DIR" export HOME_CLIENT="\$KHANAT_HOME/\$CLIENT_DIR" EOF #################################### # Initialize bashrc gameserver #################################### msg_info "configure bashrc" cat << EOF > /home/gameserver/.bashrc # bashrc: executed by bash(1) for non-login shells. # You may uncomment the following lines if you want 'ls' to be colorized: export SHELL=/bin/bash export LS_OPTIONS='--color=auto' eval "\`dircolors\`" alias ls='ls \$LS_OPTIONS' alias ll='ls \$LS_OPTIONS -l' alias l='ls \$LS_OPTIONS -lA' # Some more alias to avoid making mistakes: # alias rm='rm -i' # alias cp='cp -i' # alias mv='mv -i' # Autocompletion #if [ -f /etc/bash_completion ]; then # . /etc/bash_completion #fi export KHANAT_HOME=/home/gameserver export KHANAT_PATH=/home/gameserver/khanat export PATH=\$PATH:/usr/local/bin export PATCH_CLIENT_SYSTEM=\$KHANAT_HOME/khanat/patch_service export DIRCLIENT="$DIRCLIENT" export PACKAGECLIENT="$PACKAGECLIENT" export PREPARE_CLIENT_DIR="khanat/prepare_client/\$DIRCLIENT" export CLIENT_DIR="khanat/client_service" export HOME_PREPARE_CLIENT="\$KHANAT_HOME/\$PREPARE_CLIENT_DIR" export HOME_CLIENT="\$KHANAT_HOME/\$CLIENT_DIR" EOF chown gameserver:$(id -g -n gameserver) /home/gameserver/.bashrc # load environment source /home/gameserver/.bashrc #################################### # Initialize bashrc (for root) #################################### msg_debug "Configure bashrc (for root)" cat << EOF > /root/.bashrc # bashrc: executed by bash(1) for non-login shells. # You may uncomment the following lines if you want 'ls' to be colorized: export SHELL=/bin/bash export LS_OPTIONS='--color=auto' eval "\`dircolors\`" alias ls='ls \$LS_OPTIONS' alias ll='ls \$LS_OPTIONS -l' alias l='ls \$LS_OPTIONS -lA' # Some more alias to avoid making mistakes: # alias rm='rm -i' # alias cp='cp -i' # alias mv='mv -i' # Autocompletion if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi EOF #################################### # Adding sudo command #################################### # Update sudo rule (you can execute all command as root) msg_debug "Configure sudo" cat << EOF > /etc/sudoers.d/gameserver # User privilege specification gameserver ALL=NOPASSWD: ALL EOF #################################### # LOGING HEADER #################################### # Message see when connect on ssh # Before login msg_debug "Configure message login" cat << EOF > /etc/issue.net ********************* * KHANAT SERVER DEV * ********************* account gameserver password khanat EOF # After Login msg_debug "Configure banner" cat << EOF > /etc/motd *************************************************** connect to root use gameserver account and launch sudo command like : sudo bash --------------------------------------------------- mysql : account root (no password) --------------------------------------------------- log khanat server : /home/gameserver/khanat/server/log/log.log *************************************************** EOF # Activate banner msg_debug "Activate banner" sed -i 's/#Banner/Banner/g' /etc/ssh/sshd_config # Initialize ssh /etc/init.d/ssh restart #################################### # End #################################### msg_info "$(basename $0) => END"