sábado, 20 de agosto de 2011

Iniciar sesión sin pedir contraseña en Gnome

No escribir la contraseña para iniciar sesión es a veces útil para usuarios que comparten ordenadores y no quieren diferenciar cuentas, o simplemente usuarios vagos que no les apetece escribirla. Si te encuentras entre este grupo, o simplemente lo prefieres así, se puede iniciar sesión automáticamente de manera muy sencilla. Para ello sólo tienes que ir a:

Sistema -> Administración -> Pantalla de identificación

Una vez aquí pulsaremos sobre desbloquear, introduciremos la contraseña de root, escogeremos acceder automáticamente con nuestro nombre de usuario. Aceptaremos y listo. Ya no volverá a pedirnos contraseña para iniciar sesión.

domingo, 10 de julio de 2011

¿Cómo sincronizar la fecha y hora desde la consola (terminal), usando Network Time Protocol (NTP)?

Para mostrar la fecha y hora actuales sólo basta ejecutar el comando date :
$ date
Sat Sep 19 14:39:48 CDT 2009

SINCRONIZAR
El comando ntpdate es usado para establecer la conexión con un servidor NTP, y el parámetro -s (syncronize) indica que el equipo debe sincronizarse con un servidor específico. Es necesario anteponer el comando sudo puesto que la modificación de la fecha y hora afectará a todo el sistema, y la administración del mismo es tarea que corresponde al superusuario. He aquí un ejemplo:
ntpdate -s pool.ntp.org

En el ejemplo anterior sólo se ha indicado el servidor Global (pool.ntp.org) el cual determina el lugar de donde procede la conexión del cliente, y en base a ello devuelve la fecha y hora correspondientes.

Para que la sincronización sea más precisa se recomienda usar los servidores de las Zonas Continentales, los cuales son:

* África (africa.pool.ntp.org)
* América (north-america.pool.ntp.org , south-america.pool.ntp.org)
* Asia (asia.pool.ntp.org)
* Europa (europe.pool.ntp.org)
* Oceanía (oceania.pool.ntp.org)

SINCRONIZAR LA HORA AUTOMÁTICAMENTE AL INICIAR EL SISTEMA
Para que la máquina sincronice la hora automáticamente al iniciar sistema, sólo instalamos el paquete ntp.
sudo aptitude install ntp

Aclaración: La hora se sincronizará a los pocos minutos en que se inicie la sesión.

El archivo a configurar es "/etc/default/ntpdate" y debe quedar así:
# The settings in this file are used by the program ntpdate-debian, but not
# by the upstream program ntpdate.

# Set to "yes" to take the server list from /etc/ntp.conf, from package ntp,
# so you only have to keep it in one place.
NTPDATE_USE_NTP_CONF=yes

# List of NTP servers to use  (Separate multiple servers with spaces.)
# Not used if NTPDATE_USE_NTP_CONF is yes.
NTPSERVERS="ve.pool.ntp.org 0.south-america.pool.ntp.org 1.south-america.pool.ntp.org 2.south-america.pool.ntp.org 3.south-america.pool.ntp.org"

# Additional options to pass to ntpdate
NTPOPTIONS=""

Esta es mi configuración, cabe destacar que debes antes de sincronizar configurar la zona horaria con "tzselect"

También podría interesarte:
¿Cómo crear zonas horarias en Windows?
¿Cómo actualizar zonas horaria en Debian, Ubuntu, Kubuntu y Canaima?

martes, 28 de junio de 2011

Creación de discos virtuales en Debian para maquinas virtuales de XEN

Para crear los discos usaremos dd de la siguiente forma:
dd if=/dev/zero of=disk5.img bs=1MB count=2000
(esto generara una imagen llamada disk5.img de 2Gb)

Hacemos que sea de tipo ext3, formateándola así:
mkfs.ext3 disk5.img

Para crear una swap también vamos a usar dd.
 dd if=/dev/zero of=swap.img bs=1M count=1500
(esto generara una imagen llamada swap.img de 1.5Gb)

Hacemos que sea de tipo swap, formateándola de la siguiente forma:
 mkswap swap.img

Podemos ampliar o reducir el tamaño de los sistemas de archivos con:
resize2fs disk5.img

