Padronização de usuários em vários micros
Publicado por Everson Caratti 24/08/2006
[ Hits: 5.677 ]
Download padroniza_usuarios.sh
Quando fiz esse script, minha necessidade era padronizar os mesmos usuáros em algumas máquinas sem a necessidade de instalar algum software de autenticação. Antes de executar, é bom dar uma boa lida no script pra não haver arrependimento depois! :)
#Antes de executar, é bom dar uma boa lida no script pra não haver arrependimento depois! :)
#Quando fiz esse script, minha necessidade era padronizar os mesmos usuáros em algumas máquinas sem a necessidade instalar algum software de autenticação.
#Para isso resolvi que seria criado um grupo "speed" com gid "1100" e todos os usuarios iriam pertencer a esse grupo.
#Para usilizar, primeiro você deve editar o script e modificar a funcao gera_lista() colocando nela seus uid,usuario,grupo um em cada linha.
#Se executar com o parametro "e" o script sera executado, caso contrario apenas simulará o que seria feito (dentro das possibilidades, claro).
#/bin/bash
gid_novo=1100
grupo_novo=speed
altera_grupo() {
gid_antigo=$(cat /etc/group | grep -i $grupo_novo | cut -d: -f 3)
if [ "$gid_antigo" = "" ] ; then
   echo "Criando grupo..."
   ## aqui ainda teria q ver se o gid 1100 nao esta em uso por outro grupo (nao desenvovido!)
   [ "$simular" = "e" ] && addgroup --group --gid $gid_novo $grupo_novo ||
                           echo "addgroup --group --gid $gid_novo $grupo_novo"
  else
   echo "alterando grupo..."
   echo "gid: $gid_antigo -> $gid_novo"
   [ "$simular" = "e" ] && groupmod -g $gid_novo $grupo_novo ||
                        echo "groupmod -g $gid_novo $grupo_novo"
   echo "alterando arquivos do grupo..."
   [ "$simular" = "e" ] && find / -gid $gid_antigo -exec chown :$gid_novo {} \; ||
                        echo "find / -gid $gid_antigo -exec chown :$gid_novo {} \;"
fi
}
altera_usuario() {
# processamento dos usuarios
[ -f /etc/samba/smbpasswd ] ||  touch /etc/samba/smbpasswd
for linha in $(cat /tmp/lista) ; do
    [ "$linha" = "" ] && continue
    uid_novo=$(echo $linha | cut -d, -f 1)
    usuario=$(echo $linha | cut -d, -f 2)
    grupo=$(echo $linha | cut -d, -f 3)
    uid_antigo=$(cat /etc/passwd | grep -i "$usuario\:" | cut -d: -f 3)
    echo "uid....: $uid_antigo -> $uid_novo"
    echo "usuario: $usuario"
    echo "grupo..: $grupo"
    if [ "$uid_antigo" = "" ] ; then
       echo "Novo usuario:"
       passe="01"
       perl -e "printf \"%s\n\", crypt ("$usuario$passe", join ('', ('.', '/', 0..9, 'A'.. 'Z', 'a'..'z')[rand (64), rand (64)]))" > /tmp/passe
       if [ -f /tmp/passe ] ; then
          passe=$(cat /tmp/passe)
          rm /tmp/passe
          [ "$simular" = "e" ] && useradd -u $uid_novo -g $gid_novo -m -s /bin/bash -p $passe $usuario ||
                               echo "useradd -u $uid_novo -g $gid_novo -m -s /bin/bash -p $passe $usuario"
       fi
      else
       [ "$simular" = "e" ] && usermod -g $gid_novo -u $uid_novo $usuario ||
                            echo "usermod -g $gid_novo -u $uid_novo $usuario"
       echo "Alterando arquivos do /home/..."
       [ "$simular" = "e" ] && find /home/ -uid $uid_antigo -exec chown $uid_novo {} \; ||
                            echo "find /home/ -uid $uid_antigo -exec chown $uid_novo {} \;"
    fi
    ## Adiciona o usuario ao samba
    ## vai adicionar uma senha pra cada usuario como sendo usuario01
    passe="01"
    echo "$usuario$passe" > /tmp/passe
    echo "$usuario$passe" >> /tmp/passe
    if [ ! "$(cat /etc/samba/smbpasswd | fgrep $usuario)" = "" ] ; then
       [ "$simular" = "e" ] && smbpasswd -x $usuario ||
                            echo "smbpasswd -x $usuario"
    fi
    [ "$simular" = "e" ] && smbpasswd -a -s $usuario < /tmp/passe ||
                         echo "smbpasswd -a -s $usuario < /tmp/passe"
    rm /tmp/passe
#    pause
done
}
pause() {
echo -n "enter" ; read enter
}
gera_lista() {
cat > /tmp/lista <<FIM
1101,andre,$grupo_novo
1102,joao,$grupo_novo
1103,balcao,$grupo_novo
1104,bankada,$grupo_novo
1105,frente,$grupo_novo
1106,note,$grupo_novo
1108,desliga,$grupo_novo
FIM
}
sintaxe() {
echo "$0 [e] => Executa, qualquer outra coisa somente simula"
echo ""
exit 1
}
[ "$1" = "" ] && sintaxe || simular="$1"
gera_lista
altera_grupo
altera_usuario
[ -f /tmp/lista ] && rm /tmp/lista
exit 0
Limpar e mostrar tamanho da lixeira no Samba
Bloquear Whatsapp, Facebook, Youtube e outros pelo IPTABLES
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Problemas com Driver NVIDIA (5)
Warcraft II Remastered no Linux? (8)
Instalação dualboot Windows 11 e Debian 13 (7)









