Herramientas de usuario

Herramientas del sitio


linuxbasico

Tabla de Contenidos

Curso Linux Básico

Introducción

El propósito de este curso es brindar los conocimientos mínimos de Linux, tanto técnicos como informativos, que permitan al alumno administrar básicamente un sistema GNU/Linux. Incluye conocimientos sobre distribuciones basadas en Debian, en CentOS y algunas otras, así como ideas y conceptos de BSD Unix. Se incluirá también información sobre servidores, demonios y bases de datos, así como nociones de seguridad.

El objetivo de esta página wiki es suministrar un resumen de lo que se enseñará durante la cursada, en especial comandos y consejos prácticos.

1. Introducción a Linux

Objetivos

Adquirir conceptos básicos y terminología necesaria para el uso diario del sistema operativo.

1.1. [ ] Definición e historia

Se llama “Linux” específicamente al kernel de un sistema operativo. Este kernel fue creado por Linus Torvalds en 1991 y liberado como software Open Source (Código Abierto) bajo licencia GNU GPL (GNU Privacy Licence) de manera que cualquiera pueda mejorarlo, extenderlo y modificarlo para sus propias necesidades. La condición de esta licencia es que se publiquen nuevamente esas fuentes modificadas, junto con una copia de la propia licencia.

Por extensión, se llama "GNU/Linux" o "Linux" a secas al sistema operativo, que consta de un conjunto de herramientas, servicios y archivos de configuración, y que permite aprovechar la potencia y confiabilidad de ese kernel. De ahora en más, se utilizará cualquiera de ambos términos para referirse al sistema operativo en sí, a menos que se indique lo contrario.

GNU/Linux, como sistema operativo, no es de ninguna manera un Unix. Es simplemente un sistema operativo “como Unix” (Unix-like). Es decir, toma conceptos, ideas y técnicas de Unix, agregando muchas cosas nuevas, para obtener un producto mucho más versátil, extensible y práctico.

1.2. [ ] Conceptos básicos: multiusuario, multitarea, versatilidad, monoraíz

Linux ha sido escrito desde las bases para ser multiusuario, proveer poderosas capacidades multitarea, y una versatilidad ilimitada.

Multiusuario: significa que cada proceso puede ser ejecutado con un usuario diferente, proveyendo así limitaciones básicas a cada uno. Esta capacidad se usa extensivamente y se recomienda aprovecharla. Por ejemplo, cada servicio suele ser ejecutado con su propio usuario, limitando así en caso de un ataque a los permisos asignados a dicho usuario.

Multitarea: es la capacidad de ejecutar múltiples tareas sin que interfieran unas con otras. En el sistema en el cual está siendo escrito este tutorial en este momento, se ejecutan más de 160 procesos y unos 380 threads; esto incluye servicios como DNS, DHCP, proxy, y servidor HTTP, así como máquinas virtuales. La memoria usada es de unos 3,7GB incluyendo las dos máquinas virtuales.

Versatilidad: es la posibilidad de ser utilizado en distintos ambientes, para enorme cantidad de fines distintos, sobre distintas plataformas e infinitos servicios. Desde celulares y minicomputadoras de todo tipo, hasta supercomputadoras con miles de procesadores y almacenamiento de miles de TB; desde centro de datos para servicios críticos de empresas, hasta computadoras de escritorio y multimedia.

Monoraíz: como los Unix, Linux está basado en el concepto de “raíz única”, es decir que todos los directorios penden de una sola raíz base y no hay letras de unidades. Los dispositivos de almacenamiento son accedidos luego de seguir un procedimiento que se denomina “montar” y que deja disponibles al usuario los archivos contenidos en ellos en una carpeta del árbol de directorios.

1.3. [ ] Conceptos previos: particionamiento, particiones primarias, extendidas y lógicas, GPT

Las particiones primarias, extendidas y lógicas es el sistema de particionamiento basado en DOS sobre el que está diseñado todo el hardware x86 que se usa actualmente. Se llama MBR (Master Boot Record), es de 32 bits y está limitado a unidades de almacenamiento de 2TB. Por ello se ideó un nuevo sistema denominado GPT (GUID Partition Table) que es de 64 bits y utiliza identificadores globales únicos (GUID, Globally Unique IDentifiers) para guardar la información de las particiones.

GPT permite hasta 128 particiones, las que son todas del mismo nivel, es decir no existe diferencias entre ellas como en MBR.

1.4. [ ] Terminología básica

Bash: es uno de los intérpretes de comandos más utilizados. Permite ejecutar comandos y desarrollar scripts para automatizar tareas. Posee una gran funcionalidad

boot manager (manejador de arranque): es el programa que inicia el sistema operativo. Se instala en el MBR y si hay varios sistemas operativos instalados en la misma computadora, permite iniciar cada uno por separado

Manejador de ventanas: en inglés “Window Manager”. Es una capa de software sobre el sistema X Window, y que provee la funcionalidad de ventanas para mover, minimizar, maximizar, apilar, etc. las aplicaciones. Las aplicaciones y programas gráficos corren dentro de las ventanas provistas por el manejador de ventanas

MBR (Master Boot Record): es una pequeña porción al inicio de un disco rígido, que es ejecutada por la BIOS al encender una computadora

montar: acción de hacer visibles para el usuario los archivos de un sistema de archivos, conectando éste a una carpeta del árbol de directorios

particionar: acción de dividir una unidad de almacenamiento en particiones, que luego pueden ser usadas para separar las distintas porciones del sistema operativo

raíz: en inglés también “root”. Es el directorio principal, de más alto nivel, de un sistema de archivos Unix. De él penden el resto de las carpetas del sistema operativo

root: usuario administrador del sistema. También se llama “superuser”

shell: también denominado “consola” o “terminal”. Es una interfaz de texto para interactuar con el sistema operativo, que permite la ejecución de comandos

sistemas de archivos: en inglés “filesystems”. Son los diferentes sistemas de organización de archivos en unidades de almacenamiento, de los cuales Linux puede utilizar una gran variedad, cada uno con sus ventajas y desventajas: ext4, ext3, NTFS, FAT32, vfat, BtrFS, ReiserFS, XFS, GFS2, JFS, etc.

X Window System: llamado simplemente “las X” o “sistema X”, es el motor gráfico que provee las primitivas de acceso al hardware de vídeo, y que permite interactuar de manera gráfica con el sistema operativo. Sobre éste se ejecutan manejadores de ventanas y aplicaciones gráficas

1.5. [ ] Utilidad: ¿para qué sirve? ¿para qué se usa?

Es un sistema operativo extremadamente versátil, por lo que puede usarse prácticamente en cualquier ámbito y para resolver el tema que sea. Algunos ejemplos a continuación:

  • Estación de trabajo: como reemplazo de otros sistemas operativos, para realizar todo tipo de tareas, desde procesamiento de texto, cálculo y gráficos, hasta tratamiento de imágenes, CAD/CAM y muchas otras cosas
  • Servidor: brindando servicios como web server, proxy, DHCP, DNS, firewall, almacenamiento de archivos, aplicaciones, bases de datos, sistemas de archivos distribuídos, virtualización
  • Sistemas embebidos: al tener la posibilidad de modificar y adaptar el código todo lo necesario, se puede reducir su tamaño para poder utilizarlo en controladores y toda clase de sistemas embebidos
  • Celulares: el sistema operativo Android, presente hoy en día en la mayoría de los celulares, es una versión modificada y reducida del kernel Linux y utilitarios
  • Otros dispositivos: reproductores multimedia, teclados electrónicos, televisores inteligentes, sistemas de navegación, sistemas de automóviles
  • Militares: es la base de sistemas operativos presentes en electrónica militar de todo tipo
  • Científicos: se utiliza extensivamente en investigación, como supercomputadoras, renderización gráfica, cálculo de alto rendimiento, bases de datos masivas
  • Nube: las nubes públicas más conocidas funcionan ofreciendo sus servicios gracias al sistema operativo Linux que corre sobre miles de servidores en cluster
  • Empresas: la mayoría de las empresas más grandes de hoy utilizan Linux. Como ejemplos valen Amazon, Banco Itaú, Boeing, CERN, Dreamworks, Facebook, Google, IBM, Industrial Light & Magic, NASA, Peugeot, Pixar, Twitter, Virgin
  • Gobiernos: alrededor del mundo, muchos gobiernos nacionales, provinciales, regionales y municipales usan Linux, incluyendo el Gobierno argentino

1.6. [ ] Distribuciones: concepto y ejemplos

Se denomina “distribución”, o “distro” a un conjunto de herramientas de software, más kernel Linux, empaquetados de alguna manera por una institución o empresa. La mayoría de ese software suele ser Open Source. En muchos casos, las distribuciones son gratuitas. No así en otros.

Ejemplos son:

  • Arch
  • CentOS
  • Debian
  • Gentoo
  • RedHat
  • SuSE
  • Slackware
  • Ubuntu
  • Ututo

1.7. [ ] Sitios recomendados en castellano y en inglés

En castellano

En inglés

2. Instalación

Objetivos

Incorporar las técnicas y conocimientos necesarios para instalar exitosamente el sistema operativo, y dejarlo funcionando adecuadamente.

2.1. [ ] Obtención de información sobre el sistema

Es altamente recomendable conocer el hardware sobre el que se va a instalar el sistema operativo. Especialmente antes de la compra del mismo. La mayor parte del hardware existente hoy en día funciona correctamente con Linux, pero en ocasiones pueden ocurrir inconvenientes, incompatibilidades o directamente no funcionar.

