46
Administración Básica de GNU/Linux Diplomado en Software Libre Eudris Cabrera Rodríguez @eudriscabrera @eudriscabrera 01 Marzo 2014, Santiago de los Caballeros, R. D.

[ES] Administración básica de GNU / Linux

Embed Size (px)

Citation preview

Page 1: [ES] Administración básica de GNU / Linux

Administración Básica de GNU/Linux

Diplomado en Software Libre

Eudris Cabrera Rodríguez

@eudriscabrera @eudriscabrera

01 Marzo 2014, Santiago de los Caballeros, R. D.

Page 2: [ES] Administración básica de GNU / Linux

Todas las marcas registradas, así como todos los logotipos, imágenes, fotografías, audio y vídeos mostrados en esta presentación son propiedad de sus respectivos propietarios.

Su utilización es solamente para fines ilustrativos y no pretendo dar a entender cualquier afiliación con esas empresas.

Los conceptos y juicios de valor emitidos en esta presentación son responsabilidad personal y no se puede entender como una posición oficial de alguna empresa con la que he tenido relación laboral.

Asuntos Legales

Page 3: [ES] Administración básica de GNU / Linux

Agenda

1- Herramientas básicas para el administrador❏ Línea de comandos❏ Shell y Shell scripts

2- Herramientas de gestión de paquetes❏ Paquete TGZ, paquetes RPM y paquetes DEB.

3- Administración local❏ Usuarios y Grupos❏ Permisos

Page 4: [ES] Administración básica de GNU / Linux

Objetivos

❖ Introducir al estudiante en la administración de los sistemas

GNU/Linux.

❖ Conocer herramientas esenciales para la administración de sistemas

GNU / Linux.

❖ Conocer los diferentes tipos de paquetes disponibles en las principales

familias de distribuciones GNU / Linux.

Page 5: [ES] Administración básica de GNU / Linux

Herramientas básicas para el administrador

Page 6: [ES] Administración básica de GNU / Linux

Interfaz de Línea de Comandos, en inglés, Command Line Interface (CLI), es un método que permite a las personas dar instrucciones a algún programa informático por medio de una línea de texto simple.

Las CLI pueden emplearse interactivamente, escribiendo instrucciones en alguna especie de entrada de texto, o pueden utilizarse de una forma mucho más automatizada (archivo batch), leyendo comandos desde un archivo de scripts.

Línea de comandos

Las CLI son usadas por muchos programadores y administradores de sistemas como herramienta primaria de trabajo, especialmente en sistemas operativos basados en Unix; en entornos científicos y de ingeniería, y un subconjunto más pequeño de usuarios domésticos avanzados.

Page 7: [ES] Administración básica de GNU / Linux

Terminología

Los conceptos de Consola, Terminal y Shell no son lo mismo, aunque suelen utilizarse como sinónimos.

Page 8: [ES] Administración básica de GNU / Linux

Los recién llegados al mundo de Unix / Linux se suelen confundir, cuando se trata de la diferencia entre un terminal, una consola y un shell.

Desde la perspectiva del usuario, puede haber poca o ninguna diferencia entre ellos, pero en realidad, el usuario utiliza una consola para conectarse a un terminal, con el fin de mirar el shell en ejecución en el equipo.

Terminología

Page 9: [ES] Administración básica de GNU / Linux

En los primeros años de la computación, estos tres elementos eran hardware separado.

La consola no era más que un monitor y un teclado, que no tenía la capacidad de computación.

Es conectado a un terminal, a través de una interfaz en serie, siendo el más común el conector RS-232.

Terminología

Page 10: [ES] Administración básica de GNU / Linux

Un terminal es similar a un punto final a un mainframe.

Por lo general, tenía algunas capacidades de computación y puede comunicarse a través de una red, o alguna forma de conexión especializada, a un mainframe.

Terminología

Page 11: [ES] Administración básica de GNU / Linux

Un terminal también proporciona derechos administrativos sobre el sistema, y por eso se mantiene generalmente en un espacio cerrado.

Consolas y terminales finalmente se fusionaron en un solo dispositivo, siendo el más notorio de los terminales VT emulados en distribuciones de Linux.