1) Se crea el disco con el siguiente comando dd if=/dev/zero of=file.img bs=1MB count=2000, donde se indica of=file.img es el nombre de archivo de disco virtual, count=2000 es igual a dos giga.
2) Se formatea el disco con el siguiente comando mkfs.ext3 disk.img, donde disk.img es el nombre de la imagen de disco creada.
3) Se reestructura los inodos del disco con el comando resize2fs disk.img, donde disk.img es el nombre de la imagen de disco creada.
Para aumentar el tamaño del disco debes hacer lo siguiente:
1) Apagar la maquina virtual
2) Ubicar el archivo
3) Ejecutar dd if=/dev/zero of=vm-101-disk-1.raw bs=1 count=0 seek=200G
Nota: of=nombre del disco virtual y seek=tamaño nuevo del disco

lunes, 27 de junio de 2011

Como dar privilegios a un usuario para un servicio especifico

A veces es necesario otorgar ciertos permisos a otros usuarios, de tal forma que sólo cumplan una función específica en el sistema, como aquellos que administren apache o mysql, etc.

Esta escalada de permisos se realiza precisamente con el paquete sudo, instalamos el paquete sudo:

aptitude install sudo


La configuración de los privilegios se lleva a cabo en el archivo sudoers, para modificar el archivo debemos ingresar como root:

su


Introducimos la clave de root, y una vez autentificado pasamos a editar el archivo:

/etc/sudoers


Ahora agregamos en el archivo la especificación deseada para el usuario, ejemplo:

usuario1 ALL= /sbin/ifconfig
usuario2 ALL= (root) /etc/init.d/apache2
 
Como vimos esto lo podemos usar para múltiples usuarios y múltiples servicios. 

Listas de Control de Acceso -(ACL)

Los permisos de linux están bien siempre que no dispongamos de un grupo muy grande de usuarios, si es así se haría muy lioso ya que tendríamos un /etc/group muy grande. Una forma elegante de arreglar este problema es usando las ACL (Listas de Control de Acceso).

A grosso modo una ACL es una lista de usuarios o grupos Linux y sus correspondientes permisos de acceso que tienen a un fichero o directorio.
Instalando y activando las ACL:

Para aumentar la granularidad de los permisos en tu sistema debes tener en cuenta:

El nucleo debe soportar y estar compilado para soportar atributos extendidos y ACL
El sistema de ficheros tiene de montarse con atributos extendidos y ACL
Se tienen de instalar las utilidades de espacio de usuario (chacl,getfacl y setfacl) para establecer el ACL.

Una vez claros estos conceptos pasamos a activar ACL.
Soporte ACL del núcleo de sistema:

La gran mayoría de distros actuales ya soportan ACL puedes comprobar si tienes soporte con este comando.

# grep POSIX_ACL /boot/config-`uname -r`
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_JFS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
# CONFIG_TMPFS_POSIX_ACL is not set


Como podéis tenemos el soporte de ACLs activado en el kernel. De no ser así lo recompilamos marcando estas opciones.

File systems --->

[*] ReiserFS extended attributes
[*] ReiserFS POSIX Access Control Lists

Puede hacerse sobre sistemas de ficheros ReiserFS, XFS, Ext3 y otros.
Soporte ACL en /etc/fstab:

Una vez que tengamos soporte ACL necesitaremos configurar /etc/fstab. Los sistemas de ficheros montados con acl tendrán la palabra clave "acl" en las opciones de montaje de sus entradas en el fichero.

/dev/sda6 /usr reiserfs noatime,acl,user_xattr 1 2
/dev/hda1 /opt ext3 defaults 0 0

Como podéis ver sda6 tiene soporte acl en el punto de montaje , si quisiéramos hacer lo mismo en hda1 sería tan fácil como:

/dev/hda1 /opt ext3 defaults,acl 0 0

Una vez actualizado el fichero /etc/fstab debemos remontar el sistema de ficheros.

Ejemplo para hda1:

# mount -o remount /dev/hda1

Soporte ACL en el espacio de usuario:

El último paso para usar ACL es asegurarse de que las aplicaciones de espacio de usuario estén presentes en el sistema. En Debian o Ubuntu puedes comprobar así:

# dpkg -l | grep acl
ii acl 2.2.42-1ubuntu1
Access control list utilities
ii libacl1 2.2.42-1ubuntu1

También puedes comprobar buscando las herramientas:

# type -a getfacl
getfacl is /usr/bin/getfacl

Si el control de ACLs no esta instalado puedes instalarlo desde el manejador de paquetes de tu distribución en debian por ejemplo:

# apt-get install acl

Formato ACL:

Linux soporta 2 tipos básicos de ACL:

