Incluir usuario en sudoers

Si intentamos utilizar la opción «sudo» en Debian para ejecutar comandos en consola con nuestro usuario asumiendo privilegios del usuario root (tal y como se hace en Ubuntu y en otras distros ), veremos que el sistema nos da un error que nos dice que nuestro usuario no está incluido en el fichero «sudoers». Aunque hay quien sugiere editar a pelo el fichero /etc/sudoers, creo que es mejor hacerlo utilizando las aplicaciones de administración de Debian, de la siguiente manera:

Accedemos a Sistema / Administración / Usuarios y grupos. Una vez allí aparece seleccionado nuestro usuario (normalmente solo habrá uno, el nuestro, si no, seleccionamos aquél que queramos incluir en «sudoers»). Pulsamos el botón Gestionar grupos, y en la ventana que aparece seleccionamos el grupo «sudo»  y pulsamos el botón Propiedades. En la nueva ventana que nos aparece seleccionamos el «ckeckbox» del usuario a incluir en «sudoers» y pulsamos Aceptar. Se nos pedirá la contraseña de «root», después cerramos las ventanas que nos quedan abiertas, cerramos la sesión y al  volver a iniciar sesión ya podremos utilizar el comando «sudo» con nuestro usuario.

Configurar Selinux para un VirtualHost de Apache en Centos 6

Para que al utilizar un host virtual en Apache (por ejemplo localdev) cuyas páginas se encuentren en un directorio dentro de la carpeta del usuario (por ejemplo en public_html) no tengamos problemas de seguridad con Selinux, tenemos que realizar lo siguiente:

1) Instalar paquetes necesarios

Una instalación por defecto de Centos 6 a partir del CD Live configura Selinux en modo enforcing pero no instala algunos paquetes que vienen bien. En una consola como root hacemos:
#yum install policycoreutils-python setroubleshoot

2) Activar Selinux (en caso de que no lo tengamos ya activado)

Editar (como root) el fichero /etc/selinux/config dejándolo así:

SELINUX=enforcing
SELINUXTYPE=targeted

Tenemos que tener en cuenta que si no lo teníamos activado y modificamos este fichero para activarlo, es necesario reiniciar el equipo, porque hace falta que se haga de nuevo un «relabel» del sistema de ficheros.

3) Crear el host virtual en Apache

Modificar el fichero /etc/httpd/conf/httpd.conf descomentando la línea:
NameVirtualHost *:80 y añadiendo al final de dicho fichero:

DocumentRoot ~user/public_html
Servername localdev

4) Modificar el /etc/hosts

Modificamos la línea del host local incluyendo el nuevo host virtual (en este caso localdev) dejándola más o menos así:
127.0.0.1 localhost localhost.localdomain localdev

5) Configurar el contexto de Selinux y los permisos de la carpeta

Tenemos que lanzar como root los siguientes comandos en una consola.
Para cambiar el contexto Selinux de la carpeta del host virtual al necesario para que lo utilice el servidor web:
#chcon -R -v -u system_u -r object_r -t httpd_sys_content_t ~user/public_html

Para permitir al servidor web que lea el contenido de la carpeta home de los usuarios:
#setsebool -P httpd_enable_homedirs 1

Para que la configuración de Selinux se mantenga después de un «relabel» del sistema de ficheros:
# semanage fcontext -a -t httpd_sys_content_t "~user/public_html

Para que no haya problemas de permisos de acceso a las páginas web:
#chmod -R 755 ~user/public_html

(Los dos primeros comandos pienso que habría también que utilizarlos si en vez de crear un host virtual lo que se hace es utilizar el módulo userdir de Apache.)

6) Reiniciamos Apache y probamos nuestra página de inicio.

http://localdev/index.html

(Esta entrada es una versión resumida de este post, en el que se explica todo con más detalle)

Instalar Skype en CentOS 6

Para instalar Skype en un Lenovo T61 funcionando con CentOS 6.2 en su versión para 64 bits hay que seguir las instrucciones para CentOS 6 que aparecen en la wiki de CentOS:

1) Instalar las librerías de 32 bits necesarias para instalarlo en 64 bits:
yum install glibc.i686 nss-softokn-freebl.i686 alsa-lib.i686 libXv.i686
libXScrnSaver.i686 libtiff.i686 glib2.i686 libSM.i686 libXi.i686 libXrender.i686
libXrandr.i686 freetype.i686 fontconfig.i686 zlib.i686
glib2.i686 libstdc++.i686 libv4l.i686

2) Instalar la versión «static» de Skype (bueno, muy «static» no es, pues hay que instalar más cosas para que funcione):
cd /tmp
wget http://www.skype.com/go/getskype-linux-beta-static
cd /opt
tar xjvf /tmp/skype_static-2.2.0.35.tar.bz2
rm /tmp/skype_static-2.2.0.35.tar.bz2
ln -s skype_static-2.2.0.35 skype