Las fuentes de obtención de información del hardware son variadas, a saber: sitio del fabricante, BIOS, manuales, observación visual, software de información.

Una manera fácil y práctica de revisar el hardware es iniciar el sistema con una distribución de rescate como System Rescue CD y luego ejecutar las herramientas básicas que provee Linux:

  • Bus PCI: lspci
  • Hardware: lshw, dmidecode
  • CPU: cat /proc/cpuinfo
  • Particiones: cat /proc/partitions
  • Estado de discos: smartctl
  • Memoria disponible: free

2.2. [ ] Cuidados

En general no se debe tener cuidados especiales al instalar Linux. Sí es importante tomar recaudos en caso de que se lo esté instalando en un disco con otros sistemas operativos.

En este caso, es muy importante realizar una copia de resguardo si hay datos importantes en el sistema operativo ya instalado, dado que si ocurre cualquier inconveniente pueden perderse.

Respecto al hardware, si el sistema operativo se usa en forma normal, no hay razón por la que pueda dañarse.

Si se está realizando experimentación, Linux provee una gran cantidad de herramientas de acceso a recursos de bajo nivel. Si son mal utilizadas éstas sí pueden dañar el hardware en forma irreversible.

2.3. [ ] Instalación de Debian: texto, gráfica, particionamiento

Debian puede ser instalado de varias maneras diferentes, cada una con sus ventajas y desventajas.

Primero, se debe elegir un medio de instalación, que puede ser un CDROM, un DVD o un pendrive. Si se utiliza un DVD o pendrive, los paquetes disponibles son más abundantes que en un CDROM. Además, puede instalarse desde un CD mínimo, o desde la red, utilizando un CD netinstall.

En cualquier caso, luego se pueden agregar más paquetes, de todos los disponibles para Debian, así como instalar software extra de todo tipo y de diversas fuentes.

La instalación recomendada es la de texto, simplemente porque es la forma más rápida y simple de hacerlo, y funciona siempre sin inconvenientes. La instalación gráfica es casi exactamente igual, con la misma funcionalidad, pero depende de que todos los componentes de hardware involucrados funcionen correctamente con los drivers existentes en el medio de instalación.

También se puede instalar el sistema operativo de manera básica en una partición mínima, de unos 4GB, y luego particionar el espacio libre, y configurar lo necesario.

El esquema de particionamiento recomendado es altamente variable dependiendo de las necesidades y del destino que se le de al sistema.

Debian recomienda un mínimo de 1GB en la partición raíz si no se utilizará la interfaz gráfica, y 5GB si se desea instalarla.

Para una estación de trabajo, con un disco moderno de 500GB o más, se puede instalar todo en una sola partición para la raíz, y un espacio de swapping. Por ejemplo:

  1. swapping: si el sistema dispone de mucha RAM, digamos de 8 a 16GB, se puede crear una partición para intercambio de unos 4 a 8GB, obteniendo de 12 a 24GB totales de memoria.
  2. raíz: la raíz será el resto del disco rígido. Una instalación que incluya el escritorio, así como utilitarios gráficos de todo tipo incluyendo la suite de oficina LibreOffice, ocupa menos de 5GB.

Para un servidor básico, puede recomendarse algo como:

  1. swapping: si el sistema dispone de mucha RAM, digamos de 16 a 64GB, se puede crear una partición para intercambio de unos 8 a 16GB, obteniendo de 24 a 80GB totales de memoria. Obviamente lo ideal es que el sistema no utilice en forma intensiva el swapping. Un servidor adecuadamente dimensionado y administrado puede no necesitar intercambio.
  2. raíz: para Debian se necesita aproximadamente un mínimo de 1GB
  3. /tmp: el directorio temporal es muy importante, y su tamaño y uso dependerá de para qué se use el sistema. Básicamente recomiendo unos 4GB.
  4. /usr: aquí se instalarán binarios, archivos de datos varios, algunos archivos de configuración, manuales y algunas otras cosas como imágenes e íconos; datos estáticos en general. Generalmente es suficiente con 4 a 10GB.
  5. /var: lo contenido aquí tiene típicamente tamaño extremadamente variable. Cosas que se almacenan aquí generalmente son bases de datos, logs del sistema, spoolers de correo-e e impresión, cachés. Suponiendo un disco de 1TB, suelo usar unos 400GB.
  6. /srv: es la partición donde se almacenarán los archivos de la empresa, usuarios, y toda clase de datos útiles directamente a las personas de la institución. Por lo tanto, siguiendo con el supuesto de una unidad de almacenamiento de 1TB, asigno el resto de la misma a esta función, dejando así más de 500GB disponibles.
  7. /home: habitualmente este directorio contiene archivos muy pequeños que se crean automáticamente al dar de alta a los usuarios. Si no se necesita que los usuarios almacenen archivos personales, con que penda de la raíz es suficiente.

2.4. [ ] Instalación de CentOS: gráfica, texto, particionamiento

CentOS puede ser instalado de varias maneras diferentes, cada una con sus ventajas y desventajas.

Primero, se debe elegir un medio de instalación, que puede ser un CDROM o un DVD. En el segundo caso, los paquetes disponibles son más abundantes que en el primero. Además, puede instalarse desde un CD mínimo, o desde la red, utilizando un CD netinstall.

En cualquier caso, luego se pueden agregar más paquetes, de todos los disponibles para CentOS, así como instalar software extra de todo tipo y de diversas fuentes.

La instalación recomendada es la gráfica, dado que la de texto tiene escasa funcionalidad. Por ejemplo, no permite realizar un particionamiento adecuado.

De todas maneras, si se desea realizar un particionamiento personalizado avanzado, se debe utilizar primero el comando fdisk o el comando parted, y luego de tener el esquema de particionamiento deseado, lanzar la instalación. De esta manera, el instalador permitirá montar cada partición en su punto de montaje, y así finalizar la instalación tal como se necesita.

También se puede instalar el sistema operativo de manera básica en una partición mínima, de unos 5GB, y luego particionar el espacio libre, y configurar lo necesario.

El esquema de particionamiento recomendado es altamente variable dependiendo de las necesidades y del destino que se le de al sistema.

CentOS recomienda un mínimo de 5GB en la partición raíz.

Para una estación de trabajo, con un disco moderno de 500GB o más, se puede instalar todo en una sola partición para la raíz, y un espacio de swapping. Por ejemplo:

  1. swapping: si el sistema dispone de mucha RAM, digamos de 8 a 16GB, se puede crear una partición para intercambio de unos 4 a 8GB, obteniendo de 12 a 24GB totales de memoria.
  2. raíz: la raíz será el resto del disco rígido. Una instalación que incluya el escritorio, así como utilitarios gráficos de todo tipo incluyendo la suite de oficina LibreOffice, ocupa menos de 5GB.

Para un servidor básico, puede recomendarse algo como:

  1. swapping: si el sistema dispone de mucha RAM, digamos de 16 a 64GB, se puede crear una partición para intercambio de unos 8 a 16GB, obteniendo de 24 a 80GB totales de memoria. Obviamente lo ideal es que el sistema no utilice en forma intensiva el swapping. Un servidor adecuadamente dimensionado y administrado puede no necesitar intercambio.
  2. raíz: para CentOS se necesita un mínimo de 5GB. De otra manera el instalador no permitirá continuar
  3. /tmp: el directorio temporal es muy importante, y su tamaño y uso dependerá de para qué se use el sistema. Básicamente recomiendo unos 4GB.
  4. /usr: aquí se instalarán binarios, archivos de datos varios, algunos archivos de configuración, manuales y algunas otras cosas como imágenes e íconos. Generalmente es suficiente con 4 a 10GB.
  5. /var: lo contenido aquí tiene típicamente tamaño extremadamente variables. Cosas que se almacenan aquí típicamente son bases de datos, logs del sistema, spoolers de correo-e e impresión, cachés. Suponiendo un disco de 1TB, suelo usar unos 400GB.
  6. /datos (o /srv): es la partición donde se almacenarán los archivos de la empresa, usuarios, y toda clase de datos útiles directamente a las personas de la institución. Por lo tanto, siguiendo con el supuesto de una unidad de almacenamiento de 1TB, asigno el resto de la misma a esta función, dejando así más de 500GB disponibles.
  7. /home: habitualmente este directorio contiene archivos muy pequeños que se crean automáticamente al dar de alta a los usuarios. Si no se necesita que los usuarios almacenen archivos personales, con que penda de la raíz es suficiente.

Bibliografía

3. Conociendo el funcionamiento de Linux

Objetivos

Adquirir conocimientos sobre el sistema de inicio, los permisos, los servicios y el manejo de dispositivos del sistema operativo, así como aprender a encontrar la información necesaria para consultar.

3.1. [ ] Estructura de directorios: concepto, árbol de directorios, contenido, proc, dev, sys

La estructura del árbol de directorios es muy parecida de una distribución a otra, aunque puede variar sensiblemente. La raíz del sistema operativo es representada simplemente por la barra común “/”.

La mayoría de las distribuciones adhieren hoy en día al Filesystem Hierarchy Standard (FHS), que define cómo debe estar compuesto el árbol de directorios, y qué cosa debe ir en cada uno. Así, en un Linux moderno, los directorios de primer nivel y su contenido típicamente son:

  • bin: comandos binarios esenciales
  • boot: archivos estáticos necesarios para el arranque, incluyendo el kernel
  • dev: archivos de dispositivos
  • etc: configuración del sistema operativo y sus sistemas y servicios
  • home: directorios de inicio de cada usuario
  • lib: librerías esenciales del sistemas y módulos del kernel
  • media: puntos de montaje para medios removibles
  • mnt: puntos de montaje estáticos
  • opt: paquetes de software agregados al sistema
  • proc: sistema de archivos virtual de información del kernel y procesos
  • root: directorio de inicio del usuario root
  • sbin: comandos esenciales del sistema
  • selinux: sistema de archivos virtual de SELinux
  • srv: datos para servicios provistos por el sistema
  • sys: sistema de archivos virtual de información del sistema
  • tmp: archivos temporales
  • usr: archivos estáticos binarios ejecutables y librerías, manuales, gráficos, ejemplos, de sólo lectura y compartidos para todos los usuarios
  • var: almacenamiento de datos variables

3.2. [ ] Proceso de arranque: systemd, targets, comandos: systemctl, service, chkconfig

Un aspecto muy importante de los Linux es el sistema de arranque, el cual es configurable, transparente y muy poderoso. El administrador puede personalizar y ajustar cada parte de este proceso con completa seguridad de que las cosas funcionarán como lo desea. De la misma manera, el proceso de apagado es configurable y adaptable a las necesidades de cada caso.

Hace unos años atrás, la mayoría de las distribuciones disponían de un sistema de inicio llamado SysVInit, que estaba basado en scripts Bash en su mayoría, para controlar cómo iniciaba el sistema operativo. Hoy eso fue reemplazado por systemd (por System Daemon), que agrega una capa de control de aplicaciones, procesos y usuarios, sobre el propio kernel, y que aprovecha extensivamente los cgroups (control groups) disponibles en el kernel desde hace ya bastante tiempo.

Debido a estos cambios, de los más importantes que han ocurrido en GNU/Linux en los últimos años, se hablará aquí de ambos sistemas de inicio, y se los comparará en cierta medida. El objetivo es que el alumno, si debe administrar sistemas viejos, tenga una idea de ambos, pueda compararlos y aprovecharlos.

El proceso de inicio de un Linux puede resumirse de la siguiente manera:

  1. La BIOS revisa el sistema y lanza la primera fase del manejador de inicio que reside en el MBR
  2. El manejador de inicio lanza la segunda fase desde el directorio /boot
  3. Esta fase es la encargada de cargar el kernel en memoria, lo que cargará los módulos necesarios y montará la partición raíz en modo de sólo lectura
  4. El kernel transfiere el proceso de inicio al programa /lib/systemd/systemd, y que tendrá el PID 1 (en sysvinit el PID 1 era /sbin/init)
  5. Éste montará las particiones listadas en /etc/fstab, y cargará todos los servicios y herramientas de nivel de usuario
  6. Luego de finalizar estos procesos, se presentará al usuario una pantalla de ingreso (login)

Antiguamente Linux proveía lo que se llamaba runlevels, o niveles de ejecución, del 0 al 6, para configurar qué servicios y programas iniciaban o se detenían según el momento de ejecución del sistema. Esto es algo ya obsoleto, y systemd provee lo que se denomina targets. Los target pueden ser activados en paralelo, a diferencia de los runlevels que podían ocurrir uno por vez.

Así entonces, tenemos varios targets que se corresponden en cierta medida a los antiguos runlevels:

Target Runlevel Descripción Comentarios
poweroff.target 0 Es el target que se inicia cuando se desea apagar el equipo Es equivalente a: shutdown -h now
rescue.target 1, s, single En este target se realizan tareas administrativas especiales, ya que ningún servicio estará corriendo
multi-user.target 2, 3, 4 Multiusuario, no gráfico. Los usuarios normalmente pueden acceder por múltiples consolas o a través de la red
graphical.target 5 Mulitusuario gráfico. Como el target anterior, pero con consola gráfica
reboot.target 6 Reinicio del sistema Es equivalente a: shutdown -r now
emergency.target emergency Consola para emergencias

En systemd, se utiliza el comando systemctl para apagar o reiniciar el sistema, para iniciar, detener o reiniciar servicios y demonios, o para ver su estado. En los ejemplos que verán, pueden obviar la extensión como .target o .service, pues son optativas.

Para apagar el equipo:

systemctl poweroff.target

Para reiniciar el equipo:

systemctl reboot.target

Para conocer cuál es el target por default del sistema, que puede variar según el uso que se le dé al equipo:

systemctl get-default

Cambiar el target a emergency para realizar tareas de mantenimiento:

systemctl isolate emergency.target

Luego de las tareas de mantenimiento, para volver al estado por default sin reiniciar el equipo:

systemctl default.target

Detener el demonio SSH:

systemctl stop ssh.service

Iniciar el demonio SSH:

systemctl start ssh.service

Reiniciar el demonio SSH:

systemctl restart ssh.service

Ver el estado de todos los servicios:

systemctl status

Ver el estado del servicio MySQL:

systemctl status mysql.service

Ver qué unidades han fallado al iniciar:

systemctl --failed

Habilitar un servicio, deshabilitarlo o revisar su estado:

systemctl enable postgresql.service
systemctl disable postgresql.service
systemctl status postgresql.service

Comandos usados en SysV

Para controlar los diferentes runlevels, en SysV se utilizan los comandos shutdown y telinit, a saber:

  • shutdown: para apagar o reiniciar el equipo
    • Reiniciar: shutdown -r now
    • Apagar: shutdown -h now
  • telinit: para cambiar de runlevel. P. ej. para cambiar a runlevel 1 para realizar tareas de mantenimiento: telinit 1

Los servicios del sistema pueden iniciarse, reiniciarse y detenerse con el comando service. La configuración respecto a qué servicio se iniciará o detendrá automáticamente en los diferentes runlevels, se realiza con el comando chkconfig.

Por ejemplo, para reiniciar el servidor SSH:

/sbin/service sshd restart

Para revisar en qué runlevels se iniciará este demonio:

chkconfig --list sshd

Configurar su inicio en los runlevels 2, 3, 4 y 5:

chkconfig --level 2345 sshd on

Para configurar que no inicie en dichos runlevels:

chkconfig --level 2345 sshd off

Nota: Estos comandos aún funcionan en las distribuciones modernas con systemd, pero siempre llaman a systemctl, y se debería dejar de usarlos

3.3. [ ] Permisos, usuarios y grupos

El sistema de permisos de Linux es sumamente simple, práctico, eficiente y seguro. Se basa en permisos de archivos, y usuarios y grupos propietarios de los mismos.

Para cada entrada de un sistema de archivos, sea archivo o directorio, hay un indicador de tipo, y tres grupos de permisos:

dr-xr-xr-x. 2 root root 4096 may 11 20:45 /bin
  • El primer carácter, d en este caso, indica que es un directorio
  • Los tres siguientes r-x, son los permisos para el propietario
  • Los tres del medio r-x, son los permisos para el grupo propietario
  • Los últimos tres r-x, son los permisos para “otros”, es decir, para aquellos usuarios que no son el propietario ni pertenecen al grupo propietario
  • El número 2 que sigue indica, si es un directorio la cantidad de subdirectorios que contiene, incluyendo . y ..; si es un archivo, indica la cantidad de hardlinks existentes para el mismo
  • La primer palabra root es el propietario, en este caso el usuario root
  • La segunda palabra root es el grupo propietario
  • El valor numérico, 4096 en este caso, es el número de bloques ocupados. Si fuese un archivo, indica el tamaño del mismo
  • Luego viene la fecha y hora de modificación

3.4. [ ] Montando y desmontando sistemas de archivos

Montar un sistema de archivos significa hacer visibles al operador los archivos contenidos en él. Esos archivos pueden estar en un dispositivo de almacenamiento local, extraíble o no, o ser exportados por un servidor remoto, entre otras posibilidades.

Para montarlo, se necesita un directorio vacío creado al efecto, que se denomina punto de montaje. Estos directorios habitualmente son creados dentro del directorio /mnt.

Por ejemplo, para montar un pendrive:

mkdir /mnt/pendrive

Insertar luego el pendrive en un puerto USB, y montarlo:

mount /dev/sdb1 /mnt/pendrive

Donde sdb1 es el nodo asignado al mismo por el kernel, cosa que se puede ver en el archivo /var/log/messages, o bien ejecutando un cat /proc/partitions

3.5. [ ] Servidores: definición, demonios, posibilidades, iniciando y deteniendo demonios

Además de al equipo físico, se llama servidor a un proceso que brinda servicios de diferente índole. También se lo denomina demonio. Los demonios son ejecutables que pueden tomar distintos nombres según la distribución, pero que generalmente es el mismo código de una a otra.

Ejemplos son los servicios Apache, Samba, NFS, Bind9, DHCP, y muchos otros. Así, el servicio HTTP provisto por Apache, es brindado por el demonio llamado httpd en Red Hat y derivados, mientras que en Debian y derivados se llama apache2; el servicio DNS ofrecido por Bind9, es brindado por el demonio named en las distribuciones derivadas de Red Hat, y bind9 en las derivadas de Debian.

El objetivo del servidor físico es centralizar la información, así como la configuración, de los servicios que son provistos a las estaciones cliente.

En la mayoría de los Linuxes modernos, los servicios se controlan con el comando systemctl provisto por systemd.

Para ver el estado del servicio SSH:

systemctl status ssh

Para detenerlo e iniciarlo:

systemctl stop ssh
systemctl start ssh

