Padronização de usuários em vários micros
Publicado por Everson Caratti 24/08/2006
[ Hits: 5.326 ]
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
Baixando e instalando BrOffice 3 no Ubuntu
Verificando a versão mais recente do Wine via script
Backup Base de Dados PostgreSQL [pg_dump]
Limpeza de logs sem dor de cabeça
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Inkscape Atualização 1.4 [RESOLVIDO] (8)
samba4 - 4.21 utilizar phpldapadmin [RESOLVIDO] (5)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta