shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Script para criar usuarios no linux e no samba


From: gerusso2003
Subject: Script para criar usuarios no linux e no samba
Date: Tue, 15 Jul 2003 13:51:33 -0000
User-agent: eGroups-EW/0.82

Pessoal finalmente consegui o que eu queria e esta aqui para quem 
precisar. 
Primeiramente quero agradecer aos companheiros da lista ( Mateus 
Moysis e outros) e em particular o meu amigo Carlos Miranda professor 
de linux da People Computacao de Campinas excelente pessoa e um 
excelente profissional. Aos amigos da lista que fui ate um pouco 
chato as vezes com muitas perguntas mas é que cabeça quente as vezes 
nao nos deixa enxergar coisas elementares.

Bem o script e para cricao de usuarios no linux e no samba no seu 
respectivo grupo e respectiva senha.

O arquivo de usuarios ficou assim (ex:)

jsilva:Jose da Silva:5jqw23:enfermagem:
mjose:Maria Jose:3hd5t2:agropecuaria:

e o script segue abaixo:

#!/bin/bash
# Verifica se o Root e o executor
ROOT_UID=0
E_NOTROOT=67
if [ "$UID" -ne "$ROOT_UID" ]
        then 
        echo;echo
        echo "É preciso ser \"root\" para usar este script."
        echo
        exit $E_NOTROOT
fi
clear
echo
echo "Digite os caminhos dos arquivos"
echo 
read -p "Nome e path do arquivo de Usuarios </root/login>: " USR
echo
#
#Verifica quantas linhas tem o arquivo de usuarios
NL=`wc -l $USR | awk '{print $1}'`
echo "Voce ira cadastrar" $NL "usuarios"
echo
#
#
#Copiando nome do arquivo de usuarios para um ARRAY
n=1
OLDIFS="$IFS"
IFS="
"  
 for i in `(awk -F "\:" '{print $2}' $USR)`
   do
    NOME[$n]=$i
    let n+=1   
done
IFS="$OLDIFS"   
#
#Copiando senha arquivo de usuarios para um ARRAY
n=1
 for i in `(awk -F "\:" '{print $3}' $USR)`
   do
    SENHA[$n]=$i
    let n+=1
   done
#
#Copiando grupo do arquivo de usuarios para um ARRAY
n=1
 for i in `(awk -F "\:" '{print $4}' $USR)`
   do
    GRUPO[$n]=$i
    GP=`grep ${GRUPO[$n]} /etc/group`
    echo $GP
    if [ ! $GP ]
     then
        groupadd ${GRUPO[$n]}
    fi
    let n+=1
  done
#
#Copiando login do arquivo de usuarios para um ARRAY
n=1
 for i in `(awk -F "\:" '{print $1}' $USR)`
  do
    LOGIN[$n]=$i
    let n+=1
 done
#
#
:<<__EOF
n=1 
while [ "${n:=1}" -le "$NL" ]
do
   echo $n "Login: ${LOGIN[$n]} Nome: ${NOME[$n]} Senha: ${SENHA[$n]} 
Grupo: ${GRUPO[$n]}"
   let n+=1
done
echo
echo
__EOF
#
#Criando as contas
#
#:<<__EOF
n=1
while [ "${n:=1}" -le "$NL" ]
do
echo "Cadastrando ..........${NOME[$n]}"
echo "Grupo ................${GRUPO[$n]}"
echo
#var="adduser -g teste -c \"${NOME[$n]}\" ${LOGIN[$n]}"
#echo $var
#read -p "Digite Enter para criar o usuario acima"
#eval $var
adduser ${LOGIN[$n]}
usermod -c "${NOME[$n]}" ${LOGIN[$n]}
usermod -g ${GRUPO[$n]} ${LOGIN[$n]}     
echo ${SENHA[$n]} | passwd --stdin ${LOGIN[$n]}
groupdel ${LOGIN[$n]}
echo 
echo "Adiconando usuario no samba"
smbpasswd -a ${LOGIN[$n]} -s ${SENHA[$n]}
echo 
echo "............................Feito"
     echo
     let n+=1
     done
     echo       
#__EOF

Abracos a todos e muito obrigado.
PS: Se alguem puder melhorar o mesmo será bem vindo todas as 
melhorias!!!!!!!!!!!

Geraldo Russo Filho
address@hidden
address@hidden




reply via email to

[Prev in Thread] Current Thread [Next in Thread]