Si se desea deshabilitar o habilitar un servicio o demonio Apache al inicio del sistema, en Debian:

systemctl disable apache2
systemctl enable apache2

Es importante recordar que el servicio, el nombre del demonio, puede variar de una distribución a otra.

3.6. [ ] Servicios más comunes en un servidor: Samba, NFS, httpd, DHCP, proxy, firewall, SSH, mail, impresión, DNS, FTP, VPN, bases de datos, virtualización

Entre muchos otros servicios importantes hoy día, algunos comunes, prácticos y confiables son:

  • Samba: provee compartición de archivos e impresoras, principalmente para estaciones Windows. Puede simular un Primary Domain Controller completo en la versión 4, mientras que en la 3 provee la mayoría de las funciones, pero es más limitado
  • NFS: provee compartición de archivos para clientes Linux y Unix
  • httpd: provee como su nombre lo indica protocolo HTTP/HTTPS. Los más usados son Apache y Nginx
  • DHCP: ofrece configuración dinámica de hosts. En conjunto con un DNS, permite configurar una red por completo con asignación dinámica de IPs a nombres de host. Una opción muy usada es ISC DHCP Server.
  • proxy: permite almacenar localmente archivos descargados de Internet, de manera que al ser accedidos nuevamente pasen desde el servidor directamente a la estación cliente, sin tener que ser descargados nuevamente. Además, provee permisos de acceso a Internet, así como otros servicios. El más usado es Squid
  • firewall: controla el tráfico de red de entrada y salida, bloqueando accesos no permitidos y permitiendo la salida o entrada de conexiones según reglas preestablecidas, entre otras posiblidades. El firewall en Linux se llama Netfilter, y el conjunto de comandos para configurarlo, iptables.
  • SSH: brinda acceso encriptado a servidores, proveyendo al mismo tiempo una gran funcionalidad relacionada a la administración remota de los mismos. Se usa OpenSSH.
  • mail: ofrece administración de correo electrónico, ruteo de entrada y salida, permisos, almacenamiento, filtro de spam y virus, entre otros servicios. Como SMTP puede mencionarse a Postfix y Exim, y como demonios POP3/IMAP a Cyrus, Courier o Dovecot.
  • DNS: resuelve nombres de host en su o sus respectivas direcciones IP, y viceversa. En conjunto con DHCP resulta muy útil para administrar intranets complejas. El más usado es ISC Bind9.
  • FTP: provee transferencia simple de archivos. Dos opciones son ProFTPd y vsftpd.
  • VPN: permite el acceso de máquinas remotas desde Internet a la intranet de la organización, a través de un túnel de encriptación. Una excelente opción es OpenVPN.
  • Bases de datos: hay muchos RDBMS de código libre disponibles para ejecutar sobre Linux. Algunos de los más populares son MySQL, PostgreSQL y Firebird.
  • virtualización: es la capacidad de emular por software algún tipo de hardware. Permite aprovechar realmente un servidor físico, instalando máquinas virtuales, cada una con diferentes sistemas operativos y variado software. Algunos sistemas de virtualización son KVM, Xen y vserver.

3.7. [ ] Shell: introducción, filosofía de trabajo, multitarea básica

Se llama shell, terminal, intérprete de comandos o línea de comandos a una interfaz de texto para interactuar con el sistema operativo. El usuario dirige el sistema operativo mediante el envío de comandos como texto a un intérprete. El intérprete también permite escribir scripts que constan de uno de o más de esos comandos, y que se ejecutan llamándolos por su nombre.

Los shells más comunes son Bourne Again Shell (Bash) y C Shell (Csh). Hay muchos otros, cada uno con sus características particulares.

Estas interfaces han sido desarrolladas desde fines de los años 60 y principios de los 70 en forma estable, conservada, y con claros objetivos de confiabilidad y seguridad, a la vez que explotan toda la potencia del sistema subyacente y sus diferentes características: kernel, sistema de archivos, multitarea, multiusuario, etc.

El principio básico de la línea de comandos es lograr la interacción con el sistema operativo rápida y eficazmente, consumiendo lo menos posible de recursos, concentrándose en la resolución de los temas de manera estable, confiable y segura. Permite resolver cualquier situación de manera local o remota sabiendo con absoluta certeza cómo va a responder el sistema operativo, y cómo va a ser el resultado de la interacción.

Algunas características básicas y ejemplos:

  • Multitarea: permite ejecutar tareas simultáneamente en una sola línea y mientras se ejecutan seguir trabajando (&)
    cd /usr ; tar czf /tmp/bin.tar.gz ./bin & tar czf /tmp/lib.tar.gz ./lib &
  • Alias: creación de comandos personalizados mediante el uso de aliases (comando alias)
    alias listado="ls -la --color=auto"
  • Redireccionamiento de entrada/salida: en Linux hay siempre tres archivos abiertos: stdin (el teclado), stdout (la pantalla), y stderr (mensajes de error enviados a la pantalla)
    • Redireccionar stdout a un archivo:
      ps axu > psaux.txt
    • Redireccionar stderr a un archivo:
      grep lalala * 2> grep-errores.txt
    • Redireccionar stderr y stdout a un archivo:
      grep lalala * &> grep-salidayerrores.txt
  • Tuberías (pipes): se puede utilizar la salida estándar de un comando como la entrada de otro (|)
    ps aux | grep syslog

3.8. [ ] Documentación: dónde, cómo, qué, páginas man, ayuda de comandos

La documentación disponible sobre Linux y sus comandos es amplísima en la mayoría de los casos. Se recomienda acceder a la documentación en los sitios oficiales de cada proyecto.

Por ejemplo, en el caso de la última versión de Apache Tomcat la misma está disponible en http://tomcat.apache.org/tomcat-7.0-doc/

Asimismo, la documentación de la última versión de MySQL se encuentra en http://dev.mysql.com/doc/refman/5.6/en/index.html

Hay muchísima documentación, alguna de excelente calidad, creada y mantenida por terceros. En estos casos se puede buscar como referencia de otros, y ver los comentarios respecto a la seriedad del enlace.

Por ejemplo la Advanced Bash-Scripting Guide es la referencia obligada de programación de Bash. Otro ejemplo son los tutoriales escritos por Falko Timme y varios otros autores en http://www.howtoforge.com/

Los comandos suelen tener una ayuda en línea, accesible generalmente con el modificador –help, -help o -h. Por ejemplo, para visualizar la ayuda básica del comando grep:

grep --help

Además, en el propio sistema operativo ya instalado, se dispone de las páginas man. Éstos son manuales de cada comando, archivo de configuración, funciones, llamadas y otros, disponibles con el comando man.

Ejemplos:

  • Uso del comando grep:
    man grep
  • Archivo de configuración yum.conf
    man yum.conf

Existe otro manual, interactivo y generalmente más desarrollado, que es denominado manual Texinfo o páginas info. Por ejemplo, para acceder a un extenso manual del intérprete Bash:

info bash

3.9. [ ] Dispositivos: reconocimiento, módulos y parámetros, cargar y descargar módulos. Problemas de permisos. Comandos modprobe, insmod, rmmod, lsmod

Se denomina “módulo” o “driver” a un archivo binario que es cargado junto al kernel, y que permite el acceso a un dispositivo, sistema de archivo o nueva funcionalidad, entre otros.

Los comandos para realizar estas tareas son:

  • modprobe: carga un módulo, realizando las tareas necesarias para que funcione adecuadamente, por ejemplo, cargando otro que es requerido. Ej.: modprobe snd_intel8x0
  • insmod: instala un módulo, especificando si es necesario opciones para el mismo. Como no resuelve dependencias, generalmente se lo usa en situaciones específicas
  • lsmod: lista los módulos cargados con el kernel

La configuración de los módulos, así como blacklisting y otras tareas, se realiza con los archivos de configuración existentes dentro de /etc/modprobe.d/

Bibliografía

4. KDE

Objetivos

Entender cómo es el manejo de la interfaz gráfica, aprender a configurarla y a aprovecharla para el trabajo diario.

4.1. [ ] X Window System: concepto, configuración

El sistema de ventanas X (X Window System, también informalmente llamado X-Windows) provee el framework básico (primitivas) para un entorno gráfico, como el trazado y manejo de dibujos sobre el dispositivo gráfico, drivers, aceleración, y la interacción con el teclado y ratón y otros dispositivos de entrada. X no provee la interfaz de usuario, la que es manejada por otros programas individuales. Por lo tanto, el estilo visual de la misma varía radicalmente según los diferentes proyectos que proveen un entorno de ventanas (desktop environment).

X fue diseñado en el Massachusetts Institute of Technology (MIT) como un sistema cliente-servidor para interactuar con interfaces remotas, proveyendo transparencia de red: la máquina donde un programa (la aplicación cliente) se ejecuta puede ser diferente a la máquina local del usuario (servidor de display).

KDE es un entorno gráfico de escritorio. Un entorno de escritorio es un conjunto integrado de aplicaciones gráficas que corre bajo diversas plataformas, proveyendo toda clase de utilitarios y funciones para el trabajo diario sobre una computadora.

Otros desktop environments son: Cinnamon, Enlightenment, GNOME, LXDE, Mate y XFCE.

4.2. [ ] Uso de KDE: conceptos básicos, comparación con otros sistemas operativos, nombres, componentes básicos, uso básico

KDE provee la interfaz gráfica, la apariencia de la misma, las ventanas, incluyendo iconos, sonidos y otros elementos, para la interacción del usuario con la computadora.

