====== crearUsuario.sh======
Un ejemplo de clase sencillo para estudiar los pasos realizados al momento de crear un nuevo usuario en nuestro sistema:
Este script debe ser ejcutado como ''root''
#!/bin/bash
useradd $1
passwd $1
addgroup $1
usermod -G$1 -a $1
cp -r /etc/skel /home/$1
chown -R $1:$1 /home/$1
chmod -R g+rx /home/$1
chmod -R g-w /home/$1
chmod -R o-rwx /home/$1
Un paso interesante sería agregar a éste script controles para los parámetros recibidos, por ejemplo:
* cantidad mínima de parámetros
* existencia del usuario/grupo previo a creación
Para esto, deberemos agregar las siguientes preguntas:
**Control de cantidad parámetros:**
if [ $# -lt 1 ]; then
echo "Faltan parámetros!"
exit 1
fi
**Control de existencia de usuario/grupo:**
cat /etc/passwd | cut -f1 -d":" | grep "^$1$"
if [ $? -eq 0 ]; then
echo "Atención, el usuario '$1' ya existe!"
exit 2
fi
cat /etc/group | cut -f1 -d":" | grep "^$1$"
if [ $? -eq 1 ]; then
addgroup $1
fi
El resultado quedaría de la siguiente forma:
#!/bin/bash
if [ $# -lt 1 ]; then
echo "Faltan parámetros!"
exit 1
fi
cat /etc/passwd | cut -f1 -d":" | grep "^$1$"
if [ $? -eq 0 ]; then
echo "Atención, el usuario '$1' ya existe!"
exit 2
fi
useradd $1
passwd $1
cat /etc/group | cut -f1 -d":" | grep "^$1$"
if [ $? -eq 1 ]; then
addgroup $1
fi
usermod -G$1 -a $1
cp -r /etc/skel /home/$1
chown -R $1:$1 /home/$1
chmod -R g+rx /home/$1
chmod -R g-w /home/$1
chmod -R o-rwx /home/$1
exit 0
**Esta variación permite crear múltiples usuarios en un mismo paso:**
#!/bin/bash
if [ $# -lt 1 ]; then
echo "Faltan parámetros!"
exit 1
fi
for usuario in $@; do
cat /etc/passwd | cut -f1 -d":" | grep "^$usuario$"
if [ $? -eq 0 ]; then
echo "Atención, el usuario '$usuario' ya existe!"
exit 2
fi
useradd $usuario
passwd $usuario
cat /etc/group | cut -f1 -d":" | grep "^$usuario$"
if [ $? -eq 1 ]; then
addgroup $usuario
fi
usermod -G $usuario -a $usuario
cp -r /etc/skel /home/$usuario
chown -R $usuario:$usuario /home/$usuario
chmod -R g+rx /home/$usuario
chmod -R g-w /home/$usuario
chmod -R o-rwx /home/$usuario
done
exit 0