Terminología

Page 12: [ES] Administración básica de GNU / Linux

El término genérico shell se utiliza para denominar un programa que sirve de interfaz entre el usuario y el núcleo (kernel ) del sistema GNU/Linux.

El shell, como programa, es una utilidad que permite a los usuarios interactuar con el kernel por interpretación de comandos que el mismo usuario introduce en la línea de comandos o en los ficheros de tipo shell script y proporciona el resultado en la pantalla.

Terminología

Page 13: [ES] Administración básica de GNU / Linux

Características

1. Es capaz de leer la entrada del usuario y proporcionar el resultado en

la pantalla.

2. Puede ser textual (como el CLI) o gráfica (como GUI de Windows).

3. En informática de hoy en día, un shell es mucho más que una simple

interfaz entre el usuario y el sistema.

4. Es responsable de la gestión de procesos, ventanas, aplicaciones,

comandos y otros aspectos del sistema.

Page 14: [ES] Administración básica de GNU / Linux

Una vez iniciado el shell interactivo, se muestra un prompt de cara al usuario, indicándole que puede introducir una línea de comando.

Tras la introducción, el shell asume la responsabilidad de validarla y poner los procesos necesarios en ejecución, mediante una serie de fases:

Shells interactivos

● Leer e interpretar la línea de comandos.

● Evaluar los caracteres “comodín” como $ * ? u otros.

● Gestionar las redirecciones de E/S necesarias, los pipes y los procesos en segundo plano (background) necesarios (&).

● Manejar señales.● Preparar la ejecución de los

programas.

Page 15: [ES] Administración básica de GNU / Linux

Normalmente, las líneas de comandos podrán ser ejecuciones de comandos del sistema, comandos propios del shell interactivo, puesta en marcha de aplicaciones o shell scripts.

Page 16: [ES] Administración básica de GNU / Linux

Shell scripts

Son archivos de texto que contienen secuencias de comandos de sistema, más una serie de comandos propios del shell interactivo, más las estructuras de control necesarias para procesar el flujo del programa (tipo while, for, etc.).

Los archivos script son directamente ejecutables por el sistema bajo el nombre que se haya dado al archivo.

Para ejecutarlos, se invoca el shell junto con el nombre del archivo, o bien se dan permisos de ejecución al shell script. En cierta manera, podemos ver el shell script como

código de un lenguaje interpretado que se ejecuta sobre el shell interactivo correspondiente.

Page 17: [ES] Administración básica de GNU / Linux

Para el administrador, los shell scripts son muy importantes básicamente por dos razones:

1) La configuración del sistema y de la mayoría de los servicios proporcionados se hacen mediante herramientas proporcionadas en forma de shell scripts.

2) La principal forma de automatizar procesos de administración es mediante la creación de shell scripts por parte del administrador.

Page 18: [ES] Administración básica de GNU / Linux

Todos los programas invocados mediante un shell poseen tres archivos predefinidos, especificados por los correspondientes descriptores de archivos (file handles).

1) Standard Input (entrada estándar)

2) Standard Output (salida estándar)3) Standard Error (salida estándar de errores)

Además, los shells suelen proporcionar los tres mecanismos siguientes:

1) Redirección2) Tuberías (pipes)3) Concurrencia de programas de usuario

Page 19: [ES] Administración básica de GNU / Linux

La independencia del shell respecto al kernel del operativo (el shell es sólo una capa de interfaz), nos permite disponer de varios de ellos en el sistema.

Algunos de los más comunes son:

El shell Bash (bash). El shell Linux por defecto.

Shells disponibles

El shell Bourne (sh).Éste ha sido desde siempre el shell estándar UNIX, y el que todos los UNIX poseen en alguna versión. Normalmente, es el shell por defecto del administrador (root).

El sh fue creado por Stephen Bourne en AT&T a finales de los setenta.

