Padronização de usuários em vários micros
Publicado por Everson Caratti 24/08/2006
[ Hits: 5.588 ]
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
Redimensionando e Organizando imagens para vizualizar no PSP
Jogo de labirinto feito em shell script
Nenhum coment�rio foi encontrado.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Sinto uma leve lentidão ao arrastar, miniminizar e restauras as janela... (3)
Alguém já usou o framework Avalonia para desenvolver interfaces de usu... (4)
Ajuda Pra Melhoria do NFTABLES. (8)
Pastas da raiz foram para a área de trabalho [RESOLVIDO] (7)