Script para Crear Usuarios

Anuncio
Presentación:
Nombre (s):
Martin Steve
Apellido (s):
Morán R.
Matrícula:
2011-0914
Asignatura:
Sistemas Operativos 3
Tema:
How To – Creación de Shell Scripts
Profesor (a):
José Doñé
¿Qué es un Script?
Los scripts son un conjunto de instrucciones generalmente almacenadas en un archivo de texto
que deben ser interpretados línea a línea en tiempo real para su ejecución, se distinguen de los
programas, pues deben ser convertidos a un archivo binario ejecutable para correrlos.
¿Qué es el Shell?
Shell, es el término usado en informática para referirse a un intérprete de comandos, el cual
consiste en la interfaz de usuario tradicional de los sistemas operativos basados en Unix y
similares como GNU/Linux. Mediante las instrucciones que aporta el intérprete, el usuario puede
comunicarse con el núcleo y por extensión, ejecutar dichas órdenes, así como herramientas que
le permiten controlar el funcionamiento de la computadora.
¿Qué es un Shell Script en Linux?
Un Shell Script es un script para la shell de comandos (terminal). Para crear un script basta con
un editar un fichero nuevo y en el nombre poner .sh Ejemplo:
vi prueba.sh
Una vez creado, empezamos a editarlo. Se puede utilizar un editor de textos gráfico como gedit
o un editor en terminal como vim, nano o emacs.
¿Cómo funcionan los Scripts?
En la primera línea del script se debe indicar que shell que vas a usar (/bin/bash/, /usr/ bin/perl ,
etc ) Aunque da igual la que uses lo importante es el contenido:
#! /bin/bash
#! Se conoce con el nombre de Sha Bang.
Se denomina “sha-bang” a la secuencia #! con la que se inician los scripts. Su función es
indicarle al sistema que se trata de un conjunto de comandos para que sean interpretados. En
realidad, es un número mágico de dos bytes. El número mágico es un marcador especial para
indicar el tipo de archivo, en este caso, indica que se trata de un script de shell ejecutable.
Para introducir comentarios se debe poner #. Por cada línea que desees poner un comentario, lo
primero que debe tener es #. Es importante añadir comentarios comentando la utilidad del
script o las variables que se crean.
¿Cómo ejecutar un Script?
Antes de poder ejecutarlo, debemos darle permisos de ejecución. (+x) por ello, haremos uso del
comando chmod y damos permisos de ejecución, si se desea, se pueden dar a todos los
usuarios y grupos.
chmod 755 /ruta_del_script
Para el usuario propietario
chmod 777 /ruta_del_script
Para cualquier usuario
Una vez hecho todo lo anterior, usaremos:
./nombredelscript.sh
Pero también podemos usar si es un shell script:
sh nombredelscript.sh
Script para hacer una Calculadora
Lo primero que haremos es abrir el Shell de nuestra distribución. En este tutorial me encuentro
usando CentOS. Así que lo abriré dando clic en Aplicaciones > Accesorios > Terminal:
Luego de esto, nuestra terminal queda abierta:
Aquí, procederemos a entrar como Administrador (o usuario root):
Entonces, nos dirigiremos al escritorio, que es donde guardaremos el archivo que vamos a crear:
Crearemos una carpeta en el escritorio llamada Scripts, para guardar los archivos que vamos a
crear:
Luego de esto, lo que haremos es escribir el siguiente comando para abrir el archivo en
conjunto con el editor de texto que vayamos a utilizar. En mi caso, utilizaré nano.
El comando a escribir será el siguiente:
[root@localhost Scripts]# nano nombre_del_script.sh
Y nos sale nuestro editor:
Aquí para hacer un poco más resumida esta explicación lo que haremos es que le iremos
explicando cada parte del código siguiente de la calculadora:
La instrucción echo: indica mostrar un mensaje en la pantalla. En este caso, se utilizar para
mostrar el mensaje de banner y algunos mandatos.
La instrucción read: indica que la variable que el usuario introduzca, será leída por el shell y se
almacena en memoria. En este caso el primer y segundo valor numérico escritos por el usuario.
La instrucción read operador: el intérprete tomará en cuenta la operación aritmética elegida
por el usuario para llevar acabo el proceso.
La instrucción sleep: indica el tiempo (en segundos) de suspensión para que el shell imprima la
respuesta.
La instrucción expr: indica al shell el orden en el que va a efectuar la operación. En este caso
expr $valor1 $operador $valor2, donde $ significa que se emplearan esas variables definidas
“$valor1 $operador $valor2”.
Ahora, guardamos nuestro código y procedemos a asignarle permisos y luego a ejecutarlo. Para
guardar el archivo en nano simplemente elegimos CRTL+O y luego CRTL+X para salir:
CRTL + O y luego ENTER:
Después CRTL + X para salir:
Ahora procederemos a asignarle los permisos necesarios para ejecutar nuestro Script:
Para ejecutar nuestro Script, simplemente escribimos el comando sh seguido del nombre del
Script y damos ENTER. En este caso, mi Script se llama Script-Calculator.sh:
Aquí ya vemos nuestro Script ejecutando nuestra calculadora básica. Esta calculadora solo
permite operaciones básicas (suma, resta, división y multiplicación). Ahora vamos a verlo
funcionando.
En nuestro ejemplo haré un división (144 entre 12). En nuestra primera sentencia nos pide el
primer valor (en nuestro ejemplo será 144):
Luego nos pide el tipo de operador, en este caso es el símbolo de división:”/”
Luego introducimos nuestro segundo valor (para este campo sería 12):
Por ultimo nos da nuestro resultado deseado.
Script para Crear Usuarios
Dentro de nuestra carpeta Scripts, crearemos nuestro Script de Creación de Usuarios, el cual se
llamará Script-AddUsers.sh.
Luego de darle ENTER, nos abrirá nuestro editor de texto con el archivo que vamos a utilizar
para crear nuestro Script de Creación de Usuarios:
Lo que haremos ahora para no hacer el proceso tan complicado es que, a medida que yo vaya
creando el Script, iré explicando paso a paso lo que haremos dentro del mismo editor. O sea,
escribiré las instrucciones dentro del mismo editor para ahorrarnos tiempo.
Iré enumerando cada paso. También iré subrayando las tareas que se harán en cada uno.
Paso #1
Paso #2
Paso #3
Paso #4
Paso #5
Paso #6
Paso #7
Paso #8
Paso #9
Paso #10
Paso #11
Paso #12
Paso #13
Por último, guardamos y salimos.
Ahora para ver a nuestro Script funcionando, lo invocamos por medio del comando sh. Por
ejemplo:
Luego que presionamos ENTER, nos sales la siguiente pantalla:
Lo primero que nos pedirá es el nombre de usuario a crear. Antes de seguir, es mejor especificar
de una vez los pasos que vamos a llenar.