El indicador (o prompt) por defecto suele ser un ’$’ (en root un ’’#’).

Page 20: [ES] Administración básica de GNU / Linux

El shell Korn (ksh).

Es un superconjunto del Bourne (se mantiene cierta compatibilidad), escrito en AT&T por David Korn (a mediados de los ochenta), en el cual se hizo cierta mezcla de funcionalidades del Bourne ydel C, más algún añadido. El prompt por defecto es el $.

El shell C (csh).Desarrollado en la Universidad de Berkeley por Bill Joy a finales de los 70'sAñade elementos interesantes al Shell Bourne , como un histórico de comandos, alias, aritmética desde la línea de comandos, completa nombres de ficheros y control de trabajos en segundo plano.

Page 21: [ES] Administración básica de GNU / Linux

El shell C (csh)

● El prompt por defecto para los usuarios es ‘%’.● Los usuarios UNIX suelen preferir este shell como interactivo, pero

los administradores UNIX prefieren utilizar el Bourne, ya que los scripts suelen quedar más compactos, y la ejecución suele ser más rápida.

● Como su nombre indica, su sintaxis está basada en el lenguaje C.

También existen otros

shell, como versiones

restringidas o

especializadas de los

anteriores.

Page 22: [ES] Administración básica de GNU / Linux

La mayoría de las distribuciones de Linux, así como Mac OSX, usan BASH como shell por defecto. Solaris y OpenIndiana utilizan KornShell por defecto, que es otra variante de BASH.

Este shell forma parte del software GNU. Es un intento de combinar los tres shell anteriores (Bourne, C y Korn), manteniendo la sintaxis del shell Bourne original.

Bash (Bourne Again Shell)

Una forma rápida de conocer bajo qué shell nos encontramos como usuarios es mediante la variable $SHELL, desde una línea de comandos con la instrucción:$ echo $SHELL

Page 23: [ES] Administración básica de GNU / Linux

Todos los scripts Bash tienen que comenzar con la línea:#!/bin/bash

Esta línea le indica al shell actual usado por el usuario, con qué shell hay que ejecutar el script que aparece a continuación.

El script puede ejecutarse de dos modos diferentes:

Programación scripts en Bash

2) Por ejecución mediante el shell, llamamos al shell explícitamente:bash script.

1) Por ejecución directa desde la línea de comandos, siempre que tenga permiso de ejecución. Si no se da el caso, ponemos el permiso con: chmod +x script.

Page 24: [ES] Administración básica de GNU / Linux

Variables de sistema

Algunas variables de sistema útiles que pueden consultarse (con el comando echo), son:

HOME Directorio raíz del usuarioLOGNAME Id del usuario en el loginPATH RutaSHELL Shell del usuarioPS1 Prompt del shell, el usuario puede cambiarloMAIL Directorio del buzón de correoTERM Tipo de terminal que el usuario utilizaPWD Directorio actual del usuario

Las diferentes variables del entorno pueden verse con el comando env.

Page 25: [ES] Administración básica de GNU / Linux

Herramientas de gestión de paquetes

Page 26: [ES] Administración básica de GNU / Linux

Básicamente, un paquete es un conjunto de archivos que forman una aplicación o una unión de varias aplicaciones relacionadas, normalmente formando un único archivo (denominado paquete), con un formato propio y normalmente comprimido, que es el que se distribuye, ya sea vía CD, disquete o mediante acceso a servicios de ftp o web.

Paquete

En cualquier distribución, los paquetes son el elemento básico para tratar las tareas de instalación de nuevo software, actualización del existente o eliminación del no utilizado.

El uso de paquetes facilita añadir o quitar software al considerarlo una unidad y no tener que trabajar con

los ficheros individuales.

Page 27: [ES] Administración básica de GNU / Linux

Categorías

a) base: paquetes indispensables para el funcionamiento del sistema (utiles, programas de inicio, bibliotecas de sistema);

b) sistema: útiles de administración, comandos de utilidad;c) desarrollo (development): útiles de programación: editores, compiladores, depuradores,...d) gráficos: controladores e interfaces gráficas, escritorios, gestores de ventanas, ... e) otras categorías.

En el contenido de la distribución (sus CD) los paquetes suelen estar agrupados por categorías como:

Page 28: [ES] Administración básica de GNU / Linux

Normalmente, para la instalación de un paquete será necesario efectuar una serie de pasos:

Instalación de un paquete