3) Finalmente, hay que hacer un par de enlaces, el segundo es opcional, pero el primero es necesario para que funcione el sonido:
ln -s /opt/skype /usr/share/skype
ln -s /opt/skype/skype /usr/bin/skype

Se puede poner un enlace a Skype en el menú, en el panel o directamente lanzarlo desde consola. Yo he preferido añadir un lanzador de aplicación al panel superior. Para ello tenemos que pulsar el botón derecho sobre el panel superior, seleccionar Añadir al panel, seleccionar Lanzador de aplicación personalizado y pulsar Añadir, seleccionar tipo Aplicación, ponerle de nombre «Skype», comando «/opt/skype/skype», comentario «Pues eso» y pulsando en el icono con el chisme raro, seleccionar el icono azul de 32×32 que hay en la carpeta /opt/skype_static-2.2.0.35/icons. Pulsamos Aceptar y ya tenemos el lanzador en el panel.

Bueno, pues una vez hecho todo esto y arrancado el Skype, el sonido no me funciona. Después de darme una vuelta por google mirando por aquí y por allá, he decidido probar con Pulseaudio, para lo que he tenido que instalar:
yum install pulseaudio-libs.i686

Una vez instaladas todas las dependencias, arranco de nuevo Skype y ya funciona la salida de sonido. La entrada no, pero es porque en este equipo hay que ir a Sistema / Preferencias /Sonido, pulsar en la pestaña Entrada y en la opción Conector seleccionar «Micrófono 2».

Si al lanzar el programa sale el error: error while loading shared libraries: libtiff.so.4 esto es debido a un problema de versiones, hay que hacer el enlace:
ln -s /usr/lib/libtiff.so.3.9.4 /usr/lib/libtiff.so.4

Instalar Firefox 10 en CentOS 6.2

La versión de Firefox que trae CentOS 6.2 es la 3.6, a la cual le falta una característica muy interesante para mí, que es el complemento Sync. Para actualizar a la versión más moderna de Firefox (en estos momentos la 10) tenemos que hacer lo siquiente (como root):

Habilitar los repositorios EPEL y Famillecollet:
# rpm -Uvh http://download.fedora.redhat.com/pub/epel/6/i386/epel-release-6-5.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

Actualizar Firefox a partir de este último repositorio:
# yum --enablerepo=remi update firefox

Y ya está.

Edito (29/8/2012): parece que han cambiado la dirección de EPEL, ahora está en ftp.cica.es, por lo que el primer comando quedaría:
# rpm -Uvh http://ftp.cica.es/epel//6/i386/epel-release-6-7.noarch.rpm
En caso de que la arquitectura fuera de 64 bits sólo habría que cambiar el «i386» por «x86_64».

Edito de nuevo (9/1/2013): pues han vuelto a cambiar el enlace, ahora el comando sería para 32 bits:
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
y para 64 bits:
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Fedora 15 en Acer Aspire One modelo ZG5

Después de probar varias distros para instalar en el Acer Aspire One mod. ZG5 finalmente le he dejado con Fedora 15. La única pega es que como el disco SSD es muy lento, todos los accesos a disco hacen que el sistema se ralentice. Para mejorar este comportamiento se pueden hacer varias cosas (no todas son estrictamente necesarias):

  1. Ampliarle la RAM (puede llegar a alojar hasta 1,5 Gb). Esto es recomendable en cualquier caso, pero es importante hacerlo si se hace también el punto 2.
  2. Montar ciertas carpetas mediante tmpfs para ahorrarnos acceso a disco. Esto se consigue editando como root el fichero /etc/fstab e incluyendo las siguientes líneas:
    tmpfs    /var/log      tmpfs   defaults    0    0
    tmpfs    /var/tmp      tmpfs   defaults    0    0
    tmpfs    /tmp          tmpfs   defaults    0    0
  3. Si la seguridad no es muy importante, al desactivar Selinux ganaremos un poco de velocidad. Esto se hace editando el fichero /etc/selinux/config para que quede:
    Selinux=disabled
  4. Podemos modificar el «ascensor» del lectura del disco, para configurarlo en la forma más adecuada para los discos SSD modificando el fichero /boot/grub/grub.conf añadiendo «elevator=noop» al final de la línea que comienza con «kernel /vmlinuz …».
  5. Desactivar servicios que no se vayan a utilizar como por ejemplo en mi caso «sendmail» o «cups». Para hacerlo hay varias maneras, el estilo «Red Hat» es teclear en la consola chkconfig cups off. Yo sólo he desactivado un par de ellos, pero hay quien desactiva muchos más con un único comando:

for s in atd auditd avahi-daemon bluetooth cups cpuspeed gpm ip6tables kerneloops mdmonitor netfs nfslock portreserve rpcbind rpcgssd rpcidmapd sendmail setroubleshoot livesys livesys-late microcode_ctl; do echo "chkconfig $s off"; chkconfig $s off; done

Después de todos estos ajustes el equipo va claramente más rápido.

Tener el Firefox más moderno en el Ubuntu más antiguo

Tener una versión LTS de Ubuntu te permite vivir en la plácida tranquilidad de un sistema que apenas cambia, estable y sin sobresaltos, pero te impide tener una versión moderna del navegador Firefox, algo que al menos yo considero que es necesario.
Para obviar esta pequeña pega existen los que se denominan «repositorios PPA». Con ellos podemos tener un determinado programa o conjunto de programas a la última, independientemente de la versión en la que se encuentre en nuestra distribución.
Para activarlos en Ubuntu 10.04 basta con hacer
sudo add-apt-repository ppa:mozillateam/firefox-stable
sudo apt-get update
sudo apt-get upgrade

Más información de qué son y cómo funcionan estos repositorios en este enlace.
Más información en concreto sobre los repositorios PPA del Mozilla Team para Firefox en este otro.

Configurar LAMP en CentOS 6.1

Apache

El servidor de páginas web Apache viene instalado por defecto con Centos, así que lo único que hace falta es arrancarlo (como root) con:

service httpd start

PHP

Para tener PHP, hay que instalar los paquetes php, php-mysql y php-gd. Si queremos también el paquete php-mcrypt podemos descargarlo del repositorio de EPEL (el enlace es para i386).
También se puede, en vez de descargar cada paquete de EPEL, incluir este repositorio para tenerlo disponible. Esto se hace con el comando:

su -c 'rpm -Uvh http://download.fedora.redhat.com/pub/epel/6/i386/epel-release-6-5.noarch.rpm'

Reiniciamos el servidor web para que se reflejen los cambios.

MySQL

Instalamos el paquete MySQL-server y si queremos hacer seguras las cuentas iniciales, en la guía de referencia lo explican perfectamente.

Instalar phpMyAdmin

Descargar o instalar el paquete php-php-gettext de EPEL:

Descargar o instalar el paquete phpMyAdmin de EPEL:

Como el paquete no instala directamente la aplicación en el servidor web, hay que hacer un enlace simbólico (ojo con las mayúsculas):

ln -s /usr/share/phpMyAdmin/ /var/www/html/phpMyAdmin

Hay que editar el fichero /usr/share/phpMyAdmin/config.inc.php y localizar $cfg[‘blowfish_secret’] = ”; Ponemos entre comillas una frase cualquiera, con el fin de que exista una semilla para la encriptación de contraseñas cuando se utiliza la autentificación por cookies. Debe de quedar así:

$cfg['blowfish_secret'] = ‘poner una frase cualquiera’;

Verificar que tu servidor de base de datos es correcto:

 $cfg['Servers'][$i]['host'] = ‘localhost’;

Verificar que la autenticación es por cookie:

$cfg['Servers'][$i]['auth_type'] = ‘cookie’;

Incluir el usuario y contraseña de acceso:

$cfg['Servers'][$i]['user'] = ‘root’;
$cfg['Servers'][$i]['password'] = ‘miPassword’;

Y guardar el archivo config.inc.php.

Accedemos a http://localhost/phpMyAdmin y verificamos que todo va bien entrando como root y con la contraseña que establecimos para MySQL.

CentOS 6 en un EeePC

La distribución CentOS en su versión 6.1 funciona perfectamente en el netbook EeePC (mod. 1001HA), el único problema que da es que el wireless no es reconocido de primeras, por lo que para poder hacer la instalación completa es necesario tener una conexión por cable a internet.

Hay que seguir los siguientes pasos:

  1. Crear un USB de arranque.
    • Descargar la imagen iso del Live CD de la página de descarga de CentOS, eligiendo el protocolo (http, ftp) que más nos guste del país más cercano al nuestro.
    • Crear un USB de arranque con dicha imagen iso, siguiendo las instrucciones para el Fedora Live USB Creator (hay versiones de este programa tanto para windows como para Linux).
  2. Instalar la distro en el disco duro.
    • Con el USB insertado en la ranura correspondiente del netbook, encenderlo, y nada más comience el arranque, pulsar Esc para seleccionar el medio desde el que arrancar. Aparecerá una lista y si no está nuestro USB en ella es que algo ha ido mal. Si aparece, lo seleccionamos y el sistema arrancará en modo Live (sin tocar por ahora el disco duro).
    • Vemos que prácticamente todo el hardware es detectado y funciona a la primera, salvo el wifi, para el que tendremos que hacer unas pocas cosas más una vez instalada la distro.
    • Al arrancar el sistema nos aparece una pantalla de login en la que deberemos seleccionar en la parte de abajo nuestro idioma y la distribución de teclado que tenemos. Una vez hecho, el sistema arranca con el usuario por defecto.
    • Pasado un rato nos aparece un escritorio Gnome de los que a mi me gustan (versión 2.28) en el que haremos doble-click en el icono «Instalar en el disco duro». El programa de instalación es muy sencillo y fácil de seguir. Lo único que he visto que falla es que si cuando nos aparece el nombre del host intentamos cambiar el que aparece por defecto (livecd.centos), en el siguiente paso al seleccionar la zona horaria el programa falla y hay que volver a comenzar de nuevo. Así que mejor no cambiarlo, pues de todas formas el nombre de host que finalmente deja en el sistema tras la instalación es el habitual de «localhost.localdomain».
    • Una vez terminada la instalación, rearrancamos el sistema, contestamos las pocas preguntas que quedan por resolver y a mi me ha dado un error de falta de memoria para el «kdump», pero al reiniciar de nuevo todo va bien y el sistema funciona.
  3. Actualizar el sistema. Por muy actual que sea nuestra imagen iso, casi seguro que habrá que actualizar un montón de paquetes antes de nada. Se puede hacer de modo gráfico o por consola, pero con esperar un rato, mientras exploramos los menús de Gnome, al poco os aparecerá un aviso de que hay que actualizar el sistema.
  4. Para hacer que funcione el wifi, tenemos que incorporar el repositorio «elrepo» en su rama «testing. Para ello tenemos que:
    • Hacernos root con : su –
    • Instalar el repositorio: rpm -Uvh http://elrepo.org/elrepo-release-6-4.el6.elrepo.noarch.rpm
    • Habilitarlo: yum –enablerepo=elrepo-testing
    • Si nos hemos cansado de la consola, podemos ir a Sistema – Administración – Añadir/ Quitar Software y allí poner «rt3090» en la ventanita de arriba a la izquierda y pulsar «Buscar». Nos deberían de aparecer dos paquetes: rt3090sta y el firmware de Ralink. Seleccionamos los dos y pulsamos en «Aplicar».
    • Para que nos funcione y podamos gestionar la red por el Network Manager, quitamos el cable de red, reiniciamos sesión o rearrancamos y ya nos aparecerán las redes disponibles.

Instalar el cliente de no-ip en Ubuntu

Descargar el cliente de la página www.no-ip.com. Si estamos en modo consola podemos descargar el archivo con el comando:

wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz

Descomprimirlo el archivo descargado con el comando:

tar -xzf no-ip-duc-linux.tar.gz

Cambiar al directorio que se crea en la descompresión y compilarlo con
    

sudo make && sudo make install

Antes de terminar la instalación, el programa nos pide nuestros datos para poder conectarse a No-IP. Si todo ha ido bien podemos arrancar el programa manualmente con
    

sudo /usr/local/bin/noip2

Si se desea que se ejecute automáticamente al arrancar el equipo, hay que hacer un script:
    

sudo vim /etc/init.d/noip2

Que tenga el siguiente contenido:
    

#! /bin/bash
  sudo /usr/local/bin/noip2

A continuación lo hacemos ejecutable con:
   

sudo chmod +x /etc/init.d/noip2

Y le decimos al sistema que lo incluya en el arranque con:
   

sudo update-rc.d noip2 defaults

Podemos pedirle información de la ejecución con:
   

sudo /usr/local/bin/noip2 -S

Tomado de ubuntu-for-humans.blogspot.com

Cambiar la imagen de fondo en Grub 2

Hay varias formas, de hacerlo, pero la que veo más sencilla es la siguiente: editar como root el archivo(si no existe, habrá que crearlo)

/usr/share/desktop-base/grub_background.sh

Y modificar (o crear)la linea:

WALLPAPER=/usr/share/images/desktop-base/debian-blueish-wallpaper-640x480.png

Poniendo en ella la imagen que queramos (yo soy un poco carca y me gusta el antiguo azul de Debian). Hay que tener en cuenta que según la imagen que pongamos habrá que modificar también el color de la fuente para verlo bien poniendo:

COLOR_NORMAL=black/black
COLOR_HIGHLIGHT=white/black

El segundo color es el color de fondo, que si no se pone «black» nos tapa la imagen.

P.D.: Esto funciona en Debian 6 y en Ubuntu 10.04. En otras distribuciones o versiones es posible que no sirva, porque la implementación de Grub2 es diferente en cada caso.