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.