Tiene una enorme funcionalidad, incluso mucho más amplia que otros entornos gráficos para otros sistemas operativos, que incluye la posibilidad de adaptar los elementos a los gustos del usuario casi sin límites. Reubicar botones de ventanas, la interacción con las ventanas, los efectos, la apariencia, diferentes fondos de escritorio para distintas situaciones, conectividad con otros equipos simple y segura, toda clase de facilidades para multitarea avanzada (como múltiples escritorios y actividades), son características fácilmente aprovechables e invaluables en el trabajo diario.

Algunos nombres y componentes, todos altamente configurables y personalizables:

  • Lanzador de aplicaciones: también llamado botón de inicio. Concentra los iconos de las aplicaciones instaladas para poder iniciarlas fácilmente, así como buscarlas sin perder tiempo
  • Panel: es la barra ubicada por defecto en la parte inferior de la pantalla, que concentra numerosas funciones como hora, iconos varios como red, dispositivos, portapapeles, audio, notificaciones, etc.
  • Paginador: permite cambiar entre los escritorios donde se despliegan las ventanas. A diferencia de otros sistemas operativos con interfaz gráfica más primitiva, Linux facilita el trabajo desde hace muchos años permitiendo el despliegue de ventanas en muchos escritorios, para ordenarlas y poder cambiar entre una y otra fácilmente especialmente cuando hay decenas abiertas simultáneamente

4.3. [ ] Manejo de archivos: Konqueror, Dolphin

  • Dolphin: es el manejador de archivos de KDE. Incluye gran funcionalidad, como la posibilidad de conectarse a otros equipos fácilmente en forma segura, y manipular archivos local y remotamente en forma simple
  • Konqueror: es un manejador de archivos avanzado para KDE. Incluye funciones de navegación web, visualización y conversión de archivos de todo tipo y facilidades de configuración de la apariencia

4.4. [ ] Internet: Firefox, Thunderbird, Kmail

  • Mozilla Firefox: es uno de los más completos navegadores de la actualidad. Permite no sólo navegar Internet de manera básica, sino que es una poderosa herramienta de trabajo con sistemas web. Ofrece pestañas, manejo de perfiles, impresión en PDF, y muchísima otras funciones
  • Mozilla Thunderbird: completo sistema de gestión de correo electrónico. Facilita el uso de enorme cantidad de cuentas de correo-e simultáneamente, perfiles, encriptación y mucho más. Mediante plugins puede manejar agendas y calendarios, así como otras funciones que se encuentran en diversos programas
  • Kmail: es el manejador de correo electrónico de KDE. Poderoso y simple, facilita la administración de gran número de cuentas de correo-e con cientos de miles de mensajes, encriptación, diferentes perfiles de remitente, cabeceras y muchísimas otras funciones

4.5. [ ] Tareas comunes: cambiar permisos de archivos, cambiar/agregar/eliminar usuarios, acceder a CDROM y otros dispositivos, personalizar el entorno

  • Cambiar permisos de archivos: utilizando un manejador de archivos como Dolphin o Konqueror, pulsar sobre el archivo o carpeta en cuestión y seleccionar “Propiedades”. En la pestaña “Permisos”, se pueden cambiar los permisos según los límites del usuario
  • Cambiar/agregar/eliminar usuarios: la aplicación a utilizar se llama kuser y debe ser ejecutada como usuario root. Permite crear usuarios y grupos, así como configurarlos
  • Acceder a CDROM y otros dispositivos: utilizando Dolphin o Konqueror, en el panel lateral de la izquierda, seleccionar “Lugares”; allí se verán los dispositivos conectados al sistema, y simplemente pulsando sobre ellos, se puede accederlos según los permisos del usuario. Para dispositivos removibles como pendrives, se abrirá el “Notificador de dispositivos” y mostrará las tareas que se pueden realizar sobre el dispositivo en cuestión
  • Personalizar el entorno: una de las maravillas de Linux, es la altísima capacidad de personalización que ofrece…

4.6. [ ] Otros utilitarios prácticos: kjots, kontact, etc.

Si se instala el metapaquete kde-full, se instalarán gran cantidad de aplicaciones para KDE de todo tipo: educación, gráficos, multimedia, juegos y otros. Aquí mencionamos algunas.

  • Amarok: administrador de música y listas de reproducción. Poderoso y lleno de funcionalidad, mientras reproduce una pieza, busca en Internet información sobre la misma, su autor, letra, etc. y la muestra al usuario, entre muchas otras funciones
  • Ark: es un gestor de archivos comprimidos, simple y práctico
  • Digikam: permite conectarse a cámaras y otros dispositivos portátiles, para transferir los archivos a la computadora y organizarlos
  • K3b: programa de grabación de discos ópticos
  • KGpg: herramienta de cifrado, simple, simple,completa y basada en GPG
  • Konsole: es un gestor de terminales virtuales de texto. Incluye pestañas, personalización de la interfaz, perfiles, etc.
  • Kontact: es un gestor de información personal para KDE. Maneja en forma integrada correo electrónico, contactos, calendario, tareas, notas y más
  • Okular: es un visualizador de archivos de documentos portables como PDF, XPS, PostScript, y muchos otros

5. Línea de comandos

Objetivos

Incorporar las técnicas y conocimientos necesarios para utilizar y aprovechar la línea de comandos, así como conocer el manejo de los procesos y aprender a detectar problemas.

5.1. [ ] ¿Por qué usarla?

La línea de comandos o shell permite operar el sistema operativo en su totalidad sin perder tiempo, sobre conexiones lentas o defectuosas, con mínimo gasto de recursos y con la seguridad de que las operaciones funcionarán como es debido.

Entre muchísimas operaciones habituales se puede, desde ver el estado del sistema, su carga, el listado de procesos, copiar o listar archivos, hasta grabar DVDs, navegar la web, escanear documentos, imprimir o retocar imágenes.

Tan poderosa como confiable, se caracteriza por su rapidez y versatilidad. Cuenta con innumerables comandos y utilitarios, y es fácilmente adaptable, mejorable y ampliable.

5.2. [ ] Bash: introducción, principales características, combinaciones de teclas

El Bourne Again Shell es uno de los más difundidos intérpretes de comandos disponibles en entornos Linux. Se caracteriza por ser fácil de usar, posibilidad de editar las líneas y crear funciones, disponer de histórico de comandos, aliases, control de tareas, y aritmética de enteros entre otras características.

La edición de líneas se realiza utilizando las teclas estándares al efecto: teclas de cursores, backspace, delete, home, end.

Algunas combinaciones de teclas prácticas:

  • C-l: limpia la pantalla y reescribe la línea actual dejándola en la parte superior
  • A-f: avanza una palabra
  • A-b: retrocede una palabra
  • C-r: búsqueda hacia atrás en el histórico
  • C-s: búsqueda hacia adelante en el histórico
  • C-k: borra todo desde la posición del cursor hasta el final de la línea
  • C-u: borra todo desde la posición del cursor hasta el principio de la línea
  • C-y: restaura lo borrado con alguno de los comandos anteriores

5.3. [ ] Comandos básicos: ls, rm, cp, mv, mkdir, cat, grep, ln, find, locate, tar, chmod, vi, nano, passwd

Los comandos disponibles son muchísimos. Los más comunes pueden ser:

  • ls: lista archivos
  • rm: borra archivos
  • cp: copia archivos
  • mv: mueve o renombra archivos
  • mkdir: crea un directorio
  • cat: visualiza por stdout un archivo de texto
  • grep: comando de búsqueda de texto
  • ln: creación de enlaces duros o simbólicos entre archivos
  • find: comando avanzado de búsqueda de archivos
  • locate: comando simple de búsqueda de archivos basado en base de datos
  • tar: comando de archivado
  • chmod: permite cambiar los permisos de los archivos
  • vi: complejo editor de texto
  • nano: editor de texto simple
  • passwd: cambia la contraseña del usuario

5.4. [ ] Procesos: listar procesos, pasar procesos a ejecución de fondo y a primer plano, cómo realizar multitarea

El comando ps se utiliza para listar los procesos que se están ejecutando en el sistema. Brinda una instantánea de lo que ocurre con ellos en ese instante.

Ejecutado sin parámetros, muestra un listado de los procesos que dependen de la terminal actual:

ps

Para listar todos los procesos del sistema, con la información de qué usuario está ejecutando cada uno:

ps aux

Si se desea además elaborar un árbol de jerarquías de procesos:

ps auxf

El ps es un comando complejo, con gran cantidad de modificadores.

En la línea de comandos, se puede ejecutar procesos de manera que se pueda volver a tomar el control de la misma, y continuar trabajando. Para ello, se agrega un ampersand (&) al final de la línea, por ejemplo:

tar czf /tmp/lib.tar.gz /lib &

Para ver el listado de tareas en background:

jobs

Para volver una tarea a primer plano:

fg <tarea>

donde <tarea> es el número de la tarea que se desea controlar, indicado por el comando jobs.

Si se desea en cambio pasar a segundo plano (background) una tarea que está en primer plano, primero se debe pulsar la combinación de teclas C-z para enviar una señal STOP y luego ejecutar el comando bg:

bg <tarea>

donde <tarea> es el número devuelto al ponerlo en STOP.

5.5. [ ] Histórico de comandos y autocompletar

