lunes, 9 de marzo de 2015

Introducción a la programación en Shell

¿Que es una shell?

Shell es un interprete de comandos, permitiendo una comunicación directa entre el usuario y el ordenador.

Podemos utilizar distintos editores de texto para la creación de estos archivos.

Como por ejemplo el editor Vi -> http://linuxzone.es/how-tomanual-basico-de-uso-del-editor-vi/
y el Nano

Estos archivos tendrán un formato .sh y se ejecutarán mediante ./nombredelarchivo.sh

Todos los archivos .sh deberán contener en el inicio de pagina #! /bin/bash  para indicarle con que programa se ejecutara el script.

Variables

Las variables no pueden llamarse igual que las palabras reservadas por ejemplo:

!         case    do
done      elif    else
esac      fi      for
function  if      in
select    then    time
until     while   { 
}         [[      ]]

Comandos para visualizar ficheros: 
less
cat
more
..
Ejemplo : less /etc/passwd 
Tambien podemos utilizar filtros para agilizar busquedas del contenido en los ficheros utilizando el comando PIPE.

less /etc/passwd | root
Mostrar la información referente al usuario root.
head/tail
Mostrarán el principio(cabeza) o el final (cola) de un archivo
head /etc/passwd 
tail /etc/passwd  




LDAP

LDAP ( Protocolo Liger de Acceso)

Es un protocolo que trabaja en el nivel de aplicación, y permite el acceso organizado y compartido de directorios en un entorno de red. LDAP también se puede considerar una base de datos debido a que es capaz de almacenar información referente a usuarios (login y contraseñas) que serán necesarias para autentificarse en los equipos y para poder disfrutar de los servicios disponibles en el equipo.

OpenLDAP

Es una implementación libre del protocolo LDAP que tiene su propia licencia y  que soporta múltiples esquemas, por lo que permite la conexión con cualquier otro LDAP. También es un protocolo multiplataforma.

OpenLdap tiene cuatro comonentes principales


  • slapd - Demonio LDAP principal
  • Slurpd - demonio de replicación de actualizaciones Ldap autónomo
  • Rutinas de bibliotecas de soporte del protocolo DAP
  • Utilidades, herramientas y clientes. 
Instalación y configuración


apt-get install slapd ldap-utils
service slapd start| stop| restart 


Reiniciar el servicio

service lapd restart

Ruta del sistema

/etc/ldap

Para el manejo de usuarios deberemos instalar las plantillas:

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif

En el cual podemos definir :

Base del directorio: parámetro olcSuffix. dc=majada,dc=com

 Nombre de usuario administrador: parámetro olcRootDN . cn=admin,dc=majada,dc=com

 Contraseña: parámetro olcRootPW. ldapadmin

Permiso de acceso a contraseñas: parámetro olcAccess: to attrs=userPassword. administrador permiso de escritura y a cada usuario para cambiar su propia contraseña

 Permiso de acceso global al directorio: parámetro olcAccess:to *. Daremos al usuario administrador permiso de escritura y a todos los usuarios, permisos de lectura


Herramientas y utilidades


  • Cliente 


ldapmodify : modificar entradas de un directorio
ldapadd : añade entradas al directorio
ldapsearch : busca entradas en el directorio
ldapdelete : elimina entradas en el directorio


  • Servidor 


slapadd : añadir entradas desde un fichero ldif.
slapcat : extraer de una base de datos en formato ldfi.
slapindex : regeneración de indices.
slappaswd : genera una contraseña de unsuario.


También contamos con herramientas gráficas como por ejemplo:

lat: LDAP admin tool
phpldapAdmin: Entorno web
JXplorer.














































Configuracion de la Red

Para una correcta configuracion de un dominio debemos configurar con una configuracion básica en nuestro servidor, como por ejemplo

Deberemos contar con:
Un servidor DCHP
Un servidor DNS
Y un Firewall

Se pueden instalar tanto fuera como dentro de nuestro servidor.

Para comprobar toda  nuestra información de red, podemos ejecutar el comando ifconfig -a
El fichero de configuración lo podemos encontrar en la ruta /etc/network/interfaces

Este fichero nos permite indicar de forma manual los datos de red.

Ejemplo del fichero :

lo auto
iface eth0 inet static
address 192.168.1.150
netmask 255.255.255.0
network 192.168.1.0
gateway 192.168.1.1
broadcast 192.168.1.255


Para reiniciar la interfaz de red ejecutamos el comando ifdown/ifup (interfaz de red)
Por ejemplo ifdown eth0
Y para levantar lo ifup eth0
Esto actualizará y/o renovará nuestra información de red.

También podemos reiniciar el servicio de red con el comando.
/etc/init.d/networking restart | stop | start




Servidor cups

¿Que es el servidor Cups?

Es un sistema de impresión comunitario para sistemas Linux, permitiendo que un equipo actué como servidor de Impresión aceptando peticiones de clientes  y gestionarlo de manera adecuada.