Usuario: mmoran

Directorio /home: /home/mmoran1

Grupo: Networking

Shell: /bin/bash
Ahora que sabemos los parámetros concretos, vamos a comenzar:
Cuando damos ENTER, se limpia la pantalla y nos presenta los datos introducidos. En caso de
que estén erróneos, el Script nos advierte que pulsemos CRTL + C para cancelar la operación:
Si todos los parámetros que introducimos están correctos, entonces podemos presionar ENTER.
Nos saldrá el siguiente mensaje:
Luego nos saldrá otra pantalla donde nos pedirá la clave o password para el nuevo usuario:
Y ya nuestro usuario queda satisfactoriamente creado. Si queremos verificar que es cierto,
podemos usar dos formas, las cuales son buscar el usuario en la base de datos o logearse. Por
ejemplo, si queremos ver por medio de la terminal, escribimos la siguiente sintaxis:
El parámetro more nos permite ver el contenido completo de un archivo.
El parámetro grep nos permite filtrar una porción de datos específicos de un archivo.
Usamos grep porque el comando more nos hubiera mostrado una extensa lista de datos que
contiene el archivos, la cual, con el archivo grep, se pudieron filtrar diciéndole que solo mostrara
información referente al usuario mmoran.
Si nos damos cuenta, el usuario esta creado junto con su carpeta personal de sistema:
Crear un Script para hacer un Backup de nuestros archivos
Realizamos el mismo proceso que hemos realizado anteriormente, creamos el archivo donde
crearemos el script por línea de comando.
Se abre el editor de texto con el archivo que vamos a crear.
Ahora, haremos lo mismo que con el script anterior: Iremos explicando dentro del script a
medida que lo vayamos creando:
Paso #1:
Paso #2:
Paso #3:
Paso #4:
Ahora vamos a darle permisos a nuestro Script:
Y lo ejecutamos:
En este caso, voy a hacerle un Backup a mi carpeta que contiene los scripts. Esto lo hago
escribiendo la ruta completa en donde se encuentra la carpeta:
Entonces, el Script hace el resto:
Lo que haremos ahora es verificar si nuestro Backup fue creado. Esto lo hacemos yendo a la
carpeta “Backup” en nuestro Escritorio, el cual fue la ruta que le asignamos a los backups que
vayamos a crear.
Y le damos un “ls” para ver los ficheros dentro de la carpeta Backup:
Como vemos, tenemos un archivo llamado “Backup.La fecha.tgz”. Si queremos descomprimir
dicho fichero, solo usamos el comando tar xvf“:
Luego de finalizar la descompresión del fichero, volvemos y le damos ls para ver si se
descomprimió nuestro fichero /home.
Eso es todo!
Script para Transferir Datos entre PCs
Como dice el titulo, lo que haremos ahora es hacer un script funcional que nos permita
intercambiar datos (archivos, directorios, etc) entre diferentes PCs.
Para esto abrimos nuestra terminal y nos logeamos como root:
Ahora, en conjunto con nuestro editor de texto preferido (en mi caso nano) vamos a crear el
archivo con el nombre que le vamos a dar a nuestro Script. Vamos a llamarlo Script-Datos.sh:
Y nos abrirá nuestro archivo listo para ser editado:
Aquí veremos los pasos a seguir. Dichos pasos los copiaré dentro del mismo Script:
Guardamos presionando CTRL + O y luego ENTER:
Y luego CTRL + X para salir.
Ahora vamos a poner nuestro Script en funcionamiento. Para esto lo ejecutamos con el
comando sh:
Entonces iniciamos el script:
En nuestra primera pantalla nos pide que introduzcamos el archivo o directorio que queremos
copiar. En este caso, copiaré mi carpeta Scripts que se encuentra en el escritorio de mi maquina
Servidor. Ejemplo:
Luego, nos pide el directorio de destino donde queremos llevar ese archivo:
Copiaré la carpeta Scripts en el Escritorio de mi maquina Cliente cuya IP es 192.168.1.11:
Damos ENTER
Aquí, nuestro Script nos pide la clave de nuestra máquina cliente, que es donde vamos a copiar
el directorio:
Luego que introducimos la clave, se empezarán a copiar los archivos:
Y se copian satisfactoriamente. Para confirmar solo tenemos que ir a nuestra máquina cliente e
ir al escritorio:
Utilizando CRON para programar la ejecución automática de un Script