El histórico de comandos se accede con las teclas de cursores hacia arriba y hacia abajo. Una vez encontrada la línea en cuestión, la misma se puede editar desplazando el cursor hacia la izquierda y la derecha utilizando las teclas al efecto. Las teclas de edición son las estándares: suprimir, retroceso, Ctrl + cursores izquierda y derecha.

Además, utilizando la combinación C-r se puede realizar una búsqueda hacia atrás en el histórico. La combinación C-s se emplea para la búsqueda hacia adelante; si esta combinación está asignada a XOFF, se debe activarlo (XON) pulsando C-q. Si se desea desactivar definitivamente XON/XOFF, agregar el comando stty -ixon en /etc/profile. Este comando desactiva el uso de XON/XOFF.

La funcionalidad de autocompletar se invoca pulsando la tecla Tab. Permite autocompletar comandos y rutas del sistema de archivos. Por ejemplo, para escribir el comando yumdownloader basta con tipear las cuatro primeras letras “yumd” y pulsar Tab.

Esta tecla también sirve como ayudamemoria. Si uno no recuerda cómo se escribe un comando, puede empezar tipeando algo, y luego pulsar dos veces seguidas Tab. Por ejemplo, si se tipea “yum” y se pulsa dos veces la tecla Tab, se visualizarán todos los comandos existentes que comiencen con esas tres letras.

De la misma manera se emplea con los directorios.

5.6. [ ] Archivos y directorios: administración básica

Los comandos principales de administración de archivos y directorios son los siguientes:

  • cat: muestra el contenido de un archivo de texto. Ej.: cat /etc/fstab
  • cp: copia archivos y directorios. Ej.: cp -iv archivo1 /tmp/
  • ln: crea enlaces a archivos y directorios. Hay dos tipos: duros y blandos; los primeros sólo pueden ser creados sobre archivos y en el mismo sistema de archivos, mientras que los segundos no tienen tal limitación. Ej.: ln -s /ruta/archivo /otraruta/archivo
  • ls: lista archivos. Ej.: ls -lA /bin
  • mkdir: crea un directorio; con el parámetro -p crea los directorios parentales si no existen. Ej.: mkdir -p /tmp/uno/dos/tres
  • mv: se emplea para mover archivos o renombrarlos. Ej.: mv -iv archivo /tmp/
  • rm: elimina archivos y directorios. Se debe tener cuidado al utilizarlo, dado que un error puede provocar un desastre en un microsegundo. En Linux no hay manera de recuperar archivos eliminados. Ej.: rm /tmp/archivo

5.7. [ ] Fecha y hora: husos horarios, cambiar la fecha

Por obvias razones, es muy importante que el sistema esté en hora. Lo correcto es sincronizar la hora del sistema mediante NTP.

El comando para ver la fecha y hora, así como para configurarla es date.

El huso horario se puede cambiar creando un enlace simbólico en /etc/localtime a la información de huso horario correspondiente, presente en /usr/share/zoneinfo, por ejemplo:

ln -sf /usr/share/zoneinfo/America/Argentina/Buenos_Aires /etc/localtime

5.8. [ ] Logs: qué son, para qué sirven, cómo visualizarlos

Linux tiene un excelente sistema de logs o registros. En general son archivos de texto que se actualizan inmediatamente ante un evento. Se guardan en /var/log y se utilizan para identificar inconvenientes de todo tipo, desde errores de programas y servicios a fallas en hardware o ruteo de correo electrónico, así como para monitorear actividad normal como el envío de correo electrónico, faxes, spoolers de impresión, etc.

Ante cualquier falla en el sistema, se recomienda revisarlos a conciencia. El demonio encargado de guardarlos se llama rsyslogd en CentOS. Algunos servicios, como ejemplo MySQL, graban por sí mismos los registros, aunque suelen enviar algún dato a syslog también.

Para revisarlos, se puede usar algún visualizador como less. Para hacerlo en tiempo real, se puede utilizar la siguiente línea:

tail -F /var/log/messages

Algunos archivos de registro que se encuentran en /var/log en CentOS son:

  • dmesg: información de inicio del kernel, hasta que init toma el control
  • maillog: mensajes relacionados con el envío y recepción de correo electrónico
  • messages: es el registro principal donde van a parar la mayoría de los mensajes
  • secure: mensajes relacionados con seguridad, como apertura y cierre de sesiones de usuario o accesos por SSH
  • wtmp: es binario, y registra los accesos de usuarios y reinicios del sistema. Se visualiza con el comando last

Una herramienta práctica para visualizarlos es multitail. Por ejemplo, para visualizar los logs messages y secure simultáneamente:

multitail /var/log/secure /var/log/messages

6. Scripting

Objetivos

Aprender lo mínimo necesario para escribir y ejecutar un script de shell.

6.1. [ ] Conceptos básicos

Un script es básicamente un archivo de texto con comandos dentro. Estos comandos son ejecutados mediante un intérprete. En el caso de Linux, el más común es Bash.

Los scripts permiten automatizar tareas repetitivas, evitando el error humano, y ahorrando tiempo. Por ejemplo, si se necesita realizar una limpieza de archivos temporales una vez por mes, si se necesita un backup diario de los archivos de usuarios, revisar el estado de los servicios, el espacio en disco, y cualquier tarea que requiera ejecutar una serie de comandos.

Intérpretes de comandos hay muchos además de Bash. Entre ellos podemos nombrar Python, Perl, PHP, y Ruby.

Cada script debe comenzar con una línea específica, que indica qué programa debe usar el kernel para interpretarlo:

#!/bin/bash

Para ser ejecutado, el archivo de texto debe tener permisos de ejecución:

chmod a+x script

6.2. [ ] Ejemplos

Primer script

#!/bin/bash
# Variable alfanumerica
CADENA="Este es un primer script"
# Imprimir la variable por la pantalla
echo $CADENA
# Salida de error stderr cero  
exit 0

Segundo script

#!/bin/bash
DIRE="/sbin"
# Para cada elemento en $DIRE evaluar que tipo de archivo es
for i in `ls $DIRE`
  do file $DIRE/$i
done

exit 0

Tercer script

#!/bin/bash
# Si el numero de procesos httpd es mayor a cero significa que Apache esta ejecutandose
APA=`ps ax | grep "httpd" | grep -v "grep" | wc -l`
if [ $APA -gt 0 ]
then
  echo "Apache esta corriendo"
else
  echo "Apache esta detenido"
fi

exit 0

7. Administración de usuarios y grupos

Objetivos

Conocer la forma en que Linux maneja los usuarios y cómo se los administra.

7.1. [ ] Usuarios: agregar, eliminar y modificar

En un Linux instalado normalmente, los usuarios se almacenan en el archivo /etc/passwd, mientras que sus contraseñas en /etc/shadow.

Los comandos para agregar, eliminar y modificar usuarios son respectivamente: useradd, userdel y usermod.

useradd -c "Usuario para pruebas" -d /home/test test

Para cambiar la contraseña de un usuario, se emplea el comando passwd:

passwd usuario

7.2. [ ] Grupos: agregar, eliminar, agregar usuarios a otros grupos

El listado de grupos, así como los usuarios que son miembros de cada uno, se almacenan en /etc/group. Los comandos para agregar, eliminar y modificar grupos son, respectivamente: groupadd, groupdel, y groupmod.

7.3. [ ] Comandos relacionados: chown, chgrp

Si se desea cambiar el propietario (owner) de un archivo o directorio, el comando a utilizar es chown:

chown test /ruta/al/archivo

Para cambiar el grupo al cual pertenece un archivo o directorio, el comando es chgrp:

chgrp grupo /ruta/al/archivo

8. Administración de sistemas de archivos

Objetivos

Incorporar los conocimientos necesarios para poder preparar sistemas de archivos para el uso del sistema operativo.

8.1. [ ] Particionar y formatear unidades: fdisk, cfdisk, sfdisk, mkfs, mkswap

El comando más común para particionar es fdisk. Para automatizar en scripts, se usa sfdisk. Otro utilitario, interactivo y más fácil de usar pero con menos posibilidades es cfdisk. En discos nuevos, con particiones GPT se debe usar gdisk o parted.

Por ejemplo, para ver un listado de las particiones de un disco:

fdisk -l /dev/sda

Para particionarlo, agregar, quitar o modificar particiones en modo interactivo:

fdisk /dev/sda

La ayuda del comando está disponible en el modo interactivo pulsando la tecla m.

Creadas las particiones, se les debe dar formato con el comando mkfs. Por ejemplo, para formatear una partición lógica con el sistema de archivos ext4:

mkfs -t ext4 /dev/sda5

En cambio, las particiones para intercambio (swap) deben formatearse con un comando al efecto, mkswap:

mkswap /dev/sda6

8.2. [ ] Unidades: montaje, fstab, mtab, df, du

Una vez que una partición fue formateada, se la debe montar. Este proceso hace que los archivos queden disponibles al usuario para poder utilizarlos, sea modificarlos, borrarlos, crearlos, o trabajar en su administración copiándolos, moviéndolos, creando carpetas, etc.

Esto se realiza con el comando mount, indicándole al mismo la partición que se debe montar y el punto de montaje:

mount -t ext4 /dev/sda5 /mnt/archivos

La configuración de qué particiones montar al inicio del sistema se encuentra en el archivo /etc/fstab. El siguiente es un ejemplo del contenido de dicho archivo:

# <fs>                  <mountpoint>    <type>          <opts>          <dump/pass>

/dev/sda5               none            swap            sw                      0 0
/dev/sda6               /               reiserfs        noatime,notail          0 1