Instalación

apt-get install cups
apt-get install cups-common
apt-get install cups-client

Cups, almacena la cola de impresión en el fichero /var/spool/cups el cual almacena dos ficheros, uno relacionado al fichero de impresión y otro fichero al usuario que lo ejecuta.
También se encarga de transformar los archivos a un formato que el sistema los pueda leer.
Y una vez finalizada la impresión el planificador elimina los archivos de la cola de impresión.

Archivo de Configuracion Cups

Podemos encontrar el archivo de configuración en la ruta /etc/cups/cups.conf. La sintaxis del fichero es similar a la del servidor Apache.
Podemos encontrar parametros como:

Longlevel: Establece el tipo de información que se almacenara en los logs.
Listen: El puerto en el que se mantendrá escuchando cups. (631 por defecto).
Browsing: Muestra o no, las impresoras disponibles en la red.
Maxclients: especifica el numero de clientes que podrán hacer uso de forma simultanea.
Allow From: Indica que clientes tendrán acceso (IP,Nombre_usuario, ALL (Todos).

Fichero /etc/cups/printers.conf almacena la cola de impresion de las impresoras configuradas en nuestro equipo.
Permite realizar configuraciones como:
Accepting: Yes o No, dependiendo si queremos que nuestra impresora acepte trabajos o no.
Allowuser: Permite definir a que usuarios se les permitirá  acceso al servicio.
DenyUser: Define a que usuarios se les negará el servicio.
Shared: Indica si la impresora se comparte en red.

Con el comando lpoptions Podemos mostrar o especificar opciones de una impresora.
Con el comando lpadmin podemos configurar impresoras y clases.

Tambien podemos realizar todo tipo de configuraciones mediante una interfaz web haciendo uso de nuestro numero de IP del servidor de impresion e indicando el puerto:
Ej: 192.168.1.0/24:631







domingo, 1 de marzo de 2015

ADD_UT10_AB1 Samba

ADD_UT10_AB1 Samba


Existen dos métodos para compartir archivos:


  1. Mediante Samba 
  2. NTFS 


Samba : Sirve para compartir directorios y subdirectorios  con Windows y otros equipos pertenecientes a nuestra red y de diferentes sistemas Operativos.
Cada sistema mostrara las carpetas como si se encontrarán de forma local, siendo de mucha ayuda para el usuario.

 Niveles de Seguridad:

  • Seguridad orientada a los recursos
  • Seguridad orientada a los usuarios 


Método de instalación:  apt-get install samba (debian).

Solo podrán usar este método los usuarios dados de alta. Es decir, no todos los usuarios tienen este privilegio.

Para dar de alta a un usuario ejecutamos :
       smbpasswd -opcion usuario

Para dar de baja a un usuario ejecutamos:
       smbpasswd -x usuario

Para ver los usuarios dados de alta en el sistema ejecutamos
     pdbedit -w -L

Fichero de configuración:

   /etc/smb.conf

Tambien tenemos otro método para compartir carpetas entre sí utilizando NFS permitiendo centralizar la administración de discos.

 NFS (Network File System - Sistema de Archivos en Red):

Es el sistema nativo utilizado por linux para compartir carpetas en una red

Instalación del servicio:

    apt-get install nfs-kernel-server nfs-common portmap

Para iniciar el servicio:
     service nfs-kernel service start

Principales características


  • Transparencia de acceso
  • Transparencia de ubicación
  • Transparencia ante falla 
El archivo /etc/exports contiene el listado de los sistemas de Archivos que son exportados a otras maquinas. 

domingo, 8 de febrero de 2015

Linux - Procesos

(Un programa y un proceso son cosas distintas)
Es la forma en el que el sistema operativo muestra que existe un programa en ejecucion. Un proceso a su vez, puede crear otros procesos creando una jerarquía Padre - Hijo (la cantidad de procesos dependerá también de la capacidad de nuestro equipo).

Para gestionar la información en tiempo real de cada proceso (desde su inicio, hasta que finaliza) el sistema utiliza un registro especial conocido como BCP (Bloque de Control del Proceso).
Cuando un proceso finaliza su espacio en el registro BCP es borrado y utilizado para registrar el siguiente proceso.
El BCP identifica cada proceso mediante un identificador de proceso (PID en ingles), el numero de identificador es distinto para cada proceso en ejecución.


Estados de un proceso

Nuevo: El proceso ha sido creado, mas todavía no ha sido aceptado por el S.O (linux) en el caso de Windows suele ser admitido de forma automática, lo cual no siempre es la mejor opción.

Listo: El proceso esta esperando al CPU para su ejecución.

Ejecutando: El proceso ya esta en la CPU y se encuentra ejecutando ordenes.

Finalizado: El proceso ha finalizado su ejecución y a su vez liberado el espacio que ocupaba.