Agregar tareas a crontab:
Ejecutamos la edición del crontab con crontab -e, en algunas distribuciones nos da la opción de
elegir el editor de textos que deseemos, los demás nos quedamos con vi. El archivo crontab
lucirá algo así:
Donde:

M: Corresponde al minuto en que se va a ejecutar el script. El valor va de 0 a 59.

H: Corresponde a la hora exacta. Se maneja el formato 24 horas. Los valores van de 0 a
23, siendo 0 las 12 de la medianoche.

Dom: significa el día de la semana. Puede ser numérico o las 3 primeras letras del día en
inglés: mon, tue, wed, thu, fri, sat, sun.

User: Define el usuario que va a ejecutar el comando, puede ser root, u otro usuario
diferente y siempre y cuando tenga permisos de ejecución dl script.

Command: Refiere al comando o a la ruta del script a ejecutar, ejemplo:
/home/MMORAN/Desktop/Scripts/Script-AddUsers.sh
Aquí unos cuantos ejemplos de tareas programadas con cron. Ejemplo, de los Scripts que
hemos creado en este tutorial, si queremos ejecutar el script Script-Calculadora.sh a las 10:30
P.M. todos los días, entonces el mandato quedaría así:
Si quisiéramos ejecutar el Script Script-AddUsers.sh los viernes a las 05:30 A.M entonces el
mandato quedaría así:
Si quisiéramos ejecutar el Script Script-Datos.sh el día 20 de noviembre a las 07:30 P.M.
entonces el mandato sería:
Pero si esto le resulta confuso, CRONTAB también maneja cadenas especiales para definir estos
rangos.

@yearly

@monthly

@weekly

@daily

@midnight

@hourly
Sus usos son muy sencillos. Por ejemplo, si queremos correr el script Script-Backup.sh todos
los días, el mandato seria:
Y eso es todo!
Descargar