/dev/cdrom  /mnt/cdrom   auto    noauto,user                    0 0

La información de qué particiones se encuentran montadas, y dónde, se observa en el archivo /etc/mtab. Además, esa misma información puede ser visualizada con el comando mount sin agregarle parámetros.

Cuando se desea conocer el espacio libre que existe en una partición montada, se utiliza el comando df (disk free), con el modificador -h que hace que la información sea adaptada a MB, GB o TB según corresponda:

srv07 ~ # df -h /
S.ficheros     Tamaño Usados  Disp Uso% Montado en
/dev/sda6        9,0G   5,2G  3,9G  58% /

En cambio, si se desea ver el espacio ocupado por un directorio, se utiliza el comando du, por ejemplo:

nb01 ~ # du -hs /usr
4,9G    /usr

8.3. [ ] Reparar problemas: fsck, badblocks, smartctl

Si un sistema de archivos tiene inconvenientes lógicos, por ejemplo luego de un apagado incorrecto de un equipo, se utiliza el comando fsck en runlevel 1 para repararlo:

fsck /dev/sda5

Si en cambio, se desea comprobar si el disco contiene errores físicos (bad sectors, sectores dañados), se emplea el comando badblocks. Este comando no repara sectores dañados, sino simplemente informa cuáles son:

badblocks -sv /dev/sda2

Si el disco tiene daño físico, lo más recomendable es cambiarlo.

Para acceder al sistema SMART (Self-Monitoring, Analysis and Reporting Technology) disponible en los discos, se utiliza el comando smartctl. Este comando permite analizar el disco, su estado, marca, modelo, número de serie, así como realizar pruebas de funcionamiento. Más importante aún, permite predecir si un disco fallará próximamente, permitiendo así planificar su recambio.

La información básica del disco se muestra con:

smartctl -i /dev/sda

Para ver el estado del disco, cantidad de horas encendido, errores y muchos otros parámetros:

smartctl -a /dev/sda

Realizar un chequeo de disco, corto y largo respectivamente:

smartctl -t short /dev/sda
smartctl -t long /dev/sda

Terminados las pruebas, se puede ver el resultado con:

smartctl -l selftest /dev/sda

Existiendo la sospecha de falla de un disco, habitualmente se realiza primero un chequeo corto (que dura unos 5 minutos), y si no hay errores, uno largo (que puede durar varias horas). Es importante esperar a que un chequeo iniciado termine; de otra manera, si se inicia uno nuevo, éste cancelará el anterior.

9. Redes TCP/IP: concepto, estructura y funcionamiento

Objetivos

Incorporar los conocimientos necesarios para poder entender cómo funcionan y cómo se instalan redes bajo estos protocolos

9.1. [ ] Introducción a las redes de computadoras. Redes TCP/IP

El Protocolo de Control de Transmisión (TCP, Transmission Control Protocol) es uno de los principales componentes del protocolo de Internet (IP, Internet Protocol). El conjunto es a menudo llamado TCP/IP. TCP provee un método de envío de flujo de octetos confiable, ordenado y con comprobación de errores entre programas ejecutándose sobre computadoras conectadas a una red, sea local o pública. Reside en la capa de transporte del modelo OSI.

El Protocolo de Internet (IP, Internet Protocol) es el principal componente del conjunto de protocolos para envío de datagramas a través de redes interconectadas. Su función de ruteo permite internetworking y esencialmente establece Internet.

La versión que actualmente se utiliza en más del 96% de Internet es la 4, que ofrece direcciones de 32 bit. Data del año 1981. Para resolver el tema del agotamiento de las direcciones, entre otros, una nueva especificación fue desarrollada por la IETF. Fue llamada versión 6, y data del año 1998. Entre otras características, ofrece direcciones de 128 bit.

Ejemplo de dirección IPv4 (4 grupos de 8 bit cada uno): 192.0.2.235

Ejemplo de dirección IPv6 (8 grupos de 16 bit cada uno): 2001:0db8:0000:0000:0000:ff00:0042:8329

Hay varios tipos de redes, siendo la más común hoy en día la topología en estrella. Las capas del modelo OSI son las siguientes:

Rangos de direcciones IP en cada clase

Clase Rango N° de Redes N° de Host Por Red Máscara de red Broadcast ID
A 0.0.0.0 - 127.255.255.255 128 16 777 214 255.0.0.0 x.255.255.255
B 128.0.0.0 - 191.255.255.255 16 384 65 534 255.255.0.0 x.x.255.255
C 192.0.0.0 - 223.255.255.255 2 097 152 254 255.255.255.0 x.x.x.255
D 224.0.0.0 - 239.255.255.255 histórico
E 240.0.0.0 - 255.255.255.255 histórico

Rangos de direcciones IP privadas para cada clase

  • Clase A: 10.0.0.0 a 10.255.255.255 (8 bits red, 24 bits hosts, 16777214 hosts disponibles), 1 red clase A
  • Clase B: 172.16.0.0 a 172.31.255.255 (16 bits red, 16 bits hosts, 65534 hosts disponibles). 16 redes clase B contiguas
  • Clase C: 192.168.0.0 a 192.168.255.255 (24 bits red, 8 bits hosts, 254 hosts disponibles). 256 redes clase C contiguas

Si bien a bajo nivel la conexión entre equipos se realiza utilizando direcciones IP, para simplificar el trabajo humano y no tener que recordar los números de direcciones, se utilizan nombres de host y un sistema de resolución de nombres en su correspondiente dirección IP: Domain Name Service (DNS).

Si los equipos son pocos, se puede utilizar también el archivo /etc/hosts.

9.2. [ ] Configuración de la placa de red. Ubicación y estructura de los archivos de configuración. Diferencias entre Debian y Red Hat

Debian

La configuración de red en Debian se encuentra en el directorio /etc/network, y particularmente el archivo /etc/network/interfaces contiene la configuración de las interfaces existentes en el sistema.

El contenido de ese archivo, típicamente es algo similar a lo siguiente:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
    address 192.168.11.1
    netmask 255.255.255.0
    network 192.168.11.0
    broadcast 192.168.11.255
    dns-nameservers 192.168.11.11 192.168.11.12
    dns-search axrglobal
    gateway 192.168.11.254

Si se configura la interfaz con DHCP, el archivo interfaces se reduce a:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

CentOS

La configuración de red en CentOS se encuentra en el archivo /etc/sysconfig/network y en el directorio /etc/sysconfig/network-scripts/ dentro de varios archivos y scripts de configuración.

Los archivos más importantes allí dentro son ifcfg-lo y ifcfg-eth0. A continuación, un ejemplo de configuración de ifcfg-eth0 para utilizar una IP fija:

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=172.16.23.1
USERCTL=no

Sin embargo, si se desea utilizar DHCP:

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes

9.3. [ ] Comandos para revisar y cambiar la configuración, y solucionar problemas: ifconfig, ifup/ifdown, route, ip, netstat

Varios comandos son utilizados para configurar la red en un Linux, o analizar qué es lo que está ocurriendo.

  • ifconfig: comando básico que permite asignar direcciones IP a una interfaz, cambiar sus parámetros, activarla o desactivarla
  • ifup/ifdown: scripts que permiten activar o desactivar respectivamente, una interfaz previamente configurada en los archivos de configuración correspondientes según la distribución
  • route: se utiliza para configurar las rutas de red
  • ip: otro comando más complejo para configurar la red
  • netstat: permite ver el estado de las conexiones, puertos en escucha según los distintos protocolos, procesos relacionados con la red, y muchas otras funciones

Por ejemplo, para configurar una interfaz de red manualmente con ifconfig:

ifconfig eth0 172.16.23.25 netmask 255.255.255.0 broadcast 172.16.23.255

Visualizar la configuración de todas las interfaces de red:

ifconfig

Ver la configuración de una interfaz de red en particular:

ifconfig eth0

Crear y configurar una interfaz de red virtual:

ifconfig eth0 add 192.168.10.25 netmask 255.255.255.0 broadcast 192.168.10.255

Configurar un default gateway con route:

route add default gw 192.168.10.1

Mostrar las rutas configuradas actualmente:

route -n

Visualizar con el comando netstat las conexiones existentes TCP, su estado, así como los procesos que las están utilizando:

netstat -pnat

Para ver las conexiones UDP existentes:

netstat -pnau

10. Utilitarios de uso común

Objetivos

Conocer los utilitarios más comunes para resolver tareas desde la interfaz gráfica.

10.1. [ ] Visualizando imágenes: Gwenview

Obviamente existe una gran cantidad de visualizadores de imágenes para Linux. Uno muy práctico es Gwenview, incluido en KDE.

Con él se puede navegar una colección de fotos, crear presentaciones, retocarlas, convertir imágenes RAW, publicarlas en los distintos servicios públicos como Flicker, Facebook y otros, así como almacenarlas en la nube. Tiene muchas herramientas de retoque, así como de presentación.

10.2. [ ] Trabajando con imágenes: GIMP

GIMP (GNU Image Manipulation Program) es un editor de imágenes de mapas de bits. Posee gran cantidad de herramientas de retoque profesional, efectos, soporte para scripting, conversión, capas, y toda clase de tareas especializadas.

10.3. [ ] Autoedición: Scribus

Scribus es un programa de desktop publishing diseñado para delinear, escribir y preparar archivos profesionales para equipos de impresión gráfica como periódicos, brochures, boletines, posters, libros, etc. Entre muchas otras funciones, puede crear archivos PDF interactivos y formularios.

