mod_bashrc
This commit is contained in:
parent
fceee77759
commit
21efc47972
185
mod/mod_bashrc
Normal file
185
mod/mod_bashrc
Normal file
@ -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
|
||||
Reference in New Issue
Block a user