viernes, 13 de febrero de 2015

Servicios de Directorio en Redes Linux : Configuración de la red



Configurar manualmente la interface de red en Debian o Ubuntu

Editar el archivo /etc/network/interfaces.

nano /etc/network/interfaces


- La interface primaria será eth0.
- allow hotplug eth0: el adaptador eth0 se habilitará automáticamente si reiniciamos el servicio de networking.
- iface eth0 inet static: Estoy usando una ip fija para mi servidor por eso he puesto static, si quisieras   una configuración por dhcp escribirías dhcp y el resto de líneas inferiores podrías comentarlas con #.
address: La dirección ip de la máquina.
netmask: Máscara.
network: La red.
En principio estos 3 anteriores parámetros son necesarios y los dos de abajo son opcionales.
Broadcast: Dirección ip de broadcast.
Gateway: Puerta de enlace (si queremos tener salida a internet).

Configuración temporal de interface de red

ifconfig [interface] [ip]

Ejemplo:

ifconfig eth0 192.168.1.139



Servicios de Directorio en Redes Linux : LDAP

LDAP (Lightway Directory Access Protocol - Protocolo de Acceso a Directorio Ligero) es un protocolo de aplicación que permite el acceso a un dominio.

Instalación de Ldap:

sudo apt-get install slapd ldap-utils

Instalación de servidor de autenticación:

sudo apt-get install ldap-auth-client nscd

Instalación de librería PAM LDAP

sudo apt-get install libpam-ldapd

Actualización de PAM

pam-auth-update


Fichero de ejemplo de esquema básico de ldap (extensión ldif)






OlcSuffix: Nombre del dominio o directorio base
OlcRootDN; Nombre del administrador del servidor LDAP
oldRootPW; Contraseña del administrador del servidor LDAP




olcAcces to attrs=userPassword: El acceso global a las contraseñas del dominio será para el administrador del servidor LDAP.


Fichero de ejemplo de usuarios y unidades organizativas de ldap (extensión ldif)



Directorio base: dn; dc=majada,dc=com
Administrador de directorio base : cn=admin,dc=majada,dc=com
Unidades organizativas: users y groups



Agrego los usuarios:

dn; Nombre completo de la cuenta de usuario
cn: nombre abreviado
sn: surname
uid: id del usuario



Agrego los usuarios a las unidades organizativas:

dn: Nombre de la unidad organizativa.
memberUid: nombre del usuario que pertenece a la unidad organizativa,

Por último cargar en el directorio los archivos ldif:

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/ldap-esquema-basico.ldif

sudo ldapadd -c -x -D cn=admin, dc=carlosmajada,dc=com -W -f /tmp/ldap-usuarios.ldif

He almacenado los archivos en el directorio /tmp ya que las contraseñas están en texto plano por lo que una vez cargados los archivos no es recomendable dejarlos en el sistema.

jueves, 5 de febrero de 2015

Programación en Shell : Procesos

- Un programa en ejecución es un conjunto de procesos.
- Un proceso está compuesto de un conjunto de hilos.
- Los hilos son operaciones determinadas de un programa. Por ejemplo cuando editamos una imagen en Photoshop, le cambiamos el color o contraste, eso sería un hilo de un proceso.

Estados de los procesos



Interrupcion; El programa espera una orden para ejecutar el proceso. Por ejemplo un videojuego que use las teclas ASWD para mover al personaje, estará esperando que se pulse una de estas teclas para realizar el proceso.

Excepción: Son los errores de los programas. Por ejemplo una aplicación sencilla como la calculadora de Windows, está esperando un número para realizar una suma y se le proporciona una letra.

Comandos para la automatización de tareas en Linux

CRON: Es un administrador regular de procesos en segundo plano que ejecuta procesos a intervalos regulares, por ejemplo cada minuto, día, semana o mes. Los procesos deben ejecutarse y la hora en la que deben hacerlo en el fichero crontab.

AT: Permite programar tareas para que se ejecuten a determinada fecha y hora. La sintaxis del comando at es sencilla: at [hora] [fecha], algunos ejemplos son:

at 20:00 // ejecuta la tarea a las 8:00 PM
at 02:10 JUN 27 // ejecuta la tarea a esa hora el dia 27 de Junio


miércoles, 4 de febrero de 2015

Programación Shell : Funciones

Definición:

Las funciones en Shell nos permiten usar tareas repetitivas fácilmente. Son un conjunto de comandos a los que se les asigna un nombre.

Sintaxis de una función

nombre_funcion ( ){
       primer_comando
       segundo_comando
                                }

Valores de entrada

Las funciones pueden aceptar valores de entrada que se definen en el script pero fuera de la función.

Ejemplo:

#! /bin/bash

funcion_que_tal{
     echo "Hola $1, como estás?"
}


Ejecutamos la función y le pasamos un parámetro, en este caso el valor de entrada es "amigo": funcion_que_tal amigo
Resultado: Hola amigo, como estás?

También es posible indicarle estos valores de entrada en el propio script y pueden ser más de un único parámetro.

Ejemplo:

#! /bin/bash

funcion_que_tal {
echo "Hola $1, como estás?"
echo "Espero que estés $2"
}
$1 = amigo
$2 = bien

Ejecutamos la función y este sería el resultado:

Hola amigo como estás?
Espero que estés bien