1) Previo (preinstalación): comprobar que existe el software necesario(y con las versiones correctas) para su funcionamiento (dependencias),ya sean bibliotecas de sistema u otras aplicaciones que sean usadas por el software.

2) Descomprimir el contenido del paquete, copiando los ficheros a sus localizaciones definitivas, ya sean absolutas (tendrán una posición fija) o si se permite reubicarlas a otros directorios.

3)Postinstalación retocar los ficheros necesarios, configurar posiblesparámetros del software, adecuarlo al sistema,

Page 29: [ES] Administración básica de GNU / Linux

Principales tipos de paquetes

Dependiendo de los tipos de paquetes, estos pasos pueden ser automáticos en su mayoría (así es en el caso de RPM y DEB , o pueden necesitar hacerlos todos a mano (caso .tgz) dependiendo de las herramientas que proporciona la distribución.

Page 30: [ES] Administración básica de GNU / Linux

Los paquetes TGZ son quizás los de utilización más antigua. Las primeras distribuciones de GNU/Linux los utilizaban para instalar el software, y aún varias distribuciones los usan (por ejemplo, Slackware) y algunos UNIX comerciales.

Son una combinación de ficheros unidos por el comando tar en un único fichero .tar, que luego ha sido comprimido por la utilidad gzip, suele aparecer con la extensión .tgz o bien .tar.gz.

Paquete TGZ

Page 31: [ES] Administración básica de GNU / Linux

Asimismo, hoy en día es común encontrar los tar.bz2 que utilizan en lugar de gzip otra utilidad llamada bzip2, que en algunos casos consigue mayor compresión del archivo.Los paquetes TGZ son una herramienta básica a la hora de instalar software no organizado. Además, son una herramienta útil para realizar procesos de backup y restauración de archivos.

Paquete TGZ

Page 32: [ES] Administración básica de GNU / Linux

El sistema de paquetes RPM creado por Red Hat supone un paso adelante, ya que incluye la gestión de dependencias y tareas de configuración del software.Además, el sistema guarda una pequeña base de datos con los paquetes ya instalados, que puede consultarse y se actualiza con las nuevas instalaciones

Red Hat: paquetes RPM

Page 33: [ES] Administración básica de GNU / Linux

En el nivel de línea de comandos dispone de dpkg, que es el comando de más bajo nivel, para gestionar directamente los paquetes DEB de software, típicamente dpkg -i paquete.deb para realizar la instalación.

Pueden realizarse todo tipo de tareas, de información,instalación, borrado o cambios internos a los paquetes de software.

Debian: paquetes DEB

Page 34: [ES] Administración básica de GNU / Linux

Otro nivel intermedio lo presentan las herramientas APT (la mayoría son comandos apt-xxx), donde se gestionan los paquetes a través de una lista de paquetes actuales y disponibles a partir de varias fuentes de software, ya sea desde los propios CD de la instalación, sitios ftpo web (HTTP).

Esta gestión se hace de forma transparente, de manera que el sistema es independiente de las fuentes de software.

Debian: paquetes DEB

La configuración del sistema APT se efectúa desde los archivos disponibles en /etc/apt, donde etc/apt/sources.list

Los paquetes DEB de Debian es quizás el sistema de instalación más potente existente en GNU/Linux. Una prestación destacable es la independencia del sistema de las fuentes de los paquetes (mediante APT)

Page 35: [ES] Administración básica de GNU / Linux

En el campo de la administración, también podríamos considerar algunas herramientas, como las pensadas de forma genérica para la administración: Linuxconf, Webmin, entre otras.

Herramientas genéricas de administración

Page 36: [ES] Administración básica de GNU / Linux

Otras herramientas

❏ Los múltiples comandos UNIX básicos: grep, awk, sed, find , diff, gzip, bzip2, cut, sort, df, du, cat, more, file, which.

❏ Los editores, imprescindibles para cualquier tarea de edición, cuentan con editores como: Vi, vim, nano, pico, etc.

❏ Lenguajes de tipo script, útiles para administración, como: Perl, PHP y Python.

❏ Herramientas de compilación y depuración de lenguajes de alto nivel: GNU gcc (compilador de C y C++), gdb (depurador), xxgdb (interfaz X para gdb), ddd (depurador para varios lenguajes).

Page 37: [ES] Administración básica de GNU / Linux

Administración local

Page 38: [ES] Administración básica de GNU / Linux

Los usuarios de un sistema GNU/Linux disponen normalmente de una cuenta asociada con sus datos, junto con el espacio en disco para que puedan desarrollar sus archivos y directorios.

Este espacio está asignado al usuario, y sólo puede ser usado por éste (a no ser que los permisos especifiquen cosas diferentes).

Usuarios y Grupos

Page 39: [ES] Administración básica de GNU / Linux

Cuentas asociadas a usuarios

La del administrador, con identificador root, que sólo es (o debería ser) utilizada para las operaciones de administración. El usuario root es el que dispone de más permisos y acceso completo a la máquina y a los archivos de configuración.

Cuentas de usuarios: Las cuentas normales para cualquier usuario de la máquina tienen los permisos restringidos al uso de archivos de su cuenta, a algunas otras zonas particulares, así como a utilizar algunos dispositivos para los que se le haya habilitado.

Cuentas especiales de los servicios: lp, news, wheel, www-data, cuentas que no son usadas por personas, sino por servicios internos del sistema, que los usa bajo estos nombres de usuario. Algunos de los servicios también son usados bajo el nombre deroot.

Page 40: [ES] Administración básica de GNU / Linux

Un usuario normalmente se crea mediante la especificación de unnombre (o identificador de usuario), una palabra de paso (password) y un directorio personal asociado (la cuenta).

La información de los usuarios del sistema está incluida en los siguientes archivos:

/etc/passwd/etc/shadow/etc/group/etc/gshadow

Page 41: [ES] Administración básica de GNU / Linux

Estructura básica de permisos en archivosHay 3 atributos básicos para archivos simples: lectura, escritura y ejecutar. Permiso de lectura (read): Si tienes permiso de lectura de un archivo, puedes ver su contenido.

Permiso de escritura (write): Si tienes permiso de escritura de un archivo, puedes modificar el archivo. Puedes agregar,sobreescribir o borrar su contenido. Permiso de ejecución (execute): Si el archivo tiene permiso de ejecución, entonces puedes decirle al sistema operativo que lo ejecute como si fuera un programa.

Permisos

Page 42: [ES] Administración básica de GNU / Linux

chmod (change mode) es el comando utilizado para cambiar permisos, se pueden agregar o remover permisos a uno o más archivos con + (más) o – (menos).

Ejemplos:$ chmod -w tuArchivo$ chmod +x tuScript

Cambiar permisos

Los caracteres atribuidos a los permisos son:

r quiere decir escritura y viene de Readw quiere decir lectura y viene de Writex quiere decir ejecución y viene de eXecute

Page 43: [ES] Administración básica de GNU / Linux

Los 3 permisos son almacenados en 3 lugares diferentes llamados.Usuario (u) proviene de userGrupo (g) proviene de groupOtros (o) proviene de other

Usuarios, Grupos y Otros

Para modificar los derechos sobre un directorio o archivo, existen los comandos:

• chown: cambiar propietario de los ficheros.• chgrp: cambiar grupo de los ficheros.• chmod: cambiar permisos específicos (rwx) de los archivos.

Estos comandos también permite la opción –R, que es recursiva si se trata de un directorio.

Page 44: [ES] Administración básica de GNU / Linux

Referencias

Libros:GNU/Básico : Antonio Perpiñanhttp://codigolibre.org/

After the software wars : Keith Curtishttp://keithcu.com

Administración Avanzada de GNU/Linuxhttp://www.uoc.edu/masters/oficiales/img/871.pdf

http://blog.desdelinux.net/permisos-basicos-en-gnulinux-con-chmod/

Page 45: [ES] Administración básica de GNU / Linux

¡Gracias por acompañarnos!

Page 46: [ES] Administración básica de GNU / Linux

@eudriscabrera

@eudris

@ecabrerar

@eudriscabrera

Eudris Cabrera Rodríguez Ingeniero Telemático

Desarrollador de Software / Consultor Informático

[email protected]