diff --git a/mod/mod_bashrc b/mod/mod_bashrc new file mode 100644 index 0000000..1440b50 --- /dev/null +++ b/mod/mod_bashrc @@ -0,0 +1,185 @@ +#!/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 \ No newline at end of file