miércoles, noviembre 19, 2008

Script para agregar y eliminar usuarios de samba y el Sistema


#!/bin/bash
#######################################################
# Ejecutar como administrador
# http://cbittachira.blogspot.com
#######################################################
Principal() {
clear
dir="Directorio Actual : `pwd`"
kernel="Kernel : `uname -r`"
arquitetura="Arquitectura : `uname -m`"
grupos=groups

echo "+-------------------------------------------------+"
echo "| Utilidades para LinuX |"
echo "+-------------------------------------------------+"
echo "| Agregar/ Remover usuarios en SaMBa y en Linux |"
echo "+-------------------------------------------------+"
echo "| Escrito por: |"
echo "| Pablo Contramaestre pcontramaestre@gmail.com |"
echo "+-------------------------------------------------+"
echo
echo $dir
echo $kernel
echo $arquitetura
echo
echo "Opcoes:"
echo "1. Agregar un Usuario"
echo "2. Eliminar un Usuario"
echo "3. Modificar la contraseña de un Usuario"
echo "4. Listar Usuarios de Samba"
echo "5. Salir"
echo -n "Entre la opción deseada => "
read opcion
echo
case $opcion in
1) Adicionar ;;
2) Eliminar ;;
3) Modificar ;;
4) Listar ;;
5) exit ;;
*) "Opcion desconocida." ; echo ; Principal ;;
esac
}

Listar() {
echo "Lista de Usuarios Samba: "
cat /etc/samba/smbpasswd | awk 'BEGIN{ FS=":" } { print "Usuario:" $1 "\t" "Id:" $2}'|more
read msg
echo "Lista de Usuario del Sistema: "
cat /etc/passwd | awk 'BEGIN{ FS=":" } { print "Usuario:" $1 "\t" "Id:" $3}' |more

echo "Presione cualquier tecla para continuar..."
read msg
Principal
}

Adicionar() {
echo -n "Introduzca el login del usuario: "
read login
echo -n "Escriba el nombre completo del usuario: "
read nombre
echo -n "Entre el grupo de usuarios: "
read grupo
echo -n "Entroduzca la contraseña del usuario: "
stty -echo
read password
stty echo
echo
echo "Mensajes del Sistema: "
echo
( echo $grupo ; echo $grupo ) | sudo groupadd -r -f $grupo
sudo /usr/sbin/useradd $login -c "$nombre" -g "$grupo" -d /home/user/$login -s /bin/bash; echo "$password" | sudo /usr/bin/passwd $login --stdin
echo
( echo $password ; echo $password ) | sudo smbpasswd -s -a $login
#smbpasswd -a $login $password
echo
echo "Presione cualquier tecla para continuar..."
read msg
Principal
}

Modificar() {
echo -n "Introduzca el Login del usuario a cambiar la contraseña: "
read login
echo -n "Entroduzca la contraseña del usuario para cambiar: "
stty -echo
read password
stty echo
echo
echo "Mensajes del Sistema: "
( echo $password ; echo $password ) | sudo smbpasswd -s $login
echo "$password" | sudo /usr/bin/passwd $login --stdin
# echo
# ( echo $senha ; echo $password ) | sudo smbpasswd -s -a $login
#smbpasswd -a $login $password
# ( echo $senha ; echo $password ) | sudo smbpasswd -s -a $login
#smbpasswd -a $login $password
echo
echo "Presione cualquier tecla para continuar..."
read msg
Principal
}

Eliminar() {
echo -n "Introduzca el login del usuario a eliminar: "
read login
echo
echo "Mensajes del Sistema: "
echo
sudo /usr/bin/smbpasswd -x $login
echo
sudo /usr/sbin/userdel $login
echo
echo "Pressione cualquier tecla para continuar..."
read msg
Principal
}
Principal

3 comentarios:

Anónimo dijo...

tambien se puede automatizar la creacion de confianzas con equipos?

Anónimo dijo...

Me haz salvado la vida!!! pues tengo que agregar un minimo de 200 usuarios a samba y con eso me has quitado la mitad del trabajo.. solo una pregunta revisando tu codigo para adecuarlo a mis necesidades (claro respetando derechos de autor) me di cuenta que cuando mandas llamar a passwd usas la sentencia --stdin, pero passwd no lo reconoce, para que estas utilizandola ? mil gracias de nuevo! sigue con trabajos como este! ;)

Por cierto al que pregunto por automatizar la creacion de maquinas de confianza con la sentencia en el archivo smb.conf:

add machine script = /usr/sbin/useradd -g machines -c "Cliente Windows" -d /var/lib/nobody -s /bin/false %m$

es mas que suficiente, solo tienes que logearte con un usuario valido por samba en la maquina que quieres hacer de confianza y listo.

P.D: tienes que agregar un grupo para las maquinas, que en este caso es "machines".

Anónimo dijo...

Es un tema complicado para sacar conclusiones apuradas.
newegg promo code