185 lines
5.3 KiB
Bash
185 lines
5.3 KiB
Bash
#!/bin/bash
|
|
|
|
_red(){ /bin/echo -e "\033[0;31m$@\033[0m"; }
|
|
|
|
# Função para verificar e instalar pacotes
|
|
install_packages() {
|
|
# Lista de pacotes a serem instalados
|
|
local packages=(
|
|
"bash-completion"
|
|
"wget"
|
|
"grc"
|
|
)
|
|
|
|
echo "Verificando e instalando pacotes necessários..."
|
|
|
|
# Verificar e instalar os pacotes individualmente
|
|
for pkg in "${packages[@]}"; do
|
|
if dpkg -l | grep -q "^ii $pkg "; then
|
|
echo "Pacote $pkg já está instalado."
|
|
else
|
|
echo "Instalando pacote $pkg..."
|
|
apt-get install -y "$pkg"
|
|
fi
|
|
done
|
|
|
|
echo "Verificação e instalação de pacotes concluída!"
|
|
}
|
|
|
|
add_aliases() {
|
|
local BASHRC=$1
|
|
|
|
# Adicionar aliases apenas se ainda não existirem
|
|
if ! grep -q "Alias MOD" "$BASHRC"; then
|
|
cat << 'EOF' >> "$BASHRC"
|
|
|
|
# Alias MOD
|
|
export LS_OPTIONS='--color=auto'
|
|
eval "`dircolors`"
|
|
alias ls='ls $LS_OPTIONS'
|
|
alias ll='ls $LS_OPTIONS -l'
|
|
alias l='ls $LS_OPTIONS -lha'
|
|
|
|
alias grep='grep --color'
|
|
alias egrep='egrep --color'
|
|
alias ip='ip -c'
|
|
alias diff='diff --color'
|
|
alias meuip='curl ifconfig.me; echo;'
|
|
alias tail='grc tail'
|
|
alias ping='grc ping'
|
|
alias traceroute='grc traceroute'
|
|
alias ps='grc ps'
|
|
alias netstat='grc netstat'
|
|
alias dig='grc dig'
|
|
alias apt='sudo apt'
|
|
alias l='ls -lh'
|
|
alias la='ls -lha'
|
|
|
|
EOF
|
|
echo "Aliases adicionados ao arquivo $BASHRC."
|
|
else
|
|
echo "Aliases já estão presentes no arquivo $BASHRC."
|
|
fi
|
|
}
|
|
|
|
# Função para ajustar o .bashrc de um usuário específico
|
|
adjust_user_bashrc() {
|
|
local USER_HOME=$1
|
|
local BASHRC="$USER_HOME/.bashrc"
|
|
|
|
# Criar backup do arquivo .bashrc, se ele existir
|
|
if [ -f "$BASHRC" ]; then
|
|
cp "$BASHRC" "${BASHRC}_backup"
|
|
echo "Backup do .bashrc criado: ${BASHRC}_backup"
|
|
|
|
# Descomentar a linha force_color_prompt=yes
|
|
sed -i 's/^#force_color_prompt=yes/force_color_prompt=yes/' "$BASHRC"
|
|
|
|
# Substituir o bloco do PS1 usando \$ para root e usuários comuns
|
|
sed -i '/if \[ "\$color_prompt" = yes \]; then/,/fi/c\if [ "\$color_prompt" = yes ]; then\n PS1="\\[\\e[38;5;255m\\][\\[\\e[38;5;39m\\]\\u\\[\\e[38;5;81m\\]@\\[\\e[38;5;77m\\]\\h\\[\\e[38;5;255m\\]:\\[\\e[38;5;226m\\]\\w\\[\\e[38;5;255m\\]]\\[\\033[0m\\]\\$ "\nelse\n PS1='\''\${debian_chroot:+(\$debian_chroot)}\u@\h:\w\\$ '\''\nfi' "$BASHRC"
|
|
|
|
# Adicionar aliases ao .bashrc do usuário
|
|
add_aliases "$BASHRC"
|
|
|
|
echo ".bashrc de $USER_HOME ajustado com sucesso!"
|
|
fi
|
|
}
|
|
|
|
# Função para ajustar o .bashrc do root
|
|
adjust_root_bashrc() {
|
|
local ROOT_BASHRC="/root/.bashrc"
|
|
|
|
# Criar backup do arquivo .bashrc do root, se ele existir
|
|
if [ -f "$ROOT_BASHRC" ]; then
|
|
cp "$ROOT_BASHRC" "${ROOT_BASHRC}_backup"
|
|
echo "Backup do .bashrc do root criado: ${ROOT_BASHRC}_backup"
|
|
|
|
# Adicionar o PS1 personalizado com verificação de UID para root
|
|
cat << 'EOF' > "$ROOT_BASHRC"
|
|
# ~/.bashrc: executed by bash(1) for non-login shells.
|
|
|
|
# Redefinir o PS1 para root e usuários comuns
|
|
if [ "$UID" -eq 0 ]; then
|
|
PS1="\[\e[38;5;255m\][\[\e[38;5;39m\]\u\[\e[38;5;81m\]@\[\e[38;5;77m\]\h\[\e[38;5;255m\]:\[\e[38;5;226m\]\w\[\e[38;5;255m\]]\[\033[0m\]# "
|
|
else
|
|
PS1="\[\e[38;5;255m\][\[\e[38;5;39m\]\u\[\e[38;5;81m\]@\[\e[38;5;77m\]\h\[\e[38;5;255m\]:\[\e[38;5;226m\]\w\[\e[38;5;255m\]]\[\033[0m\]\$ "
|
|
fi
|
|
|
|
# Definir umask padrão
|
|
umask 022
|
|
|
|
# Alias específicos para evitar erros
|
|
alias rm='rm -i'
|
|
alias cp='cp -i'
|
|
alias mv='mv -i'
|
|
|
|
# Alias MOD
|
|
export LS_OPTIONS='--color=auto'
|
|
eval "`dircolors`"
|
|
alias ls='ls $LS_OPTIONS'
|
|
alias ll='ls $LS_OPTIONS -l'
|
|
alias l='ls $LS_OPTIONS -lha'
|
|
|
|
alias grep='grep --color'
|
|
alias egrep='egrep --color'
|
|
alias ip='ip -c'
|
|
alias diff='diff --color'
|
|
alias meuip='curl ifconfig.me; echo;'
|
|
alias tail='grc tail'
|
|
alias ping='grc ping'
|
|
alias traceroute='grc traceroute'
|
|
alias ps='grc ps'
|
|
alias netstat='grc netstat'
|
|
alias dig='grc dig'
|
|
alias apt='sudo apt'
|
|
alias l='ls -lh'
|
|
alias la='ls -lha'
|
|
|
|
EOF
|
|
|
|
echo ".bashrc do root ajustado com sucesso!"
|
|
fi
|
|
}
|
|
|
|
# Função para ajustar o .bash_profile do root para carregar o .bashrc
|
|
adjust_root_bash_profile() {
|
|
local ROOT_BASH_PROFILE="/root/.bash_profile"
|
|
|
|
# Verificar se o .bash_profile existe, senão criar um novo
|
|
if [ ! -f "$ROOT_BASH_PROFILE" ]; then
|
|
echo "# .bash_profile" > "$ROOT_BASH_PROFILE"
|
|
fi
|
|
|
|
# Adicionar a linha para carregar o .bashrc se não existir
|
|
if ! grep -q ". ~/.bashrc" "$ROOT_BASH_PROFILE"; then
|
|
echo 'if [ -f ~/.bashrc ]; then' >> "$ROOT_BASH_PROFILE"
|
|
echo ' . ~/.bashrc' >> "$ROOT_BASH_PROFILE"
|
|
echo 'fi' >> "$ROOT_BASH_PROFILE"
|
|
echo "Arquivo .bash_profile do root ajustado para carregar o .bashrc."
|
|
fi
|
|
}
|
|
|
|
# Função para ajustar todos os usuários existentes e o root
|
|
adjust_all_users_bashrc() {
|
|
# Ajustar o bashrc de cada usuário em /home
|
|
for USER_HOME in /home/*; do
|
|
if [ -d "$USER_HOME" ]; then
|
|
adjust_user_bashrc "$USER_HOME"
|
|
fi
|
|
done
|
|
|
|
# Ajustar o bashrc e o bash_profile do root
|
|
adjust_root_bashrc
|
|
adjust_root_bash_profile
|
|
}
|
|
|
|
## Verifica se o usuário é root
|
|
if [ "$EUID" -ne 0 ]; then
|
|
_red "\n Você deve ser root para executar este script!\n"
|
|
exit 1
|
|
fi
|
|
|
|
# Executar funções
|
|
apt-get update
|
|
install_packages
|
|
adjust_all_users_bashrc |