ACL de control de directorios y ficheros.
ACL de directorio (máscaras) ACL que toman por defecto los ficheros creados en ese directorio.

La ACL se representa por tres campos separados por ":".

Campo 1:
Entrada

"u" Usuario
"g" Grupo
"o" Otro
"m" Máscara

Campo 2:

UID (ID numérico de usuario)
GID (ID numérico de grupo)
Vacío (Asume UID,GID del Creador)

Campo 3:

El tercer campo es el de acceso y puede ser representado de 2 maneras.

Cadena estándar RWX (las cadenas se pueden remplazar por "-" si no queremos dar acceso de ese tipo)
Cadena simbólica + ^

Herramientas:

chacl: Permite cambiar, examinar o eliminar ACL.
getfacl: Permite examinar acl para encontrar archivos o directorios.
setfacl: Establece ACL a fichero o directorio.

Mostrar ACL:

Para el ejemplo usaremos un directorio con archivos que hemos creado con touch.

> ls -l
total 0
-rw-r--r-- 1 tuxed tuxed 0 2008-01-26 03:03 lerele
-rw-r--r-- 1 root root 0 2008-01-26 03:03 pass
-rw-r--r-- 1 root root 0 2008-01-26 03:02 user

La acl para el directorio siguiente es:

> getfacl .
# file: .
# owner: root
# group: root
user::rwx
group::rwx
other::rwx

La acl por defecto para el fichero lerele es esta:

> getfacl lerele
# file: lerele
# owner: tuxed
# group: tuxed
user::rw-
group::r--
other::r--

La acl para el directorio el cual no se le ha asignado coge los de umask:
Establecer ACL:

Hay tres maneras de establecer un ACL:

Usando el comando setfacl el cual sobrescribe cualquier ACL anterior.
Usando el comando setfacl con la opción -m (Modifica ACL).
Usando chacl para modificar una ACL existente.

En esta ocasión mostraré como se cambian las acl con chacl, ya que este no sobrescribe la existente, y además proporciona algo más de información acerca del funcionamiento de las listas de acceso.
Ejemplo:

Añadiremos al usuario aitor como alguien que puede leer el fichero lerele, y usaremos chacl (cambiar la ACL) del siguiente modo:

$ chacl u::rw-,g::r--,o::---,u:aitor:r--,m::rw- lerele

Esta es la forma en la que se ve una acl en la vida real, el hecho de que sea un comando demasiado largo es que se deben definir en los puntos ya nombrados anteriormente el propietario de fichero, grupo propietario y otros.

Para entendernos mejor, la porción u::rw,g::r--,o::--- es la ACL existente y la porción u:aitor:r--,m::rw- especifica el nuevo usuario que quiero añadir a dicha acl y la máscara de derechos efectivos cuando se añada.

La máscara de derechos efectivos es la unión de todos los permisos ya existentes de UGO para un fichero o directorio. Se obtiene al añadir un usuario a la ACL.

Para comprobar que hemos sido añadidos a la acl usaremos:

$ getfacl lerele
# file: lerele
# owner: tuxed
# group: tuxed
user::rwx group::r-- other::--- user:aitor:r-- mask::rw-

Ahora que ya sabemos como funciona acl podríamos poner que aitor tenga permisos de lectura y escritura a lerele:

$ chacl u::rw-,g::r--,o::---,u:aitor:rr-,m::rw- lerele

Como veis le hemos añadido permisos de escritura:

$ getfacl lerele
# file: lerele
# owner: tuxed
# group: tuxed
user::rwx group::r-- other::---user:aitor:rw-

Como hacer backup con rsync usando Debian, Canaima o Ubuntu.

Hacer respaldo de los diferentes servicios, se motiva a la importancia de tener activos los servicios de las 24 horas, en caso de desastre tener los sitios resguardados para hacer una restauración rápida de ellos, para eso se configura un servidor con características específicas que realizará la tarea de resguardo de la información de forma automática e incremental: 
1. Instalamos el programa que realizara la tarea:
     aptitude install rsync
 
2. Complementamos configurando una relación de confianza entre servidores.

3. Creamos un script para configurar los procesos de respaldo:

4. Configuramos un cron para automatizar los procesos, de la siguiente forma:
4.1. Ejecutamos:
     crontab -e
4.2. Agregamos las lineas de configuración al final del archivo:
           00 00 * * * /root/rsync.sh
 
Para que se ejecute el script todos los días a la media noche.