Last active
September 28, 2019 15:05
-
-
Save gil-obradors/1e9ea8f72c2069a83222 to your computer and use it in GitHub Desktop.
Configuracions especials meves
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
[[ "$TRACE" ]] && { set -x; set -o functrace; } | |
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin | |
logfile="/tmp/$(basename $0).$$.log" | |
exec > >(tee -ia $logfile) | |
exec 2> >(tee -ia $logfile >&2) | |
is_root_user() { | |
# Function to check that the effective user id of the user running | |
# the script is indeed that of the root user (0) | |
if [[ $EUID != 0 ]]; then | |
return 1 | |
fi | |
return 0 | |
} | |
if ! is_root_user; then | |
echo "ERROR: Hauries de ser root. Exiting..." 2>&1 | |
echo 2>&1 | |
exit 1 | |
fi | |
apt-get install -y sudo | |
sudo apt-get update ; sudo apt-get -y upgrade ; sudo apt-get -y install figlet openssh-server fortune bash-completion ladvd fail2ban net-tools lsb-release vim net-tools curl | |
read -e -p "Vols instal·lar avahi-daemon (s)i/(n)o ? " YN | |
[[ $YN == "s" || $YN == "S" || $YN == "y" || $YN == "Y" ]] && sudo apt-get install avahi-daemon | |
read -e -p "Vols instal·lar update-motd (s)i/(n)o ? " YN | |
[[ $YN == "s" || $YN == "S" || $YN == "y" || $YN == "Y" ]] && ( | |
##### update-motd ##### | |
mkdir -p /etc/update-motd.d | |
sudo tee /etc/update-motd.d/10uname << 'EOF' | |
#!/bin/sh | |
uname -snrvm | |
EOF | |
sudo chmod a+x /etc/update-motd.d/10uname | |
sudo tee /etc/update-motd.d/11headers << 'EOF' | |
#!/bin/sh | |
# | |
# 00-header - create the header of the MOTD | |
# Copyright (c) 2013 Nick Charlton | |
# Copyright (c) 2009-2010 Canonical Ltd. | |
# | |
# Authors: Nick Charlton <[email protected]> | |
# Dustin Kirkland <[email protected]> | |
# | |
# This program is free software; you can redistribute it and/or modify | |
# it under the terms of the GNU General Public License as published by | |
# the Free Software Foundation; either version 2 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 General Public License for more details. | |
# | |
# You should have received a copy of the GNU General Public License along | |
# with this program; if not, write to the Free Software Foundation, Inc., | |
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
[ -r /etc/lsb-release ] && . /etc/lsb-release | |
if [ -z "$DISTRIB_DESCRIPTION" ] && [ -x /usr/bin/lsb_release ]; then | |
# Fall back to using the very slow lsb_release utility | |
DISTRIB_DESCRIPTION=$(lsb_release -s -d) | |
fi | |
figlet $(hostname) | |
printf "\n" | |
printf "Welcome to %s (%s).\n" "$DISTRIB_DESCRIPTION" "$(uname -r)" | |
printf "\n" | |
EOF | |
sudo chmod a+x /etc/update-motd.d/11headers | |
sudo tee /etc/update-motd.d/12sysinfo << 'EOF' | |
#!/bin/bash | |
# | |
# 10-sysinfo - generate the system information | |
# Copyright (c) 2013 Nick Charlton | |
# | |
# Authors: Nick Charlton <[email protected]> | |
# | |
# This program is free software; you can redistribute it and/or modify | |
# it under the terms of the GNU General Public License as published by | |
# the Free Software Foundation; either version 2 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 General Public License for more details. | |
# | |
# You should have received a copy of the GNU General Public License along | |
# with this program; if not, write to the Free Software Foundation, Inc., | |
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
date=`date` | |
load=`cat /proc/loadavg | awk '{print $1}'` | |
root_usage=`df -h / | awk '/\// {print $(NF-1)}'` | |
memory_usage=`free -m | awk '/Mem:/ { total=$2 } /buffers\/cache/ { used=$3 } END { printf("%3.1f%%", used/total*100)}'` | |
swap_usage=`free -m | awk '/Swap/ { printf("%3.1f%%", "exit !$2;$3/$2*100") }'` | |
users=`users | wc -w` | |
time=`uptime | grep -ohe 'up .*' | sed 's/,/\ hours/g' | awk '{ printf $2" "$3 }'` | |
processes=`ps aux | wc -l` | |
ip=`ifconfig $(route | grep default | awk '{ print $8 }') | grep "inet " | awk '{print $2}'` | |
echo "System information as of: $date" | |
echo | |
printf "System load:\t%s\tIP Address:\t%s\n" $load $ip | |
printf "Memory usage:\t%s\tSystem uptime:\t%s\n" $memory_usage "$time" | |
printf "Usage on /:\t%s\tSwap usage:\t%s\n" $root_usage $swap_usage | |
printf "Local Users:\t%s\tProcesses:\t%s\n" $users $processes | |
echo | |
EOF | |
sudo chmod a+x /etc/update-motd.d/12sysinfo | |
sudo tee /etc/update-motd.d/20footer << 'EOF' | |
#!/bin/sh | |
# | |
# 90-footer - write the admin's footer to the MOTD | |
# Copyright (c) 2013 Nick Charlton | |
# Copyright (c) 2009-2010 Canonical Ltd. | |
# | |
# Authors: Nick Charlton <[email protected]> | |
# Dustin Kirkland <[email protected]> | |
# | |
# This program is free software; you can redistribute it and/or modify | |
# it under the terms of the GNU General Public License as published by | |
# the Free Software Foundation; either version 2 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 General Public License for more details. | |
# | |
# You should have received a copy of the GNU General Public License along | |
# with this program; if not, write to the Free Software Foundation, Inc., | |
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
[ -f /etc/motd.tail ] && cat /etc/motd.tail || true | |
EOF | |
chmod a+x /etc/update-motd.d/20footer | |
[ -f /etc/motd.tail ] && mv /etc/motd /etc/motd.old | |
rm /etc/motd | |
ln -s /var/run/motd /etc/motd | |
) | |
##########SSH Keys | |
read -e -p "ssh keys de gil (s)i/(n)o ? " YN | |
[[ $YN == "s" || $YN == "S" || $YN == "y" || $YN == "Y" ]] && ( | |
[ ! -d ~/.ssh ] && mkdir -p ~/.ssh | |
sudo tee -a ~/.ssh/authorized_keys << EOF | |
$(curl https://github.com/gil-obradors.keys) | |
EOF | |
) | |
########## LOCALES and TIME | |
read -e -p "Vols configurar locales i temps (s)i/(n)o ? " YN | |
[[ $YN == "s" || $YN == "S" || $YN == "y" || $YN == "Y" ]] && ( | |
sudo echo "Europe/Madrid" > /etc/timezone && sudo dpkg-reconfigure -f noninteractive tzdata | |
sudo sed -i -e 's/# ca_ES.UTF-8 UTF-8/ca_ES.UTF-8 UTF-8/' /etc/locale.gen | |
sudo sed -i -e 's/# es_ES.UTF-8 UTF-8/es_ES.UTF-8 UTF-8/' /etc/locale.gen | |
sudo sed -i -e 's/# en_GB.UTF-8 UTF-8/en_GB.UTF-8 UTF-8/' /etc/locale.gen | |
sudo dpkg-reconfigure -fnoninteractive locales | |
sudo echo "LANG=ca_ES.UTF-8" > /etc/default/locale | |
) | |
## root logins | |
sed -i -e's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config | |
########## bash completion ssh and scp | |
read -e -p "Vols instal·lar bash completion a SSH host (s)i/(n)o ? " YN | |
[[ $YN == "s" || $YN == "S" || $YN == "y" || $YN == "Y" ]] && ( | |
sudo tee /etc/bash_completion.d/ssh << 'EOF' | |
_ssh() | |
{ | |
local cur prev opts | |
COMPREPLY=() | |
cur="${COMP_WORDS[COMP_CWORD]}" | |
prev="${COMP_WORDS[COMP_CWORD-1]}" | |
opts=$(grep '^Host' ~/.ssh/config ~/.ssh/config.d/* 2>/dev/null | grep -v '[?*]' | cut -d ' ' -f 2-) | |
COMPREPLY=( $(compgen -W "$opts" -- ${cur}) ) | |
return 0 | |
} | |
complete -F _ssh ssh | |
EOF | |
[[ -f ~/.ssh/config ]] && sed -i '1s/^/HashKnownHosts no/' ~/.ssh/config || echo "HashKnownHosts no" > ~/.ssh/config | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment