miércoles, 15 de julio de 2015

Gestionar la impresora a través de CUPS

CUPS (Common UNIX Printer System) es un paquete que permite la gestión de impresoras en los sistemas Linux. Una vez instalado con apt-get install cups la forma habitual de entrar es a través del navegador, tecleando en la barra de navegación localhost:631.

Una vez allí el manejo es simple a través de un sistema de pantallas muy básico pero intuitivo y ningún usuario medio-bajo debería tener problemas para comprenderlo. Solo hay que destacar un detalle, y es que hay que tener permiso para transitar por ahí. ¿Cómo conseguimos ese permiso?

Abrimos el terminar y añadimos a nuestro usuario al grupo lpadmin de esta forma:


paco@paco-pc:~/$ sudo adduser paco lpadmin

Siendo paco el usuario al que quiero permitir el acceso a CUPS, claro.

Por si acaso hacemos lo mismo con el grupo lp, aunque tecleando groups paco sabremos si ya está incluido o no en ese grupo.

De esta forma CUPS ya no nos dirá "prohibido" la siguiente vez que queramos modificar los valores por defecto de nuestra impresora.

domingo, 17 de mayo de 2015

Instalar escritorio Cinnamon en Debian Jessie

Según escribía en mi anterior post pueden existir problemas con el entorno de escritorio Gnome en algunas máquinas al instalarles Debian 8 Jessie. Mi solución fue recurrir a otro entorno gráfico como es el liviano Xfce pero su aspecto austero puede no ser del agrado de muchos. Una alternativa puede ser el elegante a la par que funcional Cinnamon proveniente de Linux Mint, una de las distros más amigables y accesibles para el usuario habituado a Windows.

Sin más dilación entremos en faena. Editamos el archivo /etc/apt/sources.list con nano o el editor de texto que más rabia nos de y añadimos el repositorio donde el sistema encontrará los archivos necesarios.

paco@paco-pc:~/$ sudo nano /etc/apt/sources.list

Escribiremos las siguientes líneas al final del archivo:

# Linux Mint repositorio
deb http://packages.linuxmint.com/ debian main upstream import

Guardamos y salimos. Ahora pasamos a actualizar los repositorios.

paco@paco-pc:~/$ sudo apt-get update

Durante el proceso veremos en pantalla que se produce un error relativo a la firma del repositorio. Hace falta instalar el keyring de Linux Mint, una especie de contraseña que lo valida, de la siguiente manera:

paco@paco-pc:~/$ sudo apt-get install linuxmint-keyring

Volvemos a actualizar los repositorios para después instalar Cinnamon.

paco@paco-pc:~/$ sudo apt-get update
paco@paco-pc:~/$ sudo apt-get install cinnamon

Si queremos podemos instalar también el gestor de pantalla mdm.

paco@paco-pc:~/$ sudo apt-get install mdm mint-mdm-themes

A lo que nos pregunte se le responde la opción que aparezca por defecto. Cuando termine reiniciamos y empezamos sesión eligiendo Cinnamon como escritorio por defecto. La diferencia es palpable.


A partir de aquí, cada uno puede cambiar lo que le apetezca.

Este post no habría sido posible sin fusilar con total descaro este otro.

martes, 12 de mayo de 2015

Actualizar Debian Wheezy a Debian 8 Jessie: primeras sorpresas

Tras unas horas de angustia por fin tengo instalada y, en apariencia, funcionando correctamente la nueva versión estable de Debian, la 8, que cuenta con el sobrenombre de Jessie. Ha sido una puesta al día desde Debian 7 Wheezy, la cual tenía plenamente actualizada. En primer lugar vamos a enumerar los pasos a seguir para sustituir Wheezy 7 por Jessie 8 a través del terminal de comandos.

Primeramente hay que editar el fichero /etc/apt/sources.list con su editor de textos favoritos ( a mí me gusta nano):

paco@paco-pc:~/$ sudo nano /etc/apt/sources.list

Una vez abierto tenemos que sustituir el término wheezy por jessie, o bien por stable. Con ésta última opción siempre tendremos actualizado Debian con respecto a la última versión estable.

Archivamos y salimos.

Seguidamente actualizamos repositorios.

paco@paco-pc:~/$ sudo aptitude update

Cuando acabe, actualizamos el sistema. Primero:

paco@paco-pc:~/$ sudo aptitude safe-upgrade

Después actualizamos la versión:

paco@paco-pc:~/$ sudo aptitude full-upgrade

Tienen una descripción más detallada aquí.

Después de un rato bien largo que en mi caso superó las tres horas ya tenemos instalado Debian 8 Jessie.

Pero ahora comienzan las sorpresas.

Al reiniciar resulta que no tengo entorno gráfico. Es decir, se aprecia la barra del panel, pero apenas, se ve muy difuminada y no responde a los clicks del ratón. El fondo de escritorio es de un horrendo gris oscuro y por ninguna parte aparece el letrero para logarme o elegir entorno gráfico. Entonces sufro un deja vu y comprendo que esto ya lo he vivido antes, así que me voy a esta entrada pensando que me está ocurriendo ahora en Jessie lo que ya sufrí con Wheezy.

Pero no. La cosa sigue igual.

Aún así el deja vu persiste. Busco en Google y hallo la respuesta: es un problema con Gnome, el entorno de escritorio que Jessie trae por defecto, algo que ya padecí en mi netbook, el cual solo funciona con el escritorio Xfce. La solución es establecer un entorno de escritorio distinto y otro gestor de arranque del X-Window System. Solo dos pasos:

paco@paco-pc:~/$ sudo aptitude install task-xfce-desktop

paco@paco-pc:~/$ sudo aptitude install lightdm

Reiniciamos y ya tenemos algo reconocible delante, con una pantalla de logado y la posibilidad de entrar con el escritorio Xfce en la esquina superior derecha. Eso sí, ninguna de las opciones de Gnome funciona. No me importa porque ya conozco Xfce de cuando trabajo con mi netbook, además de que mi PC es añejo y este es un escritorio que ahorra recursos por su simplicidad, cosa que me viene bien. Si a ustedes también les da igual ya estarían listos para navegar por su flamente Debian 8 Jessie.

martes, 17 de marzo de 2015

Instalar un paquete .rpm en Debian

Vuelvo a publicar en este blog pero de manera muy breve. Solo para explicar que a veces el uso del comando alien (del que hablamos aquí) no funciona como es debido.

Todo deriva de mi deseo de instalar una alternativa open source a Microsoft Project llamada ProjectLibre, una aplicación para gestión de proyectos. En fin, me lo descargué de aquí en formato rpm. Con alien lo convertí a formato deb para Debian de la forma en que describo en el primer enlace, pero al ejecutarlo con el instalador de paquetes bajo entorno gráfico Gdebi no ocurría nada. La solución es utilizar el clásico gestor de paquetes para terminal dpkg con la opción -i para que, además de desempaquetarlo, lo instale. Tal que así:

sudo dpkg -i archivo.rpm

Y ya lo tienen. Una nueva demostración de que el terminal es una mayor fuente de recursos y soluciones que el entorno gráfico.

viernes, 30 de enero de 2015

Ver información sobre los usuarios

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

Continuamos con la gestión de usuarios con un comando que es una implementación especial del comando useradd.

adduser
Sirve para añadir usuarios nuevos al sistema de forma interactiva, es decir, se nos van preguntando en tiempo real los datos que queremos asignar al nuevo usuario. Veamos una captura de pantalla de este comando.



Como se puede ver hemos añadido el usuario Pakito al sistema; automáticamente le asigna un GID de grupo (aquí conté que son el UID y el GID), nos informa de la creación de su directorio home según los criterios fijados en /etc/skel, nos pide una contraseña para este usuario y, a continuación, nos da la oportunidad de añadir una serie de datos descriptivos que pueden sernos de mayor o menor utilidad, pero ahí están. Emplear adduser o useradd para añadir usuarios al sistema será cuestión del criterio de cada uno.

  • adduser --ingroup users pakito: añadiría al usuario pakito estableciendo users como su grupo principal.
  • adduser pakito cdrom: añade al usuario pakito al grupo cdrom.
users
Muestra un listado de los usuarios logados en el sistema en ese momento.

id
Sirve para mostrar el UID y el GID de usuarios y grupos.
  • id / id -a: en ambas formas, muestra el UID y los GID (si pertenece a más de un grupo) del usuario actual.
  • id pakito: da información sobre el UID y el GID de pakito y las GID de sus grupos.
  • id -g: muestra solo los GID de los grupos efectivos (activos en ese momento).
  • id -G: muestra solo los GID de los grupos reales y efectivos (activos en ese momento y el resto de los existentes).
  • id -nG pakito: lista a qué grupos pertenece el usuario pakito.
  • id -u: muestra solo los UID de los usuarios efectivos (activos en ese momento).
finger
Comando para mostrar todos los datos registrados de un usuario.


Como se ve en la captura, al usar finger con el modificador -s podremos ver datos como el nombre del usuario (paco), el nombre de acceso al sistema (convenientemente "censurado" por un servidor), la terminal desde la que opera (Tty), el tiempo que ha estado sin operar (Idle), la hora de inicio de sesión, la localización de la oficina (office) y su teléfomo (Office Phone). Estos últimos son datos que podríamos haber incluido al crear el usuario con adduser.

Hay otra forma de ver información de un usuario, y es usando finger y su nombre, sin más.


Como vemos, los datos que asignamos al usuario pakito aparecen aquí reflejados, además de la Shell utilizada y si tiene o no correos pendientes.

Y no tiene mucho que ver, pero hace pocos días nos dejó Edgar Froese, que como miembro de Tangerine Dream podemos considerar como uno de los padres de la música electrónica espacial, género que en su momento me tuvo bastante enganchado. En reconocimiento, valga este pequeño homenaje, la obra que encumbró a su banda, "Phaedra".


viernes, 16 de enero de 2015

Matar procesos de forma rápida y eficaz

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

El momento de máxima frustración de cualquier usuario es cuando la aplicación que usas se bloquea y no puedes ir ni hacia delante ni hacia atrás. En GNU/Linux existen varias formas de salir del atolladero, y aunque todas suponen cerrar el proceso en curso, sirven para que el sistema restablezca su normal funcionamiento y podamos seguir trabajando. Por supuesto, todo ello a través de la consola de comandos usando el comando kill.

Lo que hace este comando es enviar señales a los procesos abiertos que, por defecto, indican el final del proceso. Son de uso exclusivo del supersusuario por lo que, si no estamos logados como tal, habrá que antecederlo del sudo.

El modo más eficaz de matar un proceso es utilizar su PID (número de identificación), el cual podemos conseguir de varias formas. Pongamos que quiero matar el proceso correspondiente al programa de diseño 3D Blender; bien, pues usando el comando top veremos monitorizados en pantalla todos los procesos abiertos en tiempo real. Solo tenemos que localizarlo.



Vemos que su PID es 7170, de modo que a continuación usamos kill con el modificador -9:

paco@paco-pc:~/$ sudo kill -9 7170

Otra forma de localizar un PID es empleando el comando ps, que sirve para listar procesos activos:

paco@paco-pc:~/$ sudo ps -ef | grep Blender

Así, en combinación con una tubería y el comando de filtrado grep hallaríamos el PID de Blender.

También podemos matar el proceso tecleando su nombre, en este caso usando el comando killall:

paco@paco-pc:~/$ sudo killall Blender

A veces el nombre del proceso no es exactamente igual al de su aplicación relacionada. Por ejemplo, el reproductor multimedia Kaffeine es ejecutado por el proceso llamado kaffeine-xbu, pero esto no tenemos por qué saberlo. Para estos casos disponemos del comando pkill, con el que podremos matar el proceso tecleando solo parte de su nombre. Ojo, si hay procesos abiertos que compartan esa cadena de texto también se cerrarán.

paco@paco-pc:~/$ sudo pkill kaffeine

De esta forma mataríamos el proceso kaffeine-xbu.

Por último, la manera más gráfica de aniquilar un proceso es con xkill. Con este comando mataremos la aplicación que nos molesta haciendo clic sobre ella con el ratón, cuyo cursor se habrá convertido en una calavera.

paco@paco-pc:~/$ sudo xkill

En fin, con este rosario de comandos no había que estrujarse mucho la sesera para elegir el vídeo del post. Un clásico de los 90 com es este "Killing in the name" de los siempre combativos Rage Against The Machine.


viernes, 3 de octubre de 2014

Creación de usuarios

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

Vamos a empezar con una serie de entradas dedicadas a la creación, gestión y supresión de usuarios, algo crucial cuando de un sistema GNU/Linux se trata. Para ello empezaremos diseccionando el principal comando de creación de usuarios como es useradd.

useradd
Para crear un nuevo usuario llamado pepe teclearemos sudo useradd pepe.

  • useradd -c "técnico administrativo" pepe: crea el usuario pepe añadiéndole la descripción que tenemos entrecomillada, y que se denomina campo GECOS. Se usa para proporcionar información extra sobre el usuario relativa a su puesto, ocupación, nombre completo, etc.
  • useradd -d /house/pepe: indica un directorio home alternativo (en este caso sería house) para el usuario pepe. Este directorio ha de existir previamente y después habría que hacer a pepe propietario del mismo a través del comando chown.
  • useradd -e 2015-12-31 pepe: crea el usuario pepe, que será desactivado en la fecha indicada.
  • useradd -f 16 pepe: indica el número de días en que la cuenta se bloqueará por falta de uso.
  • useradd -g grupo1 pepe: crea un grupo primario, aquí denominado grupo1, (grupo principal que un usuario debe obligatoriamente tener asignado) para el usuario pepe, el cual debe existir previamente.
  • useradd -G empleados contables pelotas pepe: especifica los grupos (aquí denominados empleados, contables y pelotas) a los que pertenecerá el recién creado usuario pepe. Dichos grupos deben existir previamente.
  • useradd -m pepe: crea el directorio por defecto home para el usuario pepe.
  • useradd -M pepe: no crea el directorio por defecto home durante la creación del usuario pepe.
  • useradd -n pepe: añade un grupo con el mismo nombre del usuario creado.
  • useradd -N pepe: no crea un grupo con el mismo nombre del usuario.
  • useradd -r pepe: convierte al nuevo usuario pepe en usuario de sistema (que solo gestionan determinados servicios como red, impresoras...).
  • useradd -s /bin/Bash: crea el usuario pepe con la shell Bash por defecto.
  • useradd -u UID pepe: crea el usuario pepe con el UID que le indiquemos.
  • useradd -D: tecleando esto obtenemos los valores por defecto de useradd en la creación de usuarios: los de las variables SHELL (ruta  de la consola por defecto), HOME (ruta del directorio home por defecto), SKEL (directorio a utilizar para proporcionar los contenidos por defecto de los nuevo directorio home de los usuarios), GROUP (la ID por defecto del grupo), INACTIVE (el número máximo de días tras los que se puede cambiar la contraseña una vez haya expirado), y EXPIRE (fecha de expiración por defecto de las cuentas de los usuarios).
  • useradd -D -d /home/paco/practicas: establece la ruta /home/paco/practicas como la ruta por defecto del directorio home para todos los usuarios nuevos a partir de ese momento.
  • useradd -D -e 2015-12-31: establece la fecha indicada como la fecha de expiración de todas las cuentas creadas a partir de ese momento.
  • useradd -D -f 16: especifica que faltan 16 días para la desactivación de la cuenta una vez expirada la contraseña. se aplica a todos los usuarios nuevos a partir de ese momento.
  • useradd -D -g grupo1: especifica el grupo por defecto de los usuarios nuevos a partir de ese momento.
  • useradd -D -s /bin/Bashespecifica que la shell por defecto de los usuarios nuevos será Bash a partir de ese momento.
  • useradd -p `echo 1234 | openssl passwd -crypt -stdin `pepe: crea el usuario pepe con la contraseña de acceso 1234. El comando encripta la contraseña y la redirige al parámetro -p de useradd. No obstante, lo adecuado es crear la contraseña después de creado el usuario, usando el comando passwd.
Para terminar, observemos un ejemplo práctico de creación de usuario con la consiguiente explicación de cada parámetro:

useradd -mNr -s /bin/bash -g casa -c "José Luis Pérez" pepelu

Explicación:

useradd (añade usuario) -m (crea el directorio home por defecto del nuevo usuario) -N (no crea el directorio con el mismo nombre que el nuevo usuario) -r (califica al nuevo usuario como de sistema) -s bin/bash (establece la shell bash como consola por defecto del nuevo usuario) -g casa (establece que el nuevo usuario pasa a formar parte del grupo casa, ya existente) -c "José Luis Pérez" (añade ese comentario descriptivo al campo GECOS) pepelu (nombre del nuevo usuario).

Creo que para ser un solo comando no está nada mal. Hay más opciones y solo tienen que utilizar las herramientas de consulta para dar con ellas. Y, bueno, no tiene mucho que ver, pero estos días he recordado esta canción de Indigo Girls llamada "Galileo", así que concluiremos el post con ella.


miércoles, 24 de septiembre de 2014

Gestión de usuarios: preliminares

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

En este post vamos a hablar de algunos términos que ya se han citado en otras entradas, de modo que lo utilizaremos como una suerte de recordatorio que nos ayudará a concatenar con lo que vendrá después: la creación y gestión de usuarios y grupos. Recordemos que GNU/Linux es un sistema operativo multiusuario, esto es, pensado para que muchas personas trabajen juntas compartiendo datos. Precisamente comenzamos hablando de qué tipos de usuarios existen en un sistema Linux.
  • Usuarios normales: disponen de privilegios parciales sobre los recursos que tengan asignados.
  • Usuarios de sistema: son los encargados de los llamados daemon del sistema, que son procesos ejecutados en segundo y no controlados directamente por el usuario. Son propietarios de algunos de estos procesos y directorios.
  • Superusuario o usuario ROOT: es el que tiene el control total sobre el sistema. Su UID y GID siempre tienen valor cero.
  • UID: número identificador de usuario, el cual puede estar en la franja que va desde el 0 hasta el 65535.
  • GID: número identificador de grupo, el cual puede estar en la franja que va desde el 0 hasta el 65535.
A continuación, algunos comandos que conviene comocer y/o dominar.

su
Este es un comando para logarnos en el sistema como root.

  • su usuario2: de esta forma nos estaríamos logando como el usuario2, siempre que conozcamos su contraseña. De esta forma accederíamos a su directorio HOME.
exit
Nos sirve para salir del modo root.

sudo
Comando ya conocido que nos permite ejecutar órdenes por teclado como si fuésemos root.
  • sudo passwd root: para cambiar, mediante el comando passwd, la contraseña de root.
  • sudo nautilus: para acceder al navegador de archivos Nautilus como usuario root ( y así poder manipular archivos y directorios como se nos antoje sin las restricciones del usuario corriente).
visudo
Comando que nos permite editar automáticamente el fichero /etc/sudoers, donde podemos indicar qué usuarios podrán ejecutar órdenes como si fuesen root a través del comando sudo.

w [usuario]
Sirve para listar los usuarios de un sistema y los datos de su sesión.

write [usuario]
Sirve para comunicarse con otro usuario (una especie de mensajería instantánea).

wall [mensaje]
Para enviar mensajes a todos los terminales del sistema.

mesg [y|n]
Activa o desactiva la facultad de recibir mensajes.

Valga este pequeño post como antesala de lo que nos espera, si el tiempo libre y las fuerzas lo permiten, en relación a la gestión de usuarios y grupos. Y para grupo en el que tenía grandes expectativas, que se han visto deshechas con su temprana disolución, los texanos Fair To Midland. Parecían llamados a ser una de las grandes bandas de rock de comienzos de siglo, pero tendremos que fijar la vista en otra distinta. "Musical chairs" nos recuerdan lo grandes que pudieron ser.