#!/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