10.4. [ ] Gráficos vectoriales: Inkscape

Inkscape es un editor de gráficos vectoriales con soporte para formato estándar SVG. Permite crear y manipular objetos extensivamente, con multitud de efectos y funciones sobre ellos, operaciones sobre paths, renderizado anti-aliasing y funciones de edición de texto, entre otras.

11. OpenOffice.org / LibreOffice

Objetivos

Conocer una de las suites ofimáticas más empleadas en Linux.

11.1. [ ] Historia, concepto

11.2. [ ] Componentes: Writer, Calc, Impress, Draw, Base

11.3. [ ] Uso: posiblidades, trucos

12. Administración de impresoras

Objetivos

Incorporar las técnicas y conocimientos necesarios para instalar y administrar impresoras en Linux.

12.1. [ ] CUPS: concepto y características básicas

El sistema de impresión que se utiliza en Linux hoy en día se llama CUPS (Common Unix Printing System), desarrollado por Apple para sus sistemas operativos basados en BSD Unix.

CUPS está pensado como un sistema cliente servidor, y utiliza el protocolo IPP (Internet Printing Protocol) en el puerto TCP 631.

Los archivos de configuración de CUPS se encuentran en /etc/cups mientras que la configuración de las impresoras está específicamente en el archivo /etc/cups/printers.conf.

12.2. [ ] Impresoras: agregando y configurando

Para administrar el servidor, así como instalar y manejar impresoras, se utiliza un navegador web, apuntando al URL:

http://localhost:631

El mismo sistema brinda mucha ayuda, y es relativamente fácil de aprender a usar. Cuando se realicen tareas administrativas, se solicitarán credenciales. Se debe ingresar el usuario root y su contraseña.

13. Fundamentos de criptografía

Objetivos

Incorporar los conceptos necesarios para aprovechar la criptografía de clave pública provista por GNUPG

13.1. [ ] Introducción. Distintos métodos

Básicamente, se pueden diferenciar dos tipos de criptografía:

  • Criptografía simétrica: es aquella que se basa en el uso de una sola clave privada para cifrar
  • Criptografía de clave pública o asimétrica: se apoya en un par de claves, privada y pública. La clave privada se usa para descrifrar, y la clave pública se usa para cifrar

13.2. [ ] Criptografía de clave pública: conceptos básicos

La criptografía de clave pública permite asegurar tanto la identidad de quien envía un mensaje, y además que ese mensaje sea leído exclusivamente por el destinatario a quien va dirigido.

Cada remitente que envía un mensaje posee dos claves. Una clave es pública y se puede entregar a cualquier persona; la otra clave es privada y el propietario debe guardarla de modo que nadie tenga acceso a ella. Además, los métodos criptográficos garantizan que esa pareja de claves sólo se puede generar una vez, de modo que se puede asumir que no es posible que dos personas hayan obtenido casualmente la misma pareja de claves.

Entonces, se observan dos maneras de trabajar con este tipo de criptografía:

  1. Confidencialidad del envío del mensaje: cuando el remitente A manda un mensaje a B, lo escribe y luego lo cifra usando la clave pública de B. Cuando B lo recibe, sólo él puede descrifrarlo utilizando su clave privada. De esta manera se asegura que ninguna otra persona leerá el mensaje

13.3. [ ] GNUPG: uso y posibilidades

14. Manejadores de paquetes

Objetivos

Conocer la forma en que algunas distribuciones de Linux manejan los paquetes de software, y aprender a utilizar los sistemas de paquetes DPKG y RPM.

14.1. [ ] Debian: dpkg, aptitude, apt-get

Debian fue una de las primeras distros en ofrecer un sistema de paquetes para la instalación, actualización y remoción de software. El sistema de paquetes de software que utiliza se llama Debian Package (dpkg). Éste permite instalar, desinstalar y revisar el software instalado en el equipo, con una alta confiabilidad, y de manera modular.

Se utilizan para ello dos comandos principales: dpkg y apt-get, y un tercero llamado aptitude, de funcionalidad ampliada. El primero es el comando más importante, mientras que el segundo y el tercero son frontends que utilizan dpkg para realizar tareas automáticas como resolver dependencias, instalar y desinstalar, a la vez que simplifican el bajar paquetes desde los repositorios, realizar búsquedas de software y otras tareas habituales.

Por ejemplo, para instalar un paquete previamente descargado, utilizando dpkg:

dpkg -i paquete.deb

Para instalar un paquete con apt-get, el cual se conectará directamente a un repositorio, y realizará también la descarga previa:

apt-get install paquete

La configuración de apt-get se encuentra en /etc/apt. Los repositorios se configuran en el archivo /etc/apt/sources.list y en archivos de texto plano en el directorio /etc/apt/sources.list.d

Por ejemplo, para hacer que apt-get utilice un proxy con el puerto 8080 al bajar los archivos de Internet, se debe agregar la siguiente línea en apt.conf:

Acquire::HTTP::Proxy "http://proxy:8080";

Por ejemplo, para configurar el repositorio de Debian.net en la versión Debian Jessie, así como disponer de los paquetes en “contrib” y “non-free” (paquetes de software adicionales no libres), el archivo sources.list debe quedar como:

deb http://http.debian.net/debian jessie main contrib non-free
deb-src http://http.debian.net/debian jessie main contrib non-free

deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

# jessie-updates, previously known as 'volatile'
deb http://http.debian.net/debian jessie-updates main contrib non-free
deb-src http://http.debian.net/debian jessie-updates main contrib non-free

Una vez creado éste, se debe actualizar el listado de paquetes con apt-get update para poder disponer de ellos.

Para instalar el repositorio Deb Multimedia que agrega gran cantidad de librerías y programas específicos para multimedia, se debe agregar un archivo en /etc/apt/sources.list.d/deb-multimedia.list con el siguiente contenido:

# Deb-multimedia
deb http://www.deb-multimedia.org jessie main non-free

Actualizada la base de datos con apt-get update, se dispondrá de una gran cantidad adicional de paquetes de software relacionados con esa temática.

Tareas comunes a realizar son, por ejemplo, encontrado un archivo verificar si es oficial de la distribución o no, o verificar la integridad de los archivos instalados a partir de un paquete.

Buscar a qué paquete pertenece un archivo:

dpkg -S /ruta/al/archivo

Verificar la integridad de los archivos de un paquete, se debe instalar un paquete llamado “debsums” con apt-get install debsums y luego ejecutar:

debsums paquete

aptitude ofrece funcionalidad similar a apt-get, a la vez que permite otras tareas como buscar paquetes. Por ejemplo, para actualizar el listado de paquetes y actualizar todos los que estén instalados y tengan una nueva versión en los repositorios:

aptitude update && aptitude upgrade -V

Para buscar algo en la base de datos de paquetes, sin importar si están instalados o no:

aptitude search "cadena a buscar"

Buscar los paquetes cuyo nombre o descripción tenga la palabra “bash” y además estén instalados:

aptitude search '~i bash'

Mostrar información sobre un paquete:

aptitude show paquete

Purgar los archivos de configuración de todos los paquetes que hayan sido desinstalados:

aptitude purge '~c'

14.2. [ ] CentOS: rpm, yum

CentOS es un sistema operativo basado en el código fuente de Red Hat Enterprise Linux. El sistema de paquetes de software que utiliza se llama Red Hat Package Manager (RPM). Éste permite instalar, desinstalar y revisar el software instalado en el equipo, con una alta confiabilidad, y de manera modular.

Se utilizan para ello dos comandos principales: rpm y yum. El primero es el comando más importante, mientras que el segundo es un frontend que utiliza rpm para realizar tareas automáticas como resolver dependencias, instalar y desinstalar, a la vez que simplifica el bajar paquetes, realizar búsquedas de software y otras tareas habituales.

Por ejemplo, para instalar un paquete previamente descargado, utilizando rpm:

rpm -iv paquete.rpm

Para instalar un paquete con Yum, el cual se conectará directamente a un repositorio, y realizará también la descarga previa:

yum install paquete

La configuración de Yum se encuentra en /etc/yum.conf. Los repositorios se configuran en archivos de texto plano en /etc/yum.repos.d

Por ejemplo, para hacer que Yum utilice un proxy con el puerto 8080 al bajar los archivos de Internet, se debe agregar la siguiente línea en yum.conf:

proxy=http://proxy.dominio:8080

Para configurar el repositorio de DCArsat, por ejemplo, se debe crear un archivo /etc/yum.repos.d/dcarsat.repo:

[dcarsat]
name=dcarsat
baseurl=http://mirrors.dcarsat.com.ar/centos/6.5/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.dcarsat.com.ar/centos/6.5/os/x86_64/RPM-GPG-KEY-CentOS-6

Una vez creado éste, se debe eliminar la caché de Yum con yum clean all para que comience a utilizarlo.

Para instalar los repositorios EPEL (Extra Packages for Enterprise Linux), simplemente se debe ejecutar el comando:

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Hecho esto, se dispondrá de una enorme cantidad adicional de paquetes de software útiles.

Tareas comunes a realizar con rpm son, por ejemplo, encontrado un archivo verificar si es oficial de la distribución o no, o verificar la integridad de los archivos instalados a partir de un paquete.

Buscar a qué paquete pertenece un archivo:

rpm -qf /ruta/al/archivo

Verificar la integridad de los archivos de un paquete:

rpm -Vv paquete
linuxbasico.txt · Última modificación: 2021/03/26 06:57 